## 代码添加注释;调整发布处理;
This commit is contained in:
parent
2b06a82ccf
commit
0decded40b
|
@ -149,7 +149,7 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
|
|||
@Param("sourceTableName") String sourceTableName, @Param("period") Integer period);
|
||||
|
||||
/*
|
||||
* @description: 新增货修改会员数
|
||||
* @description: 结算日表网体添加到网体月表中
|
||||
* @author: sui q
|
||||
* @date: 2023/7/20 11:18
|
||||
* @param: null null
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.bonus.achieve.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodDetailService;
|
||||
|
@ -39,12 +40,12 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
@Autowired
|
||||
private RedisService redisService;
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodDetailService cuMemberSettlePeriodDetailService;
|
||||
private ICuMemberSettlePeriodDetailService iCuMemberSettlePeriodDetailService;
|
||||
|
||||
@DubboReference
|
||||
ICountryServiceApi countryServiceApi;
|
||||
ICountryServiceApi iCountryServiceApi;
|
||||
@DubboReference
|
||||
ISystemConfigServiceApi systemConfigServiceApi;
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
|
||||
@Override
|
||||
public void initCuMemberPeriod(String settleDate) {
|
||||
|
@ -53,7 +54,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
List<Integer> daySettleCountry = new ArrayList<>();
|
||||
packageSettleCountry(weekSettleCountry, daySettleCountry);
|
||||
List<CuMemberSettlePeriodDetail> cuMemberSettlePeriodDetailList = new ArrayList<>();
|
||||
Date startDate = DateUtils.parseStringToDate("2021-01-12");
|
||||
Date startDate = DateUtils.parseStringToDate("2025-01-01");
|
||||
Date endDate = DateUtils.parseStringToDate(settleDate);
|
||||
Map<String, CuMemberSettlePeriod> memberSettlePeriodMap = queryCuMemberSettlePeriod(startDate, endDate);
|
||||
List<String> periodList = new ArrayList<>();
|
||||
|
@ -103,7 +104,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
startDate = DateUtils.afterDate(1, ChronoUnit.DAYS, startDate);
|
||||
}
|
||||
|
||||
cuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
iCuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -117,7 +118,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
redisService.setCacheObject(key, cuMemberSettlePeriod);
|
||||
} else {
|
||||
QueryWrapper<CuMemberSettlePeriod> queryWrapper1 = new QueryWrapper<>();
|
||||
queryWrapper1.select("max(pk_id) pk_id,max(settle_date) settle_date");
|
||||
queryWrapper1.select("max(pk_id) pk_id, max(settle_date) settle_date");
|
||||
cuMemberSettlePeriod = baseMapper.selectOne(queryWrapper1);
|
||||
if (DateUtils.compareDateAfter(DateUtils.parseDate(date), cuMemberSettlePeriod.getSettleDate())) {
|
||||
int addDayNum = 8 - DateUtils.getRecentlyDay(cuMemberSettlePeriod.getSettleDate()) + MagicNumberConstants.PERIOD_AUTO_INCREASE;
|
||||
|
@ -179,7 +180,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
}
|
||||
}
|
||||
}
|
||||
cuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
iCuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
cuMemberSettlePeriod = getCuMemberSettlePeriod(date);
|
||||
} else {
|
||||
return null;
|
||||
|
@ -190,9 +191,9 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
}
|
||||
|
||||
private void packageSettleCountry(List<Integer> weekSettleCountry, List<Integer> daySettleCountry) {
|
||||
Map<Integer, BdCountry> allCountryMap = countryServiceApi.getAllCountryMap().getData();
|
||||
Map<Integer, BdCountry> allCountryMap = iCountryServiceApi.getAllCountryMap().getData();
|
||||
for (Integer pkCountry : allCountryMap.keySet()) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
// 周结
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
weekSettleCountry.add(pkCountry);
|
||||
|
@ -208,8 +209,8 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
}
|
||||
|
||||
private CuMemberSettlePeriod getCuMemberSettlePeriod(String date) {
|
||||
QueryWrapper<CuMemberSettlePeriod> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("SETTLE_DATE", DateUtils.parseStringToDate(date));
|
||||
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CuMemberSettlePeriod::getSettleDate, DateUtils.parseStringToDate(date));
|
||||
return baseMapper.selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
|
@ -220,9 +221,9 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
* @param: null null
|
||||
**/
|
||||
private Map<String, CuMemberSettlePeriod> queryCuMemberSettlePeriod(Date startDate, Date endDate) {
|
||||
QueryWrapper<CuMemberSettlePeriod> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.ge("SETTLE_DATE", startDate);
|
||||
queryWrapper.le("SETTLE_DATE", endDate);
|
||||
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.ge(CuMemberSettlePeriod::getSettleDate, startDate);
|
||||
queryWrapper.le(CuMemberSettlePeriod::getSettleDate, endDate);
|
||||
List<CuMemberSettlePeriod> memberSettlePeriodList = baseMapper.selectList(queryWrapper);
|
||||
Map<String, CuMemberSettlePeriod> cuMemberSettlePeriodMap = new HashMap<>();
|
||||
memberSettlePeriodList.forEach(cuMemberSettlePeriod ->
|
||||
|
@ -232,9 +233,9 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
|
||||
@Override
|
||||
public List<CuMemberSettlePeriod> queryCuMemberSettlePeriod() {
|
||||
QueryWrapper<CuMemberSettlePeriod> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("PK_ID,SETTLE_DATE");
|
||||
queryWrapper.orderByDesc(SystemFieldConstants.PK_ID);
|
||||
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(CuMemberSettlePeriod::getPkId, CuMemberSettlePeriod::getSettleDate);
|
||||
queryWrapper.orderByDesc(CuMemberSettlePeriod::getPkId);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
@ -246,7 +247,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
@Override
|
||||
public void updateCuMemberSettlePeriodByDate(CuMemberSettlePeriodExt cuMemberSettlePeriodByDate) {
|
||||
// baseMapper.updateById(cuMemberSettlePeriodByDate);
|
||||
cuMemberSettlePeriodDetailService.updateCuMemberSettlePeriodDetailByPeriod(cuMemberSettlePeriodByDate);
|
||||
iCuMemberSettlePeriodDetailService.updateCuMemberSettlePeriodDetailByPeriod(cuMemberSettlePeriodByDate);
|
||||
// String key = CacheConstants.CU_MEMBER_SETTLE_PERIOD + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberSettlePeriodByDate.getSettleDate());
|
||||
// redisService.deleteObjectByKey(key);
|
||||
}
|
||||
|
|
|
@ -42,23 +42,23 @@ import java.util.stream.Collectors;
|
|||
public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuMemberTree> implements ICuMemberTreeService {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberTreeService memberTreeService;
|
||||
private ICuMemberTreeService iCuMemberTreeService;
|
||||
@Autowired
|
||||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
private ICuMemberAchieveService iCuMemberAchieveService;
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private ICuMemberAssessService iCuMemberAssessService;
|
||||
@Autowired
|
||||
private ICuBonusExpandService iCuBonusExpandService;
|
||||
@Autowired
|
||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private ICuMemberAssessService cuMemberAssessService;
|
||||
@Autowired
|
||||
private ICuBonusExpandService bonusExpandService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void createCuMemberTree(String date) {
|
||||
// 创建日表记录表
|
||||
int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
// 创建日结算(cu_member_settle)
|
||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
String settleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
||||
Integer number = baseMapper.queryExistOracleTable(settleTableName);
|
||||
if (number == null || number <= 0) {
|
||||
|
@ -77,50 +77,54 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
Date startDate = DateUtils.beforeMonthFirstDate(settleDate);
|
||||
updateCuMemberSettleExemptByAward(settleTableName, startDate, endDate);
|
||||
}
|
||||
// 创建极差结算记录表
|
||||
String rangeTableName = TableNameConstants.CU_MEMBER_RANGE + period;
|
||||
number = baseMapper.queryExistOracleTable(rangeTableName);
|
||||
if (number == null || number <= 0) {
|
||||
baseMapper.createCuMemberRangeTable(rangeTableName);
|
||||
baseMapper.createCuMemberTreeDayOnlyIndex(rangeTableName);
|
||||
baseMapper.createCuMemberTreeParentIndex(rangeTableName);
|
||||
}
|
||||
number = baseMapper.queryExistOrderTableCount(rangeTableName);
|
||||
if (number == null || number <= 0) {
|
||||
// 初始化日表数据,将cu_member数据插入到最新的日表记录表
|
||||
// 获取当前月份第一天
|
||||
Date firstDate = DateUtils.currentMonthFirstDate(DateUtils.parseStringToDate(date));
|
||||
Integer firstPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, firstDate)).getPkId();
|
||||
String year = DateUtils.getYear(date);
|
||||
baseMapper.insertCuMemberRangeByMember(rangeTableName, year, firstPeriod, firstDate);
|
||||
}
|
||||
|
||||
// 创建月表记录表
|
||||
// // 创建极差结算记录表
|
||||
// String rangeTableName = TableNameConstants.CU_MEMBER_RANGE + period;
|
||||
// number = baseMapper.queryExistOracleTable(rangeTableName);
|
||||
// if (number == null || number <= 0) {
|
||||
// baseMapper.createCuMemberRangeTable(rangeTableName);
|
||||
// baseMapper.createCuMemberTreeDayOnlyIndex(rangeTableName);
|
||||
// baseMapper.createCuMemberTreeParentIndex(rangeTableName);
|
||||
// }
|
||||
// number = baseMapper.queryExistOrderTableCount(rangeTableName);
|
||||
// if (number == null || number <= 0) {
|
||||
// // 初始化日表数据,将cu_member数据插入到最新的日表记录表
|
||||
// // 获取当前月份第一天
|
||||
// Date firstDate = DateUtils.currentMonthFirstDate(DateUtils.parseStringToDate(date));
|
||||
// Integer firstPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, firstDate)).getPkId();
|
||||
// String year = DateUtils.getYear(date);
|
||||
// baseMapper.insertCuMemberRangeByMember(rangeTableName, year, firstPeriod, firstDate);
|
||||
// }
|
||||
|
||||
// 创建会员网体月表(cu_member_tree)
|
||||
createMonthTreeTableName(date);
|
||||
// 创建月表业绩记录表
|
||||
cuMemberAchieveService.createCuMemberAchieve(date);
|
||||
// 创建月表业绩记录表(cu_member_achieve)
|
||||
iCuMemberAchieveService.createCuMemberAchieve(date);
|
||||
|
||||
// 创建秒接表,秒结表只需要表结构,跟日表一模一样,秒结表期间是date+1期间
|
||||
Date tomorrowDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.parseStringToDate(date));
|
||||
String tomorrow = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, tomorrowDate);
|
||||
int nextPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(tomorrow).getPkId();
|
||||
int nextPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(tomorrow).getPkId();
|
||||
// 创建会员秒表(cu_member_second)
|
||||
String secondTableName = TableNameConstants.CU_MEMBER_SECOND + nextPeriod;
|
||||
number = baseMapper.queryExistOracleTable(secondTableName);
|
||||
if (number == null || number <= 0) {
|
||||
baseMapper.createCuMemberSecondTable(secondTableName);
|
||||
baseMapper.createCuMemberTreeDayOnlyIndex(secondTableName);
|
||||
}
|
||||
String secondRangeTableName = TableNameConstants.CU_MEMBER_RANGE_S + nextPeriod;
|
||||
number = baseMapper.queryExistOracleTable(secondRangeTableName);
|
||||
if (number == null || number <= 0) {
|
||||
baseMapper.createCuMemberRangeSecondTable(secondRangeTableName);
|
||||
baseMapper.createCuMemberTreeDayOnlyIndex(secondRangeTableName);
|
||||
}
|
||||
|
||||
// // 创建会员级差秒结表(cu_member_second_s)
|
||||
// String secondRangeTableName = TableNameConstants.CU_MEMBER_RANGE_S + nextPeriod;
|
||||
// number = baseMapper.queryExistOracleTable(secondRangeTableName);
|
||||
// if (number == null || number <= 0) {
|
||||
// baseMapper.createCuMemberRangeSecondTable(secondRangeTableName);
|
||||
// baseMapper.createCuMemberTreeDayOnlyIndex(secondRangeTableName);
|
||||
// }
|
||||
|
||||
// 删除60天前的结算日表,结算秒表
|
||||
Date beforeDate = DateUtils.beforeDate(60, ChronoUnit.DAYS, DateUtils.parseStringToDate(date));
|
||||
// 上个月最后一天
|
||||
int beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, beforeDate)).getPkId();
|
||||
int beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, beforeDate)).getPkId();
|
||||
// 不删除每月最后一天数据
|
||||
String afterDate = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, DateUtils.afterDate(1, ChronoUnit.DAYS, beforeDate));
|
||||
if (!afterDate.endsWith("01")) {
|
||||
|
@ -136,8 +140,9 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
baseMapper.dropCuMemberSettleTable(beforeSecondTableName);
|
||||
}
|
||||
|
||||
// 4-N 增加碰次需求
|
||||
BonusExpandParam bonusExpandParam = BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(date)).build();
|
||||
bonusExpandService.firstSaveCuBonusExpand(bonusExpandParam);
|
||||
iCuBonusExpandService.firstSaveCuBonusExpand(bonusExpandParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -147,7 +152,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
Integer number = baseMapper.queryExistOrderTableCount(settleTableName);
|
||||
if (number == null || number <= 0) {
|
||||
// 初始化日表数据,将cu_member数据插入到最新的日表记录表
|
||||
int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
String treeTableName = TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(date);
|
||||
String achieveTableName = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(date);
|
||||
baseMapper.insertCuMemberSettleByHis(settleTableName, treeTableName, achieveTableName, period);
|
||||
|
@ -155,7 +160,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
}
|
||||
|
||||
private String createSettleTable(String date) {
|
||||
int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
String settleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
||||
Integer number = baseMapper.queryExistOracleTable(settleTableName);
|
||||
// if(number != null && number >0){
|
||||
|
@ -168,16 +173,16 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
baseMapper.createCuMemberTreePlaceIndex(settleTableName);
|
||||
}
|
||||
BonusExpandParam bonusExpandParam = BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(date)).build();
|
||||
bonusExpandService.firstSaveCuBonusExpand(bonusExpandParam);
|
||||
iCuBonusExpandService.firstSaveCuBonusExpand(bonusExpandParam);
|
||||
return settleTableName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initCuMemberAssessData(String settleDate) {
|
||||
// 创建日表记录表
|
||||
int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
// 创建月表考核记录表
|
||||
cuMemberAssessService.initCuMemberAssessData(settleDate, period);
|
||||
iCuMemberAssessService.initCuMemberAssessData(settleDate, period);
|
||||
}
|
||||
|
||||
private String createMonthTreeTableName(String date) {
|
||||
|
@ -197,14 +202,14 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
@Override
|
||||
public void initCuMemberTreeTable(String yesterdaySettleTableName, String currentSettleTableName) {
|
||||
// 更新所有值为0
|
||||
cuMemberAchieveService.updateCuMemberSettleInitAchieve(currentSettleTableName);
|
||||
iCuMemberAchieveService.updateCuMemberSettleInitAchieve(currentSettleTableName);
|
||||
// 初始化结算日的数据,将日期-1的数据作为当天的数据
|
||||
cuMemberAchieveService.updateCuMemberSettleAchieveByBeforeDay(yesterdaySettleTableName, currentSettleTableName);
|
||||
iCuMemberAchieveService.updateCuMemberSettleAchieveByBeforeDay(yesterdaySettleTableName, currentSettleTableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initCuMemberExpandTreeTable(String yesterdaySettleTableName, String currentSettleTableName) {
|
||||
cuMemberAchieveService.updateCuMemberExpandSettleAchieveByBeforeDay(yesterdaySettleTableName, currentSettleTableName);
|
||||
iCuMemberAchieveService.updateCuMemberExpandSettleAchieveByBeforeDay(yesterdaySettleTableName, currentSettleTableName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -216,17 +221,17 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
*/
|
||||
@Override
|
||||
public void updateCuMemberSettle(Map<Long, MemberAchieveParam> cuMemberAchieveHashMap, String currentSettleTableName) {
|
||||
cuMemberAchieveService.updateCuMemberAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
iCuMemberAchieveService.updateCuMemberAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberNetAchieve(List<CuMemberAchieveExt> updMemberAchieveExtList, String currentSettleTableName) {
|
||||
cuMemberAchieveService.updateCuMemberNetAchieve(updMemberAchieveExtList, currentSettleTableName);
|
||||
iCuMemberAchieveService.updateCuMemberNetAchieve(updMemberAchieveExtList, currentSettleTableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberBackSettle(Map<Long, MemberAchieveParam> cuMemberAchieveHashMap, String currentSettleTableName) {
|
||||
cuMemberAchieveService.updateCuMemberBackOldAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
iCuMemberAchieveService.updateCuMemberBackOldAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -266,17 +271,22 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void insertCuMemberTreeBySettleDate(String settleDate, String settleTableName, Integer period) {
|
||||
// 创建月表记录表
|
||||
// 创建月表记录表(cu_member_achieve)
|
||||
String achieveTableName = iCuMemberAchieveService.createCuMemberAchieve(settleDate);
|
||||
// 创建会员历史网体月表(cu_member_tree)
|
||||
String treeTableName = createMonthTreeTableName(settleDate);
|
||||
String achieveTableName = cuMemberAchieveService.createCuMemberAchieve(settleDate);
|
||||
|
||||
// 删除之前的数据
|
||||
// baseMapper.deleteCuMemberTreeByPeriod(treeTableName, period);
|
||||
// baseMapper.deleteCuMemberTreeByPeriod(achieveTableName, period);
|
||||
// 迁移新的数据
|
||||
// baseMapper.insertCuMemberTreeBySettleDate(treeTableName, settleTableName, period);
|
||||
// 结算日表网体添加到网体月表中
|
||||
baseMapper.mergeCuMemberTreeBySettleDate(treeTableName, settleTableName, period);
|
||||
// cuMemberAchieveService.insertCuMemberAchieveBySettleDate(achieveTableName, settleTableName, period);
|
||||
cuMemberAchieveService.mergeCuMemberAchieveBySettleDate(achieveTableName, settleTableName, period);
|
||||
|
||||
// iCuMemberAchieveService.insertCuMemberAchieveBySettleDate(achieveTableName, settleTableName, period);
|
||||
// 结算日表的值插入到结算月表中
|
||||
iCuMemberAchieveService.mergeCuMemberAchieveBySettleDate(achieveTableName, settleTableName, period);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -507,9 +517,9 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
List<MemberParentCountParam> memberParentCountParamPvList = new ArrayList<>();
|
||||
if (settleTableName.contains(TableNameConstants.CU_MEMBER_SECOND)) {
|
||||
// 查询秒结表
|
||||
memberParentCountParamPvList = memberTreeService.queryByMemberParentSumPv(settleTableName, ids);
|
||||
memberParentCountParamPvList = iCuMemberTreeService.queryByMemberParentSumPv(settleTableName, ids);
|
||||
} else {
|
||||
memberParentCountParamPvList = memberTreeService.queryByMemberParentSettleSumPv(settleTableName, ids);
|
||||
memberParentCountParamPvList = iCuMemberTreeService.queryByMemberParentSettleSumPv(settleTableName, ids);
|
||||
}
|
||||
|
||||
Map<Long, BigDecimal> memberParentPvMap = memberParentCountParamPvList.stream().collect(Collectors.toMap(MemberParentCountParam::getPkMember, MemberParentCountParam::getParentMemberSumPv));
|
||||
|
@ -692,7 +702,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
|
||||
//查询直推业绩
|
||||
if (StringUtils.isNotBlank(settleTableName)) {
|
||||
List<MemberParentCountParam> memberParentCountParamPvList = memberTreeService.queryByMemberParentSumPv(settleTableName, memberIds);
|
||||
List<MemberParentCountParam> memberParentCountParamPvList = iCuMemberTreeService.queryByMemberParentSumPv(settleTableName, memberIds);
|
||||
Map<Long, BigDecimal> memberParentPvMap = memberParentCountParamPvList.stream().collect(Collectors.toMap(MemberParentCountParam::getPkMember, MemberParentCountParam::getParentMemberSumPv));
|
||||
cuMemberSettleExt.setHistoryPerformancePv(memberParentPvMap.getOrDefault(cuMemberSettleExt.getPkMember(), BigDecimal.ZERO));
|
||||
}
|
||||
|
|
|
@ -29,20 +29,20 @@ import java.util.Date;
|
|||
public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberMonthAchieveService cuMemberMonthAchieveService;
|
||||
private ICuMemberMonthAchieveService iCuMemberMonthAchieveService;
|
||||
@Autowired
|
||||
private IBonusSettleService bonusSettleService;
|
||||
private IBonusSettleService iBonusSettleService;
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
@Autowired
|
||||
private IBonusGrantService bonusGrantService;
|
||||
private IBonusGrantService iBonusGrantService;
|
||||
@Autowired
|
||||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
private ICuMemberAchieveService iCuMemberAchieveService;
|
||||
|
||||
@Override
|
||||
public R<Boolean> calculateCumberBonusBySecond(String orderCode) {
|
||||
try {
|
||||
bonusSettleService.calculateCumberBonusBySecond(orderCode);
|
||||
iBonusSettleService.calculateCumberBonusBySecond(orderCode);
|
||||
} catch (Exception e) {
|
||||
return R.fail();
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
|||
|
||||
@Override
|
||||
public void backupsSettleBonusEveryday() {
|
||||
cuMemberBonusService.backupsSettleBonusEveryday();
|
||||
iCuMemberBonusService.backupsSettleBonusEveryday();
|
||||
}
|
||||
|
||||
class BonusCalculateBonus extends Thread {
|
||||
|
@ -78,7 +78,7 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
|||
log.info("奖金结算开始, 结算时间:{}", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate));
|
||||
// 奖金结算
|
||||
try {
|
||||
cuMemberBonusService.autoCalculateBonus(settleDate, settleEndDate);
|
||||
iCuMemberBonusService.autoCalculateBonus(settleDate, settleEndDate);
|
||||
log.info("奖金结算结束");
|
||||
} catch (Exception e) {
|
||||
log.error("奖金结算异常,结算时间:{}", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate), e);
|
||||
|
@ -88,21 +88,21 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
|||
|
||||
@Override
|
||||
public void insertCuMemberAchieveByEveryDay() {
|
||||
cuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
iCuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoPublishBonus() {
|
||||
bonusGrantService.publishBonusByPeriodEveryDay();
|
||||
iBonusGrantService.publishBonusByPeriodEveryDay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoGrantBonus() {
|
||||
bonusGrantService.grantWithdrawBonusByPeriodEveryDay();
|
||||
iBonusGrantService.grantWithdrawBonusByPeriodEveryDay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean chargeBackSaOrder(SaOrder saOrder) {
|
||||
return cuMemberAchieveService.chargeBackSaOrder(saOrder);
|
||||
return iCuMemberAchieveService.chargeBackSaOrder(saOrder);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.hzs.system.base.ICountryServiceApi;
|
|||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IAccountServiceApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -43,43 +44,46 @@ import java.util.*;
|
|||
* @Classname: BonusGrantServiceImpl
|
||||
* @PackageName: com.hzs.member.bonus.service.impl
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||
|
||||
@DubboReference
|
||||
IAccountServiceApi accountServiceApi;
|
||||
IAccountServiceApi iAccountServiceApi;
|
||||
@DubboReference
|
||||
IActivityServiceApi activityServiceApi;
|
||||
IActivityServiceApi iActivityServiceApi;
|
||||
@DubboReference
|
||||
ICountryServiceApi countryServiceApi;
|
||||
ICountryServiceApi iCountryServiceApi;
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private ICuMemberTradeService iCuMemberTradeService;
|
||||
@Autowired
|
||||
private ICuMemberTradeDetailService iCuMemberTradeDetailService;
|
||||
@Autowired
|
||||
private ICuMemberAccountService iCuMemberAccountService;
|
||||
@Autowired
|
||||
private MemberToolsHandler memberToolsHandler;
|
||||
@Autowired
|
||||
private ICuMemberTradeService cuMemberTradeService;
|
||||
@Autowired
|
||||
private ICuMemberTradeDetailService cuMemberTradeDetailService;
|
||||
@Autowired
|
||||
private ICuMemberAccountService cuMemberAccountService;
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void publishBonusByPeriodEveryDay() {
|
||||
Map<Integer, BdCountry> integerBdCountryMap = countryServiceApi.getAllCountryMap().getData();
|
||||
Map<Integer, BdCountry> integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData();
|
||||
if (integerBdCountryMap.size() > 0) {
|
||||
for (Integer pkCountry : integerBdCountryMap.keySet()) {
|
||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
|
||||
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
||||
log.info("公布奖金参数, settleDate: {}, ", settleDate);
|
||||
// 设置不公布后不能自动公布奖金
|
||||
if (EYesNo.PROHIBIT.getIntValue() == cuMemberSettlePeriod.getIsPublish()) {
|
||||
return;
|
||||
}
|
||||
log.info("公布奖金期数状态, isPublish: {}, ", cuMemberSettlePeriod.getIsPublish());
|
||||
publishBonus(cuMemberSettlePeriod);
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +92,7 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void grantWithdrawBonusByPeriodEveryDay() {
|
||||
Map<Integer, BdCountry> integerBdCountryMap = countryServiceApi.getAllCountryMap().getData();
|
||||
Map<Integer, BdCountry> integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData();
|
||||
if (integerBdCountryMap.size() > 0) {
|
||||
for (Integer pkCountry : integerBdCountryMap.keySet()) {
|
||||
// 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现
|
||||
|
@ -118,13 +122,15 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsPublish()) {
|
||||
return;
|
||||
}
|
||||
// 更新奖金状态
|
||||
cuMemberBonusService.updateCuMemberBonusStatus(null, EGrantStatus.PUBLISHED.getValue(), EGrantStatus.SETTLED.getValue(),
|
||||
|
||||
log.info("公布奖金开始, periodId: {}, ", cuMemberSettlePeriod.getPkId());
|
||||
// 更新奖金状态(cu_member_bonus)
|
||||
iCuMemberBonusService.updateCuMemberBonusStatus(null, EGrantStatus.PUBLISHED.getValue(), EGrantStatus.SETTLED.getValue(),
|
||||
cuMemberSettlePeriod.getPkId(), cuMemberSettlePeriod.getPkId());
|
||||
// 更新期间表状态
|
||||
// 更新期间表状态(cu_member_settle_period_detail)
|
||||
cuMemberSettlePeriod.setIsPublish(EYesNo.YES.getIntValue());
|
||||
cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime());
|
||||
cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -143,11 +149,11 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
// 更新期间表状态
|
||||
cuMemberSettlePeriod.setIsPublish(EYesNo.PROHIBIT.getIntValue());
|
||||
cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime());
|
||||
cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
}
|
||||
|
||||
private CuMemberSettlePeriodExt getCuMemberSettlePeriod(Integer pkCountry, String settleDate) {
|
||||
CuMemberSettlePeriodExt cuMemberSettlePeriodByDate = cuMemberSettlePeriodService.getCuMemberSettlePeriod(pkCountry, DateUtils.parseStringToDate(settleDate));
|
||||
CuMemberSettlePeriodExt cuMemberSettlePeriodByDate = iCuMemberSettlePeriodService.getCuMemberSettlePeriod(pkCountry, DateUtils.parseStringToDate(settleDate));
|
||||
cuMemberSettlePeriodByDate.setPkModified(MagicNumberConstants.PK_ADMIN);
|
||||
cuMemberSettlePeriodByDate.setModifiedTime(DateUtils.currentDateTime());
|
||||
return cuMemberSettlePeriodByDate;
|
||||
|
@ -172,16 +178,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
return Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
Map<Integer, BdAccount> bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData();
|
||||
Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
|
||||
Date currentDateTime = DateUtils.currentDateTime();
|
||||
// 中国需要发放沙棘种树的复购券
|
||||
if (CountryConstants.CHINA_COUNTRY.equals(pkCountry)) {
|
||||
// 查询沙棘种树订单
|
||||
Date startDate = DateUtils.parseStringToDate(settleDate);
|
||||
Date endDate = DateUtils.afterDate(1, ChronoUnit.DAYS, startDate);
|
||||
List<SaTreeOrder> treeOrderList = activityServiceApi.querySaTreeOrderByDate(startDate, endDate).getData();
|
||||
List<SaTreeOrder> treeOrderList = iActivityServiceApi.querySaTreeOrderByDate(startDate, endDate).getData();
|
||||
if (CollectionUtil.isNotEmpty(treeOrderList)) {
|
||||
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(pkCountry).getData();
|
||||
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(pkCountry).getData();
|
||||
Map<Long, CuMemberAccount> cuMemberAccountMap = new HashMap<>();
|
||||
List<CuMemberTrade> memberTradeList = new ArrayList<>();
|
||||
for (SaTreeOrder saTreeOrder : treeOrderList) {
|
||||
|
@ -213,26 +219,26 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
cuMemberAccountMap.put(saTreeOrder.getPkMember(), cuMemberAccount);
|
||||
}
|
||||
}
|
||||
List<Long> seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(memberTradeList.size());
|
||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(memberTradeList.size());
|
||||
for (int i = 0; i < memberTradeList.size(); i++) {
|
||||
CuMemberTrade cuMemberTrade = memberTradeList.get(i);
|
||||
cuMemberTrade.setPkId(seqList.get(i));
|
||||
}
|
||||
cuMemberTradeService.batchInsertCuMemberTrade(memberTradeList);
|
||||
iCuMemberTradeService.batchInsertCuMemberTrade(memberTradeList);
|
||||
if (cuMemberAccountMap.size() > 0) {
|
||||
cuMemberAccountMap.forEach((pkMember, cumemberAccount) -> {
|
||||
cuMemberAccountService.updateMemberAccount(cumemberAccount, MagicNumberConstants.PK_ADMIN);
|
||||
iCuMemberAccountService.updateMemberAccount(cumemberAccount, MagicNumberConstants.PK_ADMIN);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
// 查询奖金表,查询未发放的奖金明细
|
||||
List<CuMemberBonus> cuMemberBonusList = cuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
if (cuMemberBonusList.size() > 0) {
|
||||
// 新增交易流水
|
||||
List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData();
|
||||
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData();
|
||||
// 奖金币(首购+复购+云代+海粉+嗨粉+创客空间+店铺)
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 重销币(商城重消+平台服务费)
|
||||
|
@ -245,10 +251,10 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
// 车奖积分
|
||||
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
});
|
||||
List<Long> seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
||||
List<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>();
|
||||
Map<Integer, BdAccount> bdAccountMap = accountServiceApi.getAccountListByCountry(pkCountry).getData();
|
||||
Map<Integer, BdAccount> bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData();
|
||||
for (int i = 0; i < cuMemberTradeList.size(); i++) {
|
||||
CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i);
|
||||
cuMemberTrade.setPkId(seqList.get(i));
|
||||
|
@ -267,18 +273,18 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
}
|
||||
}
|
||||
// 批量保存交易流水,交易流水明细
|
||||
cuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList);
|
||||
cuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList);
|
||||
iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
// 批量更新会员账户,更新余额
|
||||
cuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
// 更新奖金表发放状态
|
||||
cuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(),
|
||||
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(),
|
||||
cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
}
|
||||
// 更新期间表状态
|
||||
cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue());
|
||||
cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime());
|
||||
cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
@ -287,14 +293,14 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
// 奖金发放
|
||||
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
||||
// 查询奖金表,查询未发放的奖金明细
|
||||
List<CuMemberBonus> cuMemberBonusList = cuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
Map<Integer, BdAccount> bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData();
|
||||
List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
|
||||
Date currentDateTime = DateUtils.currentDateTime();
|
||||
if (cuMemberBonusList.size() > 0) {
|
||||
// 新增交易流水
|
||||
List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData();
|
||||
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData();
|
||||
// 奖金币(首购+复购+云代+海粉+嗨粉+创客空间+店铺)
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 重销币(商城重消+平台服务费)
|
||||
|
@ -307,10 +313,10 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
// 车奖积分
|
||||
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
});
|
||||
List<Long> seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
||||
List<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>();
|
||||
Map<Integer, BdAccount> bdAccountMap = accountServiceApi.getAccountListByCountry(pkCountry).getData();
|
||||
Map<Integer, BdAccount> bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData();
|
||||
for (int i = 0; i < cuMemberTradeList.size(); i++) {
|
||||
CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i);
|
||||
cuMemberTrade.setPkId(seqList.get(i));
|
||||
|
@ -329,12 +335,12 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
}
|
||||
}
|
||||
// 批量保存交易流水,交易流水明细
|
||||
cuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList);
|
||||
cuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList);
|
||||
iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
// 批量更新会员账户,更新余额
|
||||
cuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
// 更新奖金表发放状态
|
||||
cuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(),
|
||||
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(),
|
||||
cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
}
|
||||
}
|
||||
|
@ -361,15 +367,15 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
}
|
||||
}
|
||||
// 批量更新会员账户,更新余额
|
||||
cuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||
iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||
// 更新交易明细表状态 cu_member_trade_detail
|
||||
cuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||
iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||
// 更新奖金表发放状态
|
||||
cuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
// 更新期间表状态
|
||||
cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue());
|
||||
cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime());
|
||||
cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -18,7 +18,6 @@ import com.hzs.bonus.bonus.param.LeXueRangeParam;
|
|||
import com.hzs.bonus.bonus.service.*;
|
||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailCalVO;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAssessService;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||
import com.hzs.bonus.risk.service.ICuMemberRiskControlService;
|
||||
import com.hzs.bonus.swing.service.ICuMemberSwingNetLogService;
|
||||
|
@ -78,49 +77,63 @@ import java.util.*;
|
|||
public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||
|
||||
@DubboReference
|
||||
ISystemConfigServiceApi systemConfigServiceApi;
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
@DubboReference
|
||||
IGradeServiceApi gradeServiceApi;
|
||||
IGradeServiceApi iGradeServiceApi;
|
||||
@DubboReference
|
||||
IAwardsServiceApi awardsServiceApi;
|
||||
IAwardsServiceApi iAwardsServiceApi;
|
||||
@DubboReference
|
||||
IRangeServiceApi rangeServiceApi;
|
||||
IRangeServiceApi iRangeServiceApi;
|
||||
@DubboReference
|
||||
IMemberServiceApi memberServiceApi;
|
||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||
@DubboReference
|
||||
IBonusItemsServiceApi bonusItemsServiceApi;
|
||||
IMemberServiceApi iMemberServiceApi;
|
||||
@DubboReference
|
||||
IAcPickServiceApi acPickServiceApi;
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
@DubboReference
|
||||
ISaOrderServiceApi saOrderServiceApi;
|
||||
IAcPickServiceApi iAcPickServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberTreeService cuMemberTreeService;
|
||||
private ICuMemberTreeService iCuMemberTreeService;
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private ICuMemberAwardsService cuMemberAwardsService;
|
||||
private ICuMemberAwardsService iCuMemberAwardsService;
|
||||
@Autowired
|
||||
private ICuMemberAssessService cuMemberAssessService;
|
||||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private ICuMemberService cuMemberService;
|
||||
private ICuMemberAchieveLogService iCuMemberAchieveLogService;
|
||||
@Autowired
|
||||
private ICuMemberAchieveLogService cuMemberAchieveLogService;
|
||||
private ICuMemberAchieveService iCuMemberAchieveService;
|
||||
@Autowired
|
||||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
private ICuAwardsControlService iCuAwardsControlService;
|
||||
@Autowired
|
||||
private ICuAwardsControlService cuAwardsControlService;
|
||||
private ICuMemberSwingNetLogService iCuMemberSwingNetLogService;
|
||||
@Autowired
|
||||
private ICuMemberSwingNetLogService cuMemberSwingNetLogService;
|
||||
private ICuMemberRepeatBonusService iCuMemberRepeatBonusService;
|
||||
@Autowired
|
||||
private ICuMemberRepeatBonusService cuMemberRepeatBonusService;
|
||||
private IBdWaresBonusService iBdWaresBonusService;
|
||||
@Autowired
|
||||
private ICuBonusExpandService iCuBonusExpandService;
|
||||
@Autowired
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
@Autowired
|
||||
private ICuMemberBonusPushService iCuMemberBonusPushService;
|
||||
@Autowired
|
||||
private ICuMemberBonusExpandService iCuMemberBonusExpandService;
|
||||
@Autowired
|
||||
private ICuMemberBonusCoachService iCuMemberBonusCoachService;
|
||||
@Autowired
|
||||
private ICuMemberBonusDetailService iCuMemberBonusDetailService;
|
||||
@Autowired
|
||||
private ICuMemberBonusRangeService iCuMemberBonusRangeService;
|
||||
@Autowired
|
||||
private ICuMemberRangeService iCuMemberRangeService;
|
||||
@Autowired
|
||||
private ICuMemberRiskControlService iCuMemberRiskControlService;
|
||||
@Autowired
|
||||
private BonusSettleRangeHandle bonusSettleRangeHandle;
|
||||
@Autowired
|
||||
private IBdWaresBonusService bdWaresBonusService;
|
||||
@Autowired
|
||||
private ICuBonusExpandService bonusExpandService;
|
||||
@Autowired
|
||||
private BonusSettleFirstPurchaseHandle bonusSettleFirstPurchaseHandle;
|
||||
@Autowired
|
||||
private BonusSettlePurchaseHandle bonusSettlePurchaseHandle;
|
||||
|
@ -132,46 +145,30 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
private BonusSettleRepCouponsHandle bonusSettleRepCouponsHandle;
|
||||
@Autowired
|
||||
private BonusSettleMallHandle bonusSettleMallHandle;
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
@Autowired
|
||||
private ICuMemberBonusPushService cuMemberBonusPushService;
|
||||
@Autowired
|
||||
private ICuMemberBonusExpandService cuMemberBonusExpandService;
|
||||
@Autowired
|
||||
private ICuMemberBonusCoachService cuMemberBonusCoachService;
|
||||
@Autowired
|
||||
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
||||
@Autowired
|
||||
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
||||
@Autowired
|
||||
private ICuMemberRangeService cuMemberRangeService;
|
||||
@Autowired
|
||||
private ICuMemberRiskControlService cuMemberRiskControlService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void calculateCumberBonusBySecond(String orderCode) {
|
||||
log.info("开始执行秒接,订单编号:{}", orderCode);
|
||||
Date startDate = DateUtils.currentDate();
|
||||
SaOrderExt saOrderExt = saOrderServiceApi.querySaOrderByDay(startDate,
|
||||
SaOrderExt saOrderExt = iSaOrderServiceApi.querySaOrderByDay(startDate,
|
||||
DateUtils.afterDate(1, ChronoUnit.DAYS, startDate), orderCode).getData();
|
||||
Map<String, String> systemConfigMap = systemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, RangeDTO> rangeDtoMap = rangeServiceApi.queryRangeDto().getData();
|
||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, RangeDTO> rangeDtoMap = iRangeServiceApi.queryRangeDto().getData();
|
||||
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
||||
String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, saOrderExt.getPayTime()));
|
||||
String beforeYesDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(2, ChronoUnit.DAYS, saOrderExt.getPayTime()));
|
||||
int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
int beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
||||
int beforeYesPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeYesDay).getPkId();
|
||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
int beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
||||
int beforeYesPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeYesDay).getPkId();
|
||||
log.info("查询订单,订单参数:{}", JSONUtil.toJsonStr(saOrderExt));
|
||||
String secondTableName = TableNameConstants.CU_MEMBER_SECOND + period;
|
||||
String settleTableName = TableNameConstants.CU_MEMBER_SETTLE + beforePeriod;
|
||||
// 前天
|
||||
String yesSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + beforeYesPeriod;
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap = new HashMap<>();
|
||||
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
||||
// 计算奖金
|
||||
|
@ -188,34 +185,34 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 领导奖- 安置血缘以上,判断奖衔
|
||||
// 报单服务费 - 报单人
|
||||
List<Long> memberList = new ArrayList<>();
|
||||
CuMember cuMember = cuMemberService.getMember(saOrderExt.getPkMember());
|
||||
CuMember cuMember = iCuMemberService.getMember(saOrderExt.getPkMember());
|
||||
if (cuMember.getPkCenterCode() != null && !saOrderExt.getPkReference().equals(cuMember.getPkCenterCode())) {
|
||||
memberList.add(cuMember.getPkCenterCode());
|
||||
}
|
||||
getSettleMember(saOrderExt, secondTableName, settleTableName, yesSettleTableName, memberList);
|
||||
// 查询出上面的网体数据
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = cuMemberTreeService.queryCuMemberSecondParent(secondTableName, memberList);
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = iCuMemberTreeService.queryCuMemberSecondParent(secondTableName, memberList);
|
||||
bonusSettleFirstPurchaseHandle.getSecondMemberSettle(cuMemberSettleExtMap, cuMemberSettleExtList);
|
||||
// 计算奖金
|
||||
// 计算直推奖
|
||||
List<GradeDTO> gradeDtoList = gradeServiceApi.queryGradeConfigByCondition(saOrderExt.getPkCountry()).getData();
|
||||
CuMemberBonusPush cuMemberBonusPush = bonusSettleFirstPurchaseHandle.calculatePushBonusOne(cuMemberSettleExtMap, bonusConfigDTO, systemConfigMap, period, cuMemberBonusMap, saOrderExt, awardsServiceApi.getAwards().getData(), gradeDtoList);
|
||||
List<GradeDTO> gradeDtoList = iGradeServiceApi.queryGradeConfigByCondition(saOrderExt.getPkCountry()).getData();
|
||||
CuMemberBonusPush cuMemberBonusPush = bonusSettleFirstPurchaseHandle.calculatePushBonusOne(cuMemberSettleExtMap, bonusConfigDTO, systemConfigMap, period, cuMemberBonusMap, saOrderExt, iAwardsServiceApi.getAwards().getData(), gradeDtoList);
|
||||
log.info("获得直推奖,奖金为:{}", JSONUtil.toJsonStr(cuMemberBonusPush));
|
||||
// 计算量奖
|
||||
// 所有需要计算的父节点,只计算新增
|
||||
List<CuMemberSettleExt> expandMemberSettleExtList = cuMemberTreeService.queryCuMemberSecondPlaceParent(secondTableName, saOrderExt.getPkMember());
|
||||
List<CuMemberSettleExt> expandMemberSettleExtList = iCuMemberTreeService.queryCuMemberSecondPlaceParent(secondTableName, saOrderExt.getPkMember());
|
||||
bonusSettleFirstPurchaseHandle.getSecondMemberSettle(cuMemberSettleExtMap, expandMemberSettleExtList);
|
||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||
Map<Long, CuMemberAssess> cuMemberAssessMap = bonusSettleFirstPurchaseHandle.getLongCuMemberAssessMap(settleDate, expandMemberSettleExtList);
|
||||
// 查询K值控制
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = cuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = iCuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
Map<Long, CuMemberRiskControl> riskControlMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(cuMemberRiskControlList)) {
|
||||
cuMemberRiskControlList.forEach(cuMemberRiskControl -> riskControlMap.put(cuMemberRiskControl.getPkMember(), cuMemberRiskControl));
|
||||
}
|
||||
Map<Long, CuBonusExpandExt> cuBonusExpandExtMap = new HashMap<>();
|
||||
BonusExpandParam bonusExpandParam = BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(settleDate)).build();
|
||||
List<CuBonusExpandExt> cuBonusExpandExtList = bonusExpandService.queryBonusExpand(bonusExpandParam);
|
||||
List<CuBonusExpandExt> cuBonusExpandExtList = iCuBonusExpandService.queryBonusExpand(bonusExpandParam);
|
||||
cuBonusExpandExtList.forEach(cuBonusExpandExt -> cuBonusExpandExtMap.put(cuBonusExpandExt.getPkMember(), cuBonusExpandExt));
|
||||
BigDecimal addTouch = BigDecimal.ZERO;
|
||||
for (int i = expandMemberSettleExtList.size() - 1; i >= 0; i--) {
|
||||
|
@ -236,14 +233,14 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
List<CuMemberBonusDetail> couponsBonusDetailList = bonusSettleRepCouponsHandle.calculateRepurchaseCoupons(startDate, Collections.singletonList(saOrderExt), period, bonusConfigDTO, cuMemberBonusMap, cuMemberSettleExtMap);
|
||||
saveCuMemberBonus(period, settleDate, cuMemberBonusMap);
|
||||
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId());
|
||||
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||
cuMemberBonusPushService.insertCuMemberBonusPush(cuMemberBonusPush);
|
||||
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||
iCuMemberBonusPushService.insertCuMemberBonusPush(cuMemberBonusPush);
|
||||
cuMemberBonusExpandList.forEach(cuMemberBonusExpand ->
|
||||
cuMemberBonusExpand.setPkBonus(cuMemberBonusMap.get(cuMemberBonusExpand.getPkBonus()).getPkId()));
|
||||
cuMemberBonusExpandService.batchInsertCuMemberBonusExpand(cuMemberBonusExpandList, memberIdSet);
|
||||
iCuMemberBonusExpandService.batchInsertCuMemberBonusExpand(cuMemberBonusExpandList, memberIdSet);
|
||||
cuMemberBonusCoachList.forEach(cuMemberBonusCoach ->
|
||||
cuMemberBonusCoach.setPkBonus(cuMemberBonusMap.get(cuMemberBonusCoach.getPkBonus()).getPkId()));
|
||||
cuMemberBonusCoachService.batchInsertCuMemberBonusCoach(cuMemberBonusCoachList, memberIdSet);
|
||||
iCuMemberBonusCoachService.batchInsertCuMemberBonusCoach(cuMemberBonusCoachList, memberIdSet);
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||
if (cuMemberBonusDetail != null) {
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
|
@ -254,7 +251,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
if (cuMemberBonusDetailList.size() > 0) {
|
||||
cuMemberBonusDetailList.forEach(bonusDetail ->
|
||||
bonusDetail.setPkBonus(cuMemberBonusMap.get(bonusDetail.getPkBonus()).getPkId()));
|
||||
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
||||
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
||||
}
|
||||
log.info("首购奖金计算完毕");
|
||||
} else {
|
||||
|
@ -262,16 +259,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
List<Long> memberList = new ArrayList<>();
|
||||
getSettleMember(saOrderExt, secondTableName, yesSettleTableName, settleTableName, memberList);
|
||||
// 初始化需要秒接结算的数据
|
||||
List<CuMemberSettleExt> pushMemberSettleExtList = cuMemberTreeService.queryCuMemberSecondParent(secondTableName, memberList);
|
||||
List<CuMemberSettleExt> pushMemberSettleExtList = iCuMemberTreeService.queryCuMemberSecondParent(secondTableName, memberList);
|
||||
bonusSettleFirstPurchaseHandle.getSecondMemberSettle(cuMemberSettleExtMap, pushMemberSettleExtList);
|
||||
List<CuMemberBonusPush> cuMemberBonusPushList = bonusSettlePurchaseHandle.calculateRepurchasePushSecondBonus(settleTableName, cuMemberSettleExtMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, pushMemberSettleExtList, settleDate);
|
||||
// 查询出上面的网体数据
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = cuMemberTreeService.queryCuMemberSecondPlaceParent(secondTableName, saOrderExt.getPkMember());
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = iCuMemberTreeService.queryCuMemberSecondPlaceParent(secondTableName, saOrderExt.getPkMember());
|
||||
bonusSettleFirstPurchaseHandle.getSecondMemberSettle(cuMemberSettleExtMap, cuMemberSettleExtList);
|
||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||
// 复购订单,计算复购推荐 复购极差,复购拓展
|
||||
// 查询K值控制
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = cuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = iCuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
Map<Long, CuMemberRiskControl> riskControlMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(cuMemberRiskControlList)) {
|
||||
cuMemberRiskControlList.forEach(cuMemberRiskControl -> riskControlMap.put(cuMemberRiskControl.getPkMember(), cuMemberRiskControl));
|
||||
|
@ -279,28 +276,28 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
List<CuMemberBonusExpand> cuMemberBonusExpandList = bonusSettlePurchaseHandle.calculateRepurchaseExpandSecondBonus(riskControlMap, settleTableName,
|
||||
cuMemberSettleExtMap, bonusConfigDTO, systemConfigMap, period, weekMemberBonusMap, cuMemberBonusMap, saOrderExt, cuMemberSettleExtList, settleDate, BigDecimal.ZERO, BigDecimal.ZERO, 0);
|
||||
// c)增加奖衔记录表
|
||||
Map<String, BdAwards> awardsMap = awardsServiceApi.getAwards().getData();
|
||||
Map<String, BdAwards> awardsMap = iAwardsServiceApi.getAwards().getData();
|
||||
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettlePurchaseHandle.calculateRepurchaseRangeBonus(cuMemberSettleExtMap, settleTableName, settleDate, rangeDtoMap, awardsMap,
|
||||
bonusConfigDTO, Collections.singletonList(saOrderExt), period, cuMemberBonusMap, cuAwardsControlMap, new LeXueRangeParam());
|
||||
if (cuMemberBonusMap.size() > 0) {
|
||||
saveCuMemberBonus(period, settleDate, cuMemberBonusMap);
|
||||
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||
cuMemberBonusPushList.forEach(cuMemberBonusPush ->
|
||||
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
|
||||
cuMemberBonusPushService.batchInsertCuMemberBonusPush(cuMemberBonusPushList, memberIdSet);
|
||||
iCuMemberBonusPushService.batchInsertCuMemberBonusPush(cuMemberBonusPushList, memberIdSet);
|
||||
cuMemberBonusExpandList.forEach(cuMemberBonusExpand ->
|
||||
cuMemberBonusExpand.setPkBonus(cuMemberBonusMap.get(cuMemberBonusExpand.getPkBonus()).getPkId()));
|
||||
cuMemberBonusExpandService.batchInsertCuMemberBonusExpand(cuMemberBonusExpandList, memberIdSet);
|
||||
iCuMemberBonusExpandService.batchInsertCuMemberBonusExpand(cuMemberBonusExpandList, memberIdSet);
|
||||
cuMemberBonusRangeList.forEach(cuMemberBonusRange ->
|
||||
cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId()));
|
||||
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
||||
iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
||||
}
|
||||
log.info("复购奖金计算完毕");
|
||||
}
|
||||
// 更新网体结构
|
||||
if (cuMemberSettleExtMap.size() > 0) {
|
||||
// 处理网体,更新网体新增 轮次最小值 cuMemberSettleExtMap
|
||||
cuMemberTreeService.updateCuMemberSecond(secondTableName, cuMemberSettleExtMap);
|
||||
iCuMemberTreeService.updateCuMemberSecond(secondTableName, cuMemberSettleExtMap);
|
||||
}
|
||||
// 1获取业绩,做一张新表,计算过奖金的放进去 2当天没有计算过奖金的,直接根据昨天日表获取业绩放进去进行计算
|
||||
// 根据网体数据计算奖金
|
||||
|
@ -311,7 +308,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
memberList.add(saOrderExt.getPkMember());
|
||||
long pkParent = saOrderExt.getPkReference();
|
||||
while (true) {
|
||||
CuMember cuMember = cuMemberService.getMember(pkParent);
|
||||
CuMember cuMember = iCuMemberService.getMember(pkParent);
|
||||
if (cuMember == null) {
|
||||
break;
|
||||
}
|
||||
|
@ -319,7 +316,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
pkParent = cuMember.getPkParent();
|
||||
}
|
||||
// 初始化需要秒接结算的数据
|
||||
cuMemberTreeService.updateCuMemberSecondPlaceParent(secondTableName, settleTableName, yesSettleTableName, saOrderExt.getPkMember(), memberList, EYesNo.YES.getIntValue());
|
||||
iCuMemberTreeService.updateCuMemberSecondPlaceParent(secondTableName, settleTableName, yesSettleTableName, saOrderExt.getPkMember(), memberList, EYesNo.YES.getIntValue());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -334,8 +331,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 保存奖金
|
||||
List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
|
||||
// 插入奖金主表
|
||||
cuMemberBonusService.insertOrUpdateCuMemberBonus(cuMemberBonusList);
|
||||
List<CuMemberBonus> cuMemberBonuses = cuMemberBonusService.queryCuMemberBonus(period, cuMemberBonusList);
|
||||
iCuMemberBonusService.insertOrUpdateCuMemberBonus(cuMemberBonusList);
|
||||
List<CuMemberBonus> cuMemberBonuses = iCuMemberBonusService.queryCuMemberBonus(period, cuMemberBonusList);
|
||||
cuMemberBonuses.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
|
||||
}
|
||||
|
||||
|
@ -349,29 +346,29 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
|
||||
try {
|
||||
// 期间
|
||||
Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
// 会员结算日表(cu_member_settle) + 期间
|
||||
String currentSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
||||
String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate);
|
||||
// 昨日期间
|
||||
Integer yesterdayPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
// 查询日期-1的网体数据,从日历史表中获得
|
||||
// 将结算日昨日业绩数据 迁移到 网体业绩历史记录结算表
|
||||
String yesterdayTableName = TableNameConstants.CU_MEMBER_SETTLE + yesterdayPeriod;
|
||||
validateSettleTable(yesterday, yesterdayTableName);
|
||||
Map<String, BdAwards> awardsMap = awardsServiceApi.getAwards().getData();
|
||||
cuMemberTreeService.initCuMemberTreeTable(yesterdayTableName, currentSettleTableName);
|
||||
Map<String, BdAwards> awardsMap = iAwardsServiceApi.getAwards().getData();
|
||||
iCuMemberTreeService.initCuMemberTreeTable(yesterdayTableName, currentSettleTableName);
|
||||
|
||||
// 查看是否有特殊业务,有特殊业务的处理,特殊业务,注水处理
|
||||
List<CuMemberAchieveLog> cuMemberAchieveLogList = cuMemberAchieveLogService.queryMemberAchieveLogByPeriod(period);
|
||||
List<CuMemberAchieveLog> cuMemberAchieveLogList = iCuMemberAchieveLogService.queryMemberAchieveLogByPeriod(period);
|
||||
// 有特殊业务
|
||||
if (cuMemberAchieveLogList.size() > 0) {
|
||||
cuMemberAchieveLogList.forEach(cuMemberAchieveLog -> cuMemberAchieveService.updateCuMemberSettleAchieveBySpecialBus(currentSettleTableName, period, cuMemberAchieveLog.getPkId()));
|
||||
cuMemberAchieveLogList.forEach(cuMemberAchieveLog -> iCuMemberAchieveService.updateCuMemberSettleAchieveBySpecialBus(currentSettleTableName, period, cuMemberAchieveLog.getPkId()));
|
||||
}
|
||||
// 注水到期回退
|
||||
cuMemberAchieveService.mergeCuMemberSettleByAchieveLogByDate(currentSettleTableName, DateUtils.parseStringToDate(settleDate));
|
||||
iCuMemberAchieveService.mergeCuMemberSettleByAchieveLogByDate(currentSettleTableName, DateUtils.parseStringToDate(settleDate));
|
||||
// 判断特殊业务是否有到期日期,有到期的需要使用真实业绩,昨天的期间真实更新当前的
|
||||
cuMemberAchieveService.updateCuMemberSettleAchieveByDueDate(currentSettleTableName, yesterdayTableName, DateUtils.parseStringToDate(settleDate));
|
||||
iCuMemberAchieveService.updateCuMemberSettleAchieveByDueDate(currentSettleTableName, yesterdayTableName, DateUtils.parseStringToDate(settleDate));
|
||||
|
||||
// 根据日期开始计算网体 + 业绩
|
||||
//********************* 更新网体*************/
|
||||
|
@ -413,10 +410,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
packageSaOrderListByType(firPurchaseOrderList, repurchaseOrderList, mallOrderList, saOrderExt);
|
||||
});
|
||||
// 将删除的订单的点位变为死点
|
||||
cuMemberTreeService.updateCuMemberTreeByCancelOrder(revokeRegSaOrderList, revokeUpdSaOrderList, settleDate, currentSettleTableName);
|
||||
iCuMemberTreeService.updateCuMemberTreeByCancelOrder(revokeRegSaOrderList, revokeUpdSaOrderList, settleDate, currentSettleTableName);
|
||||
//********************************* 更新当天最新的业绩*************************/
|
||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
|
||||
//*********************************计算奖衔 更新奖衔*********************************/
|
||||
// 开始计算奖衔 计算奖衔 更新奖衔(根据最新业绩查询变动且业绩满足下一等级,根据等级判断是否满足考核,安置考核或血缘考核)
|
||||
|
@ -424,15 +421,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 获取到奖衔配置
|
||||
// a)更新会员表
|
||||
// b)更新结算网体表 (月表、日表)
|
||||
|
||||
// c)增加奖衔记录表
|
||||
Map<Long, MemberAchieveParam> cuMemberAchieveHashMap = new HashMap<>();
|
||||
bonusSettlePurchaseHandle.assortSaOrder(cuMemberAchieveHashMap, firPurchaseOrderList, bonusConfigDTO, Boolean.TRUE);
|
||||
bonusSettlePurchaseHandle.assortSaOrder(cuMemberAchieveHashMap, repurchaseOrderList, bonusConfigDTO, Boolean.FALSE);
|
||||
cuMemberTreeService.updateCuMemberSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
// c)增加奖衔记录表
|
||||
cuMemberAwardsService.calculateCuMemberAwards(settleDate, awardsMap, currentSettleTableName);
|
||||
// 计算完奖衔回退业绩,最终根据新增进行回写
|
||||
cuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
// 金额、业绩先上传,处理完奖衔会再退回去
|
||||
iCuMemberTreeService.updateCuMemberSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
// 实际处理数据方法
|
||||
iCuMemberAwardsService.calculateCuMemberAwards(settleDate, awardsMap, currentSettleTableName);
|
||||
// 计算完奖衔回退金额、业绩,最终根据新增进行回写
|
||||
iCuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
|
||||
//********************************重新考核*********************************/
|
||||
// TODO new 乐学没有分红、复购考核,这个位置需要去掉
|
||||
|
@ -489,36 +487,36 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// // 环球积分和车奖积分的规则。有荣衔,复购考核通过的10代不压缩,以推荐+拓展+领导+分红为合计基数,获取对应比例,比例根据参数配置
|
||||
// calculateGlobalCarBonus(cuMemberSettleExtMap, currentSettleTableName, settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
|
||||
|
||||
// 保存当日计算的奖金
|
||||
// 保存当日计算的奖金等
|
||||
insertCuMemberBonus(settleDate, period, cuMemberBonusMap, recordDetailVO);
|
||||
// 处理血缘业绩,统计伞下直推
|
||||
bonusSettleFirstPurchaseHandle.calculateCuMemberBloodAchieveByOrder(currentSettleTableName, cuMemberSettleExtMap,
|
||||
firPurchaseOrderList, repurchaseOrderList, mallOrderList);
|
||||
if (cuMemberSettleExtMap.size() > 0) {
|
||||
// 处理网体,更新网体新增 轮次最小值 cuMemberSettleExtMap
|
||||
cuMemberTreeService.updateCuMemberSettle(currentSettleTableName, cuMemberSettleExtMap);
|
||||
iCuMemberTreeService.updateCuMemberSettle(currentSettleTableName, cuMemberSettleExtMap);
|
||||
}
|
||||
|
||||
// 每日进行甩网业绩,按照条件,降结算好的业绩甩到想应的会员那边
|
||||
List<CuMemberAchieveExt> retMemberAchieveExtList = execNetAchieve(period, settleDate, currentSettleTableName);
|
||||
// 处理甩网数据
|
||||
if (retMemberAchieveExtList.size() > 0) {
|
||||
cuMemberSwingNetLogService.mergeCuMemberSwingNetLogByAchieve(retMemberAchieveExtList, currentSettleTableName);
|
||||
iCuMemberSwingNetLogService.mergeCuMemberSwingNetLogByAchieve(retMemberAchieveExtList, currentSettleTableName);
|
||||
}
|
||||
|
||||
// 迁移网体数据到月表
|
||||
cuMemberTreeService.insertCuMemberTreeBySettleDate(settleDate, currentSettleTableName, period);
|
||||
// 迁移网体数据到月表(会员网体月表、会员业绩月表)
|
||||
iCuMemberTreeService.insertCuMemberTreeBySettleDate(settleDate, currentSettleTableName, period);
|
||||
|
||||
// TODO new 之前月奖衔的数据处理
|
||||
// // 上月最后一天
|
||||
// Integer beforeMonthPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
|
||||
// Integer beforeMonthPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
|
||||
// DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeMonthLastDate(DateUtils.parseStringToDate(settleDate)))
|
||||
// ).getPkId();
|
||||
// // 当月第一天
|
||||
// Integer currentMonthFirstPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
|
||||
// Integer currentMonthFirstPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
|
||||
// DateUtils.currentMonthFirstDateStr(DateUtils.parseStringToDate(settleDate))
|
||||
// ).getPkId();
|
||||
// cuMemberAwardsService.calculateCuMemberAwardsEveryMonth(currentMonthFirstPeriod, yesterdayPeriod, period, settleDate, beforeMonthPeriod, awardsMap);
|
||||
// iCuMemberAwardsService.calculateCuMemberAwardsEveryMonth(currentMonthFirstPeriod, yesterdayPeriod, period, settleDate, beforeMonthPeriod, awardsMap);
|
||||
|
||||
// 计算完当日奖金后,根据业绩计算下月奖衔
|
||||
Date currentDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.parseStringToDate(settleDate));
|
||||
|
@ -529,34 +527,34 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// // 月第一天日期
|
||||
// String monthFirstDate = DateUtils.currentMonthFirstDateStr(DateUtils.parseStringToDate(settleDate));
|
||||
// // 月第一天期数
|
||||
// Integer startPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(monthFirstDate).getPkId();
|
||||
// Integer startPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(monthFirstDate).getPkId();
|
||||
// // 更新奖衔,根据新结算的奖衔
|
||||
// cuMemberTreeService.updateCuMemberAwardsBySettle(currentSettleTableName, rangeTableName, startPeriod, period);
|
||||
// iCuMemberTreeService.updateCuMemberAwardsBySettle(currentSettleTableName, rangeTableName, startPeriod, period);
|
||||
|
||||
// TODO new 现在没有月考核,是不是可以去掉?
|
||||
// 结算每月月末那一天,都是先删除,在新增,重新考核
|
||||
cuMemberTreeService.initCuMemberAssessData(settleDate);
|
||||
iCuMemberTreeService.initCuMemberAssessData(settleDate);
|
||||
// 更新奖衔考核结果
|
||||
cuMemberAwardsService.updateCuMemberAwardsExamine(currentDate, period);
|
||||
iCuMemberAwardsService.updateCuMemberAwardsExamine(currentDate, period);
|
||||
|
||||
// 生成月表(cu_member_month)
|
||||
String monthTableName = TableNameConstants.CU_MEMBER_MONTH + DateUtils.getMonth(afterDate);
|
||||
Integer number = cuMemberTreeService.queryExistOracleTable(monthTableName);
|
||||
Integer number = iCuMemberTreeService.queryExistOracleTable(monthTableName);
|
||||
if (number == null || number <= 0) {
|
||||
// 创建表
|
||||
cuMemberAchieveService.createCuMemberMonthTable(monthTableName);
|
||||
cuMemberTreeService.createCuMemberTreeDayOnlyIndex(monthTableName);
|
||||
cuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
|
||||
cuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
|
||||
iCuMemberAchieveService.createCuMemberMonthTable(monthTableName);
|
||||
iCuMemberTreeService.createCuMemberTreeDayOnlyIndex(monthTableName);
|
||||
iCuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
|
||||
iCuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
|
||||
}
|
||||
}
|
||||
// 应该是给4-N配置使用的
|
||||
bonusExpandService.updateCuBonusExpandRatio(BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(settleDate)).build(), "cu_member_bonus");
|
||||
// 奖金计算结束,统计拨比、业绩、4-N拨比
|
||||
iCuBonusExpandService.updateCuBonusExpandRatio(BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(settleDate)).build(), "cu_member_bonus");
|
||||
|
||||
if (leXueRangeParam != null) {
|
||||
// 乐学相关,处理提货数据
|
||||
if (CollectionUtil.isNotEmpty(leXueRangeParam.getAcPickExtList())) {
|
||||
if (!acPickServiceApi.updatePickUse(leXueRangeParam.getAcPickExtList(), leXueRangeParam.getAcPickMemberLogList()).getData()) {
|
||||
if (!iAcPickServiceApi.updatePickUse(leXueRangeParam.getAcPickExtList(), leXueRangeParam.getAcPickMemberLogList()).getData()) {
|
||||
throw new RuntimeException("更新提货专区数量失败");
|
||||
}
|
||||
}
|
||||
|
@ -571,15 +569,15 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public void calculateCuMemberRangAwardsBySaOrder(String orderCode) {
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
SaOrderExt saOrderExt = saOrderServiceApi.querySaOrderByDay(DateUtils.currentDate(), DateUtils.afterDate(1, ChronoUnit.DAYS), orderCode).getData();
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
SaOrderExt saOrderExt = iSaOrderServiceApi.querySaOrderByDay(DateUtils.currentDate(), DateUtils.afterDate(1, ChronoUnit.DAYS), orderCode).getData();
|
||||
if (saOrderExt != null) {
|
||||
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
||||
String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, saOrderExt.getPayTime()));
|
||||
int currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
int beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
||||
List<BdRangeAwards> rangeAwardsList = awardsServiceApi.queryRangeAwards().getData();
|
||||
int currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
int beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
||||
List<BdRangeAwards> rangeAwardsList = iAwardsServiceApi.queryRangeAwards().getData();
|
||||
String secondRangeTableName = TableNameConstants.CU_MEMBER_RANGE_S + currentPeriod;
|
||||
Map<Long, CuMemberRangeExt> memberRangeExtMap = bonusSettleRangeHandle.calculateCuMemberRangeAwardsByDay(saOrderExt, rangeAwardsList, secondRangeTableName, beforePeriod, currentPeriod);
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||
|
@ -591,33 +589,33 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
cuMemberBonusCoachList.add(cuMemberBonusCoach);
|
||||
}
|
||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>(bonusSettleRangeHandle.calculateRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, currentPeriod, saOrderExt, rangeAwardsList, cuMemberBonusDetailList));
|
||||
List<BdWaresBonusExt> bdWaresBonusExtList = bdWaresBonusService.querySpecialWaresBonus(new BdWaresBonusParam());
|
||||
List<BdWaresBonusExt> bdWaresBonusExtList = iBdWaresBonusService.querySpecialWaresBonus(new BdWaresBonusParam());
|
||||
bonusSettleRangeHandle.calculateRangeEvBonus(cuMemberBonusMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusPushList, bdWaresBonusExtList, saOrderExt);
|
||||
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
|
||||
if (cuMemberBonusPushList.size() > 0) {
|
||||
for (CuMemberBonusPush cuMemberBonusPush : cuMemberBonusPushList) {
|
||||
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId());
|
||||
cuMemberBonusPushService.insertCuMemberBonusPush(cuMemberBonusPush);
|
||||
iCuMemberBonusPushService.insertCuMemberBonusPush(cuMemberBonusPush);
|
||||
}
|
||||
}
|
||||
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(currentPeriod);
|
||||
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(currentPeriod);
|
||||
if (cuMemberBonusCoachList.size() > 0) {
|
||||
cuMemberBonusCoachList.forEach(cuMemberBonusCoach1 ->
|
||||
cuMemberBonusCoach1.setPkBonus(cuMemberBonusMap.get(cuMemberBonusCoach1.getPkBonus()).getPkId()));
|
||||
cuMemberBonusCoachService.batchInsertCuMemberBonusCoach(cuMemberBonusCoachList, memberIdSet);
|
||||
iCuMemberBonusCoachService.batchInsertCuMemberBonusCoach(cuMemberBonusCoachList, memberIdSet);
|
||||
}
|
||||
if (cuMemberBonusRangeList.size() > 0) {
|
||||
cuMemberBonusRangeList.forEach(cuMemberBonusRange ->
|
||||
cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId()));
|
||||
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
||||
iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
||||
}
|
||||
if (cuMemberBonusDetailList.size() > 0) {
|
||||
cuMemberBonusDetailList.forEach(bonusDetail ->
|
||||
bonusDetail.setPkBonus(cuMemberBonusMap.get(bonusDetail.getPkBonus()).getPkId()));
|
||||
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
||||
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
||||
}
|
||||
if (memberRangeExtMap.size() > 0) {
|
||||
cuMemberRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap);
|
||||
iCuMemberRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -625,27 +623,27 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void repeatCuMemberBonusByExpand(String settleDate, List<SaOrderExt> saOrderExtList) {
|
||||
Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
String currentSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
||||
String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate);
|
||||
Integer yesterdayPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
String yesterdayTableName = TableNameConstants.CU_MEMBER_SETTLE + yesterdayPeriod;
|
||||
cuMemberTreeService.initCuMemberExpandTreeTable(yesterdayTableName, currentSettleTableName);
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
iCuMemberTreeService.initCuMemberExpandTreeTable(yesterdayTableName, currentSettleTableName);
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap = new HashMap<>();
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>();
|
||||
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||
Map<String, String> systemConfigMap = systemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
|
||||
Map<String, BdAwards> awardsMap = awardsServiceApi.getAwards().getData();
|
||||
Map<String, BdAwards> awardsMap = iAwardsServiceApi.getAwards().getData();
|
||||
// 首购订单
|
||||
List<SaOrderExt> firPurchaseOrderList = new ArrayList<>();
|
||||
saOrderExtList.forEach(saOrderExt ->
|
||||
packageSaOrderListByType(firPurchaseOrderList, null, null, saOrderExt));
|
||||
|
||||
// 查询K值控制
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = cuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = iCuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
Map<Long, CuMemberRiskControl> riskControlMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(cuMemberRiskControlList)) {
|
||||
cuMemberRiskControlList.forEach(cuMemberRiskControl -> riskControlMap.put(cuMemberRiskControl.getPkMember(), cuMemberRiskControl));
|
||||
|
@ -653,7 +651,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 查询所有的4-n碰次
|
||||
BonusExpandParam bonusExpandParam = BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(settleDate)).build();
|
||||
Map<Long, CuBonusExpandExt> cuBonusExpandExtMap = new HashMap<>();
|
||||
List<CuBonusExpandExt> cuBonusExpandExtList = bonusExpandService.queryBonusExpand(bonusExpandParam);
|
||||
List<CuBonusExpandExt> cuBonusExpandExtList = iCuBonusExpandService.queryBonusExpand(bonusExpandParam);
|
||||
cuBonusExpandExtList.forEach(cuBonusExpandExt -> cuBonusExpandExtMap.put(cuBonusExpandExt.getPkMember(), cuBonusExpandExt));
|
||||
if (firPurchaseOrderList.size() > 0) {
|
||||
calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO,
|
||||
|
@ -664,11 +662,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
cuMemberBonusList.add(BeanUtil.copyProperties(cuMemberBonus, CuMemberRepeatBonus.class));
|
||||
}
|
||||
if (cuMemberBonusList.size() > 0) {
|
||||
cuMemberRepeatBonusService.insertCuMemberRepeatBonus(cuMemberBonusList);
|
||||
iCuMemberRepeatBonusService.insertCuMemberRepeatBonus(cuMemberBonusList);
|
||||
}
|
||||
if (cuMemberSettleExtMap.size() > 0) {
|
||||
// 处理网体,更新网体新增 轮次最小值 cuMemberSettleExtMap
|
||||
cuMemberTreeService.updateCuMemberExpandSettle(currentSettleTableName, cuMemberSettleExtMap);
|
||||
iCuMemberTreeService.updateCuMemberExpandSettle(currentSettleTableName, cuMemberSettleExtMap);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -679,11 +677,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
* @param: null null
|
||||
**/
|
||||
private List<CuMemberAchieveExt> execNetAchieve(Integer period, String settleDate, String currentSettleTableName) {
|
||||
List<CuMemberSwingNetExt> memberSwingNetExtList = memberServiceApi.queryCuMemberSwingNetExt().getData();
|
||||
List<CuMemberSwingNetExt> memberSwingNetExtList = iMemberServiceApi.queryCuMemberSwingNetExt().getData();
|
||||
List<CuMemberAchieveExt> retMemberAchieveExtList = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(memberSwingNetExtList)) {
|
||||
// 查询接入会员的月业绩
|
||||
List<CuMemberAchieveExt> cuMemberAchieveExtList = cuMemberAchieveService.queryCuMemberMonthAchieveByMemberIdList(currentSettleTableName, memberSwingNetExtList);
|
||||
List<CuMemberAchieveExt> cuMemberAchieveExtList = iCuMemberAchieveService.queryCuMemberMonthAchieveByMemberIdList(currentSettleTableName, memberSwingNetExtList);
|
||||
Map<Long, CuMemberAchieveExt> memberAchieveExtMap = new HashMap<>();
|
||||
cuMemberAchieveExtList.forEach(cuMemberAchieveExt ->
|
||||
memberAchieveExtMap.put(cuMemberAchieveExt.getPkMember(), cuMemberAchieveExt));
|
||||
|
@ -750,16 +748,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
if (cuMemberAchieveExtMap.size() > 0) {
|
||||
// 更新业绩
|
||||
List<CuMemberAchieveExt> updMemberAchieveExtList = new ArrayList<>(cuMemberAchieveExtMap.values());
|
||||
cuMemberTreeService.updateCuMemberNetAchieve(updMemberAchieveExtList, currentSettleTableName);
|
||||
iCuMemberTreeService.updateCuMemberNetAchieve(updMemberAchieveExtList, currentSettleTableName);
|
||||
}
|
||||
}
|
||||
return retMemberAchieveExtList;
|
||||
}
|
||||
|
||||
private void validateSettleTable(String yesterday, String yesterdayTableName) {
|
||||
Integer number = cuMemberTreeService.queryExistOracleTable(yesterdayTableName);
|
||||
Integer number = iCuMemberTreeService.queryExistOracleTable(yesterdayTableName);
|
||||
if (number == null || number <= 0) {
|
||||
cuMemberTreeService.createCuMemberTree(yesterday);
|
||||
iCuMemberTreeService.createCuMemberTree(yesterday);
|
||||
yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, yesterday);
|
||||
validateSettleTable(yesterday, yesterdayTableName);
|
||||
}
|
||||
|
@ -783,11 +781,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
LeXueRangeParam leXueRangeParam = null;
|
||||
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||
Map<String, String> systemConfigMap = systemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, RangeDTO> rangeDtoMap = rangeServiceApi.queryRangeDto().getData();
|
||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, RangeDTO> rangeDtoMap = iRangeServiceApi.queryRangeDto().getData();
|
||||
|
||||
// 查询K值控制
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = cuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
List<CuMemberRiskControl> cuMemberRiskControlList = iCuMemberRiskControlService.queryCuMemberRiskControl(DateUtils.parseStringToDate(settleDate));
|
||||
Map<Long, CuMemberRiskControl> riskControlMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(cuMemberRiskControlList)) {
|
||||
cuMemberRiskControlList.forEach(cuMemberRiskControl -> riskControlMap.put(cuMemberRiskControl.getPkMember(), cuMemberRiskControl));
|
||||
|
@ -795,7 +793,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 查询所有的4-n碰次
|
||||
BonusExpandParam bonusExpandParam = BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(settleDate)).build();
|
||||
Map<Long, CuBonusExpandExt> cuBonusExpandExtMap = new HashMap<>();
|
||||
List<CuBonusExpandExt> cuBonusExpandExtList = bonusExpandService.queryBonusExpand(bonusExpandParam);
|
||||
List<CuBonusExpandExt> cuBonusExpandExtList = iCuBonusExpandService.queryBonusExpand(bonusExpandParam);
|
||||
cuBonusExpandExtList.forEach(cuBonusExpandExt -> cuBonusExpandExtMap.put(cuBonusExpandExt.getPkMember(), cuBonusExpandExt));
|
||||
|
||||
// 先计算复购在计算首购
|
||||
|
@ -819,14 +817,14 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
private Map<Long, CuMemberBonus> getWeekMemberBonusMap(String settleDate, Integer period) {
|
||||
// 根据结算日期获取周期的期间,用于海外
|
||||
String recentlyMonday = DateUtils.getRecentlyTuesday(settleDate);
|
||||
CuMemberSettlePeriod startMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(recentlyMonday);
|
||||
CuMemberSettlePeriod startMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(recentlyMonday);
|
||||
// 查询封顶周期是周的国家的所有人的拓展收益、复购拓展收益
|
||||
return cuMemberBonusService.queryWeekMemberBonus(startMemberSettlePeriod.getPkId(), period);
|
||||
return iCuMemberBonusService.queryWeekMemberBonus(startMemberSettlePeriod.getPkId(), period);
|
||||
}
|
||||
|
||||
private Map<Long, CuAwardsControl> getCuAwardsControlMap() {
|
||||
// 查询真实奖衔控制
|
||||
List<CuAwardsControl> cuAwardsControls = cuAwardsControlService.queryAllCuAwardsControl();
|
||||
List<CuAwardsControl> cuAwardsControls = iCuAwardsControlService.queryAllCuAwardsControl();
|
||||
Map<Long, CuAwardsControl> cuAwardsControlMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuAwardsControls.size()));
|
||||
if (CollectionUtil.isNotEmpty(cuAwardsControls)) {
|
||||
cuAwardsControls.forEach(cuAwardsControl ->
|
||||
|
@ -845,12 +843,18 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
* @Date: 2022/12/13 11:52
|
||||
*/
|
||||
void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
|
||||
cuMemberBonusPushService.deleteCuMemberBonusPush(period);
|
||||
cuMemberBonusExpandService.deleteCuMemberBonusExpand(period);
|
||||
cuMemberBonusCoachService.deleteCuMemberBonusCoach(period);
|
||||
cuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
|
||||
cuMemberBonusRangeService.deleteCuMemberBonusRange(period);
|
||||
cuMemberBonusService.deleteCuMemberBonus(period);
|
||||
// 删除 直推收益明细表
|
||||
iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
|
||||
// 删除 拓展收益明细表
|
||||
iCuMemberBonusExpandService.deleteCuMemberBonusExpand(period);
|
||||
// 删除 辅导收益明细表
|
||||
iCuMemberBonusCoachService.deleteCuMemberBonusCoach(period);
|
||||
// 删除 奖金收益明细表(报单费)
|
||||
iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
|
||||
// 删除 奖金收益明细表(复购极差)
|
||||
iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
|
||||
// 删除 会员奖金汇总表
|
||||
iCuMemberBonusService.deleteCuMemberBonus(period);
|
||||
if (cuMemberBonusMap.size() == 0) {
|
||||
return;
|
||||
}
|
||||
|
@ -891,17 +895,17 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
batchMemberBonusRangeList.addAll(cuMemberBonusRangeList);
|
||||
}
|
||||
// 插入奖金主表
|
||||
cuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
|
||||
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||
cuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
|
||||
cuMemberBonusExpandService.batchInsertCuMemberBonusExpand(batchMemberBonusExpandList, memberIdSet);
|
||||
cuMemberBonusCoachService.batchInsertCuMemberBonusCoach(batchMemberBonusCoachList, memberIdSet);
|
||||
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
|
||||
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
|
||||
iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
|
||||
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||
iCuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
|
||||
iCuMemberBonusExpandService.batchInsertCuMemberBonusExpand(batchMemberBonusExpandList, memberIdSet);
|
||||
iCuMemberBonusCoachService.batchInsertCuMemberBonusCoach(batchMemberBonusCoachList, memberIdSet);
|
||||
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
|
||||
iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
|
||||
}
|
||||
|
||||
private List<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||
List<Long> pkIdList = cuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
|
||||
List<Long> pkIdList = iCuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
|
||||
int i = 0;
|
||||
// 判断时间,重算的时候直接是已公布
|
||||
Integer grantStatus = EGrantStatus.SETTLED.getValue();
|
||||
|
|
|
@ -55,20 +55,20 @@ import java.util.stream.Collectors;
|
|||
public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, CuMemberBonus> implements ICuMemberBonusService {
|
||||
|
||||
@DubboReference
|
||||
ISystemConfigServiceApi systemConfigServiceApi;
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
@DubboReference
|
||||
ISaOrderServiceApi saOrderServiceApi;
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
@DubboReference
|
||||
IBonusItemsServiceApi bonusItemsServiceApi;
|
||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||
|
||||
@Autowired
|
||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||
@Autowired
|
||||
private ICuMemberTreeService cuMemberTreeService;
|
||||
private ICuMemberTreeService iCuMemberTreeService;
|
||||
@Autowired
|
||||
private IBonusSettleService bonusSettleService;
|
||||
private IBonusSettleService iBonusSettleService;
|
||||
|
||||
private CuMemberBonusDetailMapper cuMemberBonusDetailMapper;
|
||||
|
||||
|
@ -112,7 +112,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// 周结的话不能查询当前周的数据,只能查询上周的数据
|
||||
bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
|
||||
|
@ -181,7 +181,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
// if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// // 周结的话不能查询当前周的数据,只能查询上周的数据
|
||||
// bonusParam.setStartDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getStartDate())));
|
||||
|
@ -195,7 +195,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
bonusParam.setGrantStatus(EGrantStatus.PUBLISHED.getValue());
|
||||
}
|
||||
List<CuMemberBonusExt> cuMemberBonusExtList = baseMapper.queryMemberBonusByCondition(bonusParam);
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(bonusParam.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry());
|
||||
// 汇率比例
|
||||
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
|
||||
for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
|
||||
|
@ -290,7 +290,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberBonusTotalByCondition(BonusParam bonusParam) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// 周结的话不能查询当前周
|
||||
bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
|
||||
|
@ -366,7 +366,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
TableDataInfo dataTable;
|
||||
Integer bonusItemsValue = 0;
|
||||
if (bonusParam.getPkBonusItems() != null) {
|
||||
BdBonusItems bonusItems = bonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
BdBonusItems bonusItems = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
bonusItemsValue = bonusItems.getBonusValue();
|
||||
}
|
||||
if (null == bonusParam.getPkBonusItems()) {
|
||||
|
@ -435,7 +435,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
});
|
||||
}
|
||||
Map<Integer, BdBonusItemsExt> bonusItemsMap = convertBonusItems(bonusParam);
|
||||
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(bonusParam.getPkCountry()).getData();
|
||||
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry()).getData();
|
||||
memberBonusDetailVOList.forEach(memberBonusDetailVO -> {
|
||||
if (bonusItemsMap.containsKey(memberBonusDetailVO.getPkBonusItems())) {
|
||||
memberBonusDetailVO.setBonusName(bonusItemsMap.get(memberBonusDetailVO.getPkBonusItems()).getBonusName());
|
||||
|
@ -453,12 +453,12 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
@Override
|
||||
public List<MemberBonusDetailVO> queryMemberMarkBonusDetailSource(BonusParam bonusParam) {
|
||||
List<MemberBonusDetailVO> memberBonusDetailVOList = new ArrayList<>();
|
||||
BdBonusItems bonusItems = bonusItemsServiceApi.queryBonusItemsByBonusValue(bonusParam.getPkCountry(), bonusParam.getBonusValue()).getData();
|
||||
BdBonusItems bonusItems = iBonusItemsServiceApi.queryBonusItemsByBonusValue(bonusParam.getPkCountry(), bonusParam.getBonusValue()).getData();
|
||||
bonusParam.setPkBonusItems(bonusItems.getPkId());
|
||||
// 其他收益 服务补贴、分红收益、嗨粉直推
|
||||
// 拓展收益、复购拓展收益
|
||||
List<CuMemberBonusDetailExt> cuMemberBonusDetailList = cuMemberBonusDetailMapper.queryMemberBonusDetailByBonusItems(bonusParam);
|
||||
CurrencyDTO currency = currencyServiceApi.getCurrency(bonusParam.getPkCountry()).getData();
|
||||
CurrencyDTO currency = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry()).getData();
|
||||
cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> {
|
||||
MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusDetail, MemberBonusDetailVO.class);
|
||||
String sourceMemberCode = memberBonusDetailVO.getSourceMemberCode();
|
||||
|
@ -470,7 +470,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
}
|
||||
|
||||
private Map<Integer, BdBonusItemsExt> convertBonusItems(BonusParam bonusParam) {
|
||||
List<BdBonusItemsExt> bonusItemsExtList = bonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry()).getData();
|
||||
List<BdBonusItemsExt> bonusItemsExtList = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry()).getData();
|
||||
Map<Integer, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(bonusItemsExtList.size()));
|
||||
bonusItemsExtList.forEach(bonusItems ->
|
||||
bonusItemsMap.put(bonusItems.getPkId(), bonusItems));
|
||||
|
@ -483,7 +483,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
List<MemberBonusDetailSerVO> memberBonusDetailSerVoS = new ArrayList<>();
|
||||
Integer bonusItemsValue = 0;
|
||||
if (bonusParam.getPkBonusItems() != null) {
|
||||
BdBonusItems bonusItems = bonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
BdBonusItems bonusItems = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
bonusItemsValue = bonusItems.getBonusValue();
|
||||
}
|
||||
if (bonusParam.getEndDate() != null) {
|
||||
|
@ -641,17 +641,17 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
String settleDate = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, startDate);
|
||||
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, startDate);
|
||||
// 自动初始化表
|
||||
cuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
|
||||
iCuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
|
||||
log.info("初始化表完成");
|
||||
// 奖金结算
|
||||
List<SaOrderExt> saOrderExtList = saOrderServiceApi.listSaOrderByDay(startDate, settleEndDate, "").getData();
|
||||
bonusSettleService.calculateCuMemberBonus(settleDate, saOrderExtList);
|
||||
List<SaOrderExt> saOrderExtList = iSaOrderServiceApi.listSaOrderByDay(startDate, settleEndDate, "").getData();
|
||||
iBonusSettleService.calculateCuMemberBonus(settleDate, saOrderExtList);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void backupsSettleBonusEveryday() {
|
||||
cuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
|
||||
iCuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,9 +7,7 @@ import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员甩网业绩记录 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-03-05
|
||||
|
|
|
@ -10,9 +10,7 @@ import org.springframework.stereotype.Service;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员甩网业绩记录 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-03-05
|
||||
|
|
|
@ -844,6 +844,7 @@
|
|||
a.r_a_sum_real_pv = a.r_a_sum_real_pv - b.a_new_pv - b.rep_a_new_pv,
|
||||
a.r_b_sum_real_pv = a.r_b_sum_real_pv - b.b_new_pv - b.rep_b_new_pv
|
||||
</update>
|
||||
|
||||
<update id="updateCuMemberNetAchieve">
|
||||
merge into ${tableName} a
|
||||
using (
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
<select id="queryMemberSettlePeriod" resultMap="CuMemberSettlePeriodExt">
|
||||
<include refid="memberPeriod"></include>
|
||||
and cd.pk_country=#{pkCountry}
|
||||
and cd.pk_country = #{pkCountry}
|
||||
and cp.settle_date = #{settleDate, jdbcType=DATE}
|
||||
</select>
|
||||
|
||||
|
|
|
@ -66,7 +66,8 @@
|
|||
</resultMap>
|
||||
|
||||
<update id="updateCuMemberBonusStatus">
|
||||
update cu_member_bonus set grant_status = #{grantStatus}, pk_modified=100000000, modified_time=sysdate
|
||||
update cu_member_bonus
|
||||
set grant_status = #{grantStatus}, pk_modified = 100000000, modified_time = sysdate
|
||||
where del_flag= 0
|
||||
and grant_status = #{oldGrantStatus}
|
||||
and period between #{startPeriod} and #{endPeriod}
|
||||
|
@ -94,11 +95,14 @@
|
|||
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
|
||||
pk_country,pk_creator,grant_status,income_status from(
|
||||
<foreach item="item" index="index" collection="cuMemberBonusList" separator=" union ">
|
||||
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate,jdbcType=INTEGER} pk_rate,
|
||||
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping,
|
||||
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate,jdbcType=INTEGER}
|
||||
pk_rate,
|
||||
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping}
|
||||
expand_no_capping,
|
||||
#{item.expandCapping} expand_capping,#{item.coachIncome} coach_income,#{item.shareIncome} share_income,
|
||||
#{item.serviceIncome} service_income,#{item.backPoints} back_points,#{item.serviceSpend} service_spend,
|
||||
#{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income,#{item.repurRangeIncome} repur_range_income,
|
||||
#{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income,#{item.repurRangeIncome}
|
||||
repur_range_income,
|
||||
#{item.repurExpandIncome} repur_expand_income,#{item.repurRealSubtotal} repur_real_subtotal,
|
||||
#{item.cloudDirectIncome} cloud_direct_income,#{item.cloudPurIncome} cloud_pur_income,
|
||||
#{item.cloudRepurIncome} cloud_repur_income,#{item.cloudRealSubtotal} cloud_real_subtotal,
|
||||
|
@ -106,8 +110,10 @@
|
|||
#{item.repurCouponSubtotal} repur_coupon_subtotal,#{item.globalPoints} global_points,
|
||||
#{item.carAwardPoints} car_award_points,#{item.storeIncome} store_income,#{item.hiFunIncome} hi_fun_income,
|
||||
#{item.haiFunIncome} hai_fun_income,#{item.makerDirectIncome} maker_direct_income,
|
||||
#{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal} maker_real_subtotal,#{item.realIncomeTotal} real_income_total,
|
||||
#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,#{item.grantStatus} grant_status,#{item.incomeStatus} income_status from dual
|
||||
#{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal}
|
||||
maker_real_subtotal,#{item.realIncomeTotal} real_income_total,
|
||||
#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,#{item.grantStatus}
|
||||
grant_status,#{item.incomeStatus} income_status from dual
|
||||
</foreach>) )b
|
||||
on (cb.pk_member=b.pk_member and cb.period=b.period)
|
||||
WHEN NOT MATCHED THEN
|
||||
|
@ -128,6 +134,7 @@
|
|||
b.maker_direct_income,b.maker_share_income,b.maker_real_subtotal,b.real_income_total,
|
||||
b.pk_country,b.pk_creator,b.grant_status,b.income_status)
|
||||
</insert>
|
||||
|
||||
<insert id="insertOrUpdateCuMemberBonus">
|
||||
merge into cu_member_bonus a
|
||||
using(
|
||||
|
|
|
@ -4,49 +4,51 @@
|
|||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="CuMemberSwingNetLog" type="com.hzs.common.domain.member.swing.CuMemberSwingNetLog">
|
||||
<id column="PK_ID" property="pkId" />
|
||||
<result column="CREATION_TIME" property="creationTime" />
|
||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
||||
<result column="DEL_FLAG" property="delFlag" />
|
||||
<result column="PK_CREATOR" property="pkCreator" />
|
||||
<result column="PK_MODIFIED" property="pkModified" />
|
||||
<result column="PK_COUNTRY" property="pkCountry" />
|
||||
<result column="PK_MEMBER" property="pkMember" />
|
||||
<result column="PERIOD" property="period" />
|
||||
<result column="PLACE_DEPT" property="placeDept" />
|
||||
<result column="NET_FIRST_ACHIEVE" property="netFirstAchieve" />
|
||||
<result column="NET_REPURCHASE_ACHIEVE" property="netRepurchaseAchieve" />
|
||||
<result column="NET_REAL_ACHIEVE" property="netRealAchieve" />
|
||||
<result column="A_SUM_PV" property="aSumPv" />
|
||||
<result column="B_SUM_PV" property="bSumPv" />
|
||||
<result column="A_SUM_REAL_PV" property="aSumRealPv" />
|
||||
<result column="B_SUM_REAL_PV" property="bSumRealPv" />
|
||||
<result column="REP_A_SUM_PV" property="repASumPv" />
|
||||
<result column="REP_B_SUM_PV" property="repBSumPv" />
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_MEMBER" property="pkMember"/>
|
||||
<result column="PERIOD" property="period"/>
|
||||
<result column="PLACE_DEPT" property="placeDept"/>
|
||||
<result column="NET_FIRST_ACHIEVE" property="netFirstAchieve"/>
|
||||
<result column="NET_REPURCHASE_ACHIEVE" property="netRepurchaseAchieve"/>
|
||||
<result column="NET_REAL_ACHIEVE" property="netRealAchieve"/>
|
||||
<result column="A_SUM_PV" property="aSumPv"/>
|
||||
<result column="B_SUM_PV" property="bSumPv"/>
|
||||
<result column="A_SUM_REAL_PV" property="aSumRealPv"/>
|
||||
<result column="B_SUM_REAL_PV" property="bSumRealPv"/>
|
||||
<result column="REP_A_SUM_PV" property="repASumPv"/>
|
||||
<result column="REP_B_SUM_PV" property="repBSumPv"/>
|
||||
</resultMap>
|
||||
|
||||
<update id="mergeCuMemberSwingNetLogByAchieve">
|
||||
merge into cu_member_swing_net_log a
|
||||
using (
|
||||
select x.*,(x.net_first_achieve+x.net_repurchase_achieve) net_real_achieve,
|
||||
y.a_sum_pv,y.b_sum_pv,y.a_sum_real_pv,y.b_sum_real_pv,y.rep_a_new_pv rep_a_sum_pv,y.rep_b_new_pv rep_b_sum_pv,'100000000' pk_creator from(
|
||||
select pk_member,place_dept,period,pk_country,sum(net_first_achieve) net_first_achieve,
|
||||
sum(net_repurchase_achieve) net_repurchase_achieve from(
|
||||
select x.*,(x.net_first_achieve+x.net_repurchase_achieve) net_real_achieve,
|
||||
y.a_sum_pv,y.b_sum_pv,y.a_sum_real_pv,y.b_sum_real_pv,y.rep_a_new_pv rep_a_sum_pv,y.rep_b_new_pv
|
||||
rep_b_sum_pv,'100000000' pk_creator from(
|
||||
select pk_member,place_dept,period,pk_country,sum(net_first_achieve) net_first_achieve,
|
||||
sum(net_repurchase_achieve) net_repurchase_achieve from(
|
||||
<foreach collection="cuMemberAchieveExtList" item="item" separator=" union all">
|
||||
select
|
||||
#{item.pkMember} pk_member,#{item.placeDept} place_dept,#{item.period} period,
|
||||
#{item.netFirstAchieve} net_first_achieve,#{item.netRepurchaseAchieve} net_repurchase_achieve,
|
||||
#{item.pkCountry} pk_country from dual
|
||||
</foreach>)
|
||||
group by pk_member,place_dept,period,pk_country) x
|
||||
inner join ${settleTableName} y
|
||||
on x.pk_member=y.pk_member
|
||||
) b
|
||||
group by pk_member,place_dept,period,pk_country) x
|
||||
inner join ${settleTableName} y
|
||||
on x.pk_member=y.pk_member
|
||||
) b
|
||||
on (a.pk_member=b.pk_member and a.period=b.period and a.place_dept=b.place_dept)
|
||||
when matched then
|
||||
update set a.net_first_achieve=b.net_first_achieve,a.net_repurchase_achieve=b.net_repurchase_achieve,
|
||||
a.net_real_achieve=b.net_real_achieve,a.a_sum_pv=b.a_sum_pv,a.b_sum_pv=b.b_sum_pv,
|
||||
a.a_sum_real_pv=b.a_sum_real_pv,a.b_sum_real_pv=b.b_sum_real_pv,
|
||||
a.rep_a_sum_pv=b.rep_a_sum_pv,a.rep_b_sum_pv=b.rep_b_sum_pv,modified_time=sysdate
|
||||
update set a.net_first_achieve=b.net_first_achieve,a.net_repurchase_achieve=b.net_repurchase_achieve,
|
||||
a.net_real_achieve=b.net_real_achieve,a.a_sum_pv=b.a_sum_pv,a.b_sum_pv=b.b_sum_pv,
|
||||
a.a_sum_real_pv=b.a_sum_real_pv,a.b_sum_real_pv=b.b_sum_real_pv,
|
||||
a.rep_a_sum_pv=b.rep_a_sum_pv,a.rep_b_sum_pv=b.rep_b_sum_pv,modified_time=sysdate
|
||||
when not matched then
|
||||
insert
|
||||
(PK_ID,pk_member,period,place_dept,net_first_achieve,net_repurchase_achieve,net_real_achieve,
|
||||
|
|
Loading…
Reference in New Issue