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