diff --git a/hzs-api/hzs-api-system/src/main/java/com/hzs/system/config/IGradeServiceApi.java b/hzs-api/hzs-api-system/src/main/java/com/hzs/system/config/IGradeServiceApi.java index df4636de..9eacbf4f 100644 --- a/hzs-api/hzs-api-system/src/main/java/com/hzs/system/config/IGradeServiceApi.java +++ b/hzs-api/hzs-api-system/src/main/java/com/hzs/system/config/IGradeServiceApi.java @@ -110,4 +110,11 @@ public interface IGradeServiceApi { */ R getLastGrade(BigDecimal achieve, Integer pkCountry); + /** + * 获取所有等级 + * + * @return + */ + R> getGrade(); + } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDelayMapper.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDelayMapper.java index 8e8e783b..30db8846 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDelayMapper.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDelayMapper.java @@ -2,9 +2,12 @@ package com.hzs.bonus.bonus.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.bonus.CuMemberBonusDelay; +import com.hzs.common.domain.member.bonus.ext.CuMemberBonusDelayExt; +import com.hzs.common.domain.member.ext.CuMemberSettleExt; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * 会员奖金-拓展收益延缓表 Mapper 接口 @@ -28,4 +31,16 @@ public interface CuMemberBonusDelayMapper extends BaseMapper */ void batchInsertCuMemberBonusDelay(@Param("cuMemberBonusDelayList") List cuMemberBonusDelayList); + /** + * 查询当天没有产生过奖金,但是还有延缓发放奖金的列表 + * + * @param currentSettleTableName + * @param pkMemberSet + * @param yesterdayPeriod + * @return + */ + List listDelayNotBonus(@Param("currentSettleTableName") String currentSettleTableName, + @Param("pkMemberSet") Set pkMemberSet, + @Param("yesterdayPeriod") Integer yesterdayPeriod); + } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDelayService.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDelayService.java index 5232128e..ffd1a462 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDelayService.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDelayService.java @@ -2,6 +2,7 @@ package com.hzs.bonus.bonus.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.bonus.CuMemberBonusDelay; +import com.hzs.common.domain.member.ext.CuMemberSettleExt; import java.util.List; import java.util.Set; @@ -28,4 +29,14 @@ public interface ICuMemberBonusDelayService extends IService */ void batchInsertCuMemberBonusDelay(List cuMemberBonusDelayList, Set memberIdSet); + /** + * 查询当天没有产生过奖金,但是还有延缓发放奖金的列表 + * + * @param currentSettleTableName + * @param pkMemberSet + * @param yesterdayPeriod + * @return + */ + List listDelayNotBonus(String currentSettleTableName, Set pkMemberSet, Integer yesterdayPeriod); + } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java index 52283fb2..dfd5f0e2 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java @@ -2,7 +2,7 @@ package com.hzs.bonus.bonus.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; -import com.hzs.bonus.base.service.ICuMemberService; +import com.hzs.bonus.bonus.service.ICuMemberBonusDelayService; import com.hzs.bonus.bonus.vo.BonusRecordDetailVO; import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.msg.BonusMsgConstants; @@ -48,7 +48,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { IGradeServiceApi iGradeServiceApi; @Autowired - private ICuMemberService iCuMemberService; + private ICuMemberBonusDelayService iCuMemberBonusDelayService; /** * @param settleTableName 结算表 @@ -1221,13 +1221,14 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { * 处理拓展延缓发放 */ public void handleDelayExpand(BonusRecordDetailVO recordDetailVO, Map cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, - Map cuMemberSettleExtMap, Integer period) { - // TODO new 这处理的都是今天有收益的,还需要处理今天没有收益,但是历史还有是延缓未发放奖金的 - + Map cuMemberSettleExtMap, Integer period, Integer yesterdayPeriod, String currentSettleTableName, + Map gradeMap) { // 量奖(拓展收益)延缓发放主表量奖(拓展收益)延缓发放主表 List cuMemberBonusDelayList = new ArrayList<>(); - // 量奖(拓展收益)延缓发放列表 + // 量奖(拓展收益)延缓发放明细列表 List cuMemberBonusDelayDetailList = new ArrayList<>(); + // 已经追加拓展延缓明细的会员会员列表 + Set pkMemberSet = new HashSet<>(); Map bonusDelayDetailAddMap = recordDetailVO.getBonusDelayDetailAddMap(); if (bonusDelayDetailAddMap.size() > 0) { @@ -1242,8 +1243,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { // 发放收益 = 发放前收益 + 首购 + 复购 BigDecimal pretaxIncome = cuMemberBonusDelayAddDetail.getBeforePretaxIncome().add(cuMemberBonusDelayAddDetail.getFirPretaxIncome()).add(cuMemberBonusDelayAddDetail.getRepPretaxIncome()); - // 发放后收益 = 发放前 + 新加入的收益 - BigDecimal afterPretaxIncome = cuMemberBonusDelayAddDetail.getBeforePretaxIncome().add(pretaxIncome); + // 发放后收益 = 发放前收益 + 首购 + 复购 + BigDecimal afterPretaxIncome = pretaxIncome; // 获取计算后的值 cuMemberBonusDelayAddDetail.setAfterPretaxIncome(pretaxIncome); @@ -1253,13 +1254,12 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { // 封顶值 小于 收益,使用封顶值 pretaxIncome = cuMemberBonusDelayAddDetail.getExpandCapping(); } - // 发放后收益 = 发放前 + 新加入的收益 - 本次发放的收益 - afterPretaxIncome = afterPretaxIncome.subtract(pretaxIncome); + // 记录已经追加拓展延缓明细的会员 + pkMemberSet.add(pkMember); + // 结算会员信息 CuMemberSettleExt cuMemberSettleExt = cuMemberSettleExtMap.get(pkMember); - - // TODO new 生成一条拓展收益明细,并且添加收益奖金 - // 追加会员奖金收益 + // TODO new 追加会员奖金拓展收益 CuMemberBonus cuMemberBonus = this.getCuMemberBonus(period, cuMemberBonusMap, pkMember, cuMemberSettleExt.getIncomeStatus(), cuMemberSettleExt.getPkSettleCountry(), cuMemberSettleExt.getPkRate()); cuMemberBonus.setExpandIncome(pretaxIncome); @@ -1296,7 +1296,6 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand); // 处理实发小计、实发收益总计 setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusExpand); - // TODO new 追加的一条延缓收益生成的拓展收益明细 recordDetailVO.getCuMemberBonusExpandList().add(cuMemberBonusExpand); @@ -1308,16 +1307,17 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { .pretaxIncome(pretaxIncome) .afterPretaxIncome(cuMemberBonusDelayAddDetail.getAfterPretaxIncome().subtract(pretaxIncome)) .incomeTax(cuMemberBonusExpand.getIncomeTax()) - .repPretaxIncome(cuMemberBonusExpand.getPretaxIncome()) + .realIncome(cuMemberBonusExpand.getRealIncome()) .type(EInfusingWaterType.BANK_TRANSFER.getValue()) .pkBonus(cuMemberBonusDelayAddDetail.getPkBonus()) .expandCapping(cuMemberBonusDelayAddDetail.getExpandCapping()) .build(); cuMemberBonusDelayGrantDetail.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator()); cuMemberBonusDelayGrantDetail.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry()); - // TODO new 增加一条减少的延缓收益明细 cuMemberBonusDelayDetailList.add(cuMemberBonusDelayGrantDetail); + + afterPretaxIncome = cuMemberBonusDelayGrantDetail.getAfterPretaxIncome(); } // 添加延缓主表 @@ -1331,12 +1331,121 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { .build(); cuMemberBonusDelay.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator()); cuMemberBonusDelay.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry()); + // TODO new 增加一条延缓主表 cuMemberBonusDelayList.add(cuMemberBonusDelay); } } + + // 处理当天没有奖金的延缓发放 + this.handleNotGrantDelay(recordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap, period, yesterdayPeriod, currentSettleTableName, + gradeMap, pkMemberSet, cuMemberBonusDelayList, cuMemberBonusDelayDetailList); + recordDetailVO.setCuMemberBonusDelayList(cuMemberBonusDelayList); recordDetailVO.setCuMemberBonusDelayDetailList(cuMemberBonusDelayDetailList); } + /** + * 处理当天没有奖金的延缓发放 + */ + private void handleNotGrantDelay(BonusRecordDetailVO recordDetailVO, Map cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, + Map cuMemberSettleExtMap, Integer period, Integer yesterdayPeriod, String currentSettleTableName, + Map gradeMap, Set pkMemberSet, + List cuMemberBonusDelayList, List cuMemberBonusDelayDetailList) { + // TODO new 需要今天没有奖金产生,但是还有延缓奖金没发放的会员 + List notGrantDelayExtList = iCuMemberBonusDelayService.listDelayNotBonus(currentSettleTableName, pkMemberSet, yesterdayPeriod); + if (CollectionUtil.isNotEmpty(notGrantDelayExtList)) { + for (CuMemberSettleExt cuMemberSettleExt : notGrantDelayExtList) { + // 会员ID + Long pkMember = cuMemberSettleExt.getPkMember(); + // 拓展收益 + BigDecimal pretaxIncome = cuMemberSettleExt.getAfterGrantIncome(); + BdGrade bdGrade = gradeMap.get(cuMemberSettleExt.getPkGrade()); + // 等级封顶值 + BigDecimal expandCapping = bdGrade.getExpandCapping(); + + if (expandCapping.compareTo(pretaxIncome) < 0) { + // 封顶值 小于 收益,使用封顶值 + pretaxIncome = expandCapping; + } + + // 结算会员信息 + getMemberSettle(cuMemberSettleExtMap, cuMemberSettleExt); + + // TODO new 生成一条拓展收益明细,并且添加收益奖金 + // 追加会员奖金收益 + CuMemberBonus cuMemberBonus = this.getCuMemberBonus(period, cuMemberBonusMap, pkMember, + cuMemberSettleExt.getIncomeStatus(), cuMemberSettleExt.getPkSettleCountry(), cuMemberSettleExt.getPkRate()); + cuMemberBonus.setExpandIncome(pretaxIncome); + cuMemberBonus.setExpandNoCapping(pretaxIncome); + cuMemberBonus.setExpandCapping(expandCapping); + + // 获取拓展收益奖项 + Integer pkBonusItems = getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), EBonusItems.EXPANSION_INCOME.getValue()); + // 创建一条拓展收益明细 + CuMemberBonusExpand cuMemberBonusExpand = CuMemberBonusExpand.builder() + .pkBonus(pkMember) + .pkBonusItems(pkBonusItems) + .incomeStatus(EBonusIncomeStatus.NORMAL.getValue()) + .pkOrder(0L) + .calType(ECalType.RATIO.getValue()) + .calValue(bdGrade.getExpandRatio()) + .calAchieve(BigDecimal.ZERO) + .pretaxIncome(pretaxIncome) + .expandNoCapping(pretaxIncome) + .expandCapping(expandCapping) + .expandNormalHalf(ComputeUtil.computeMultiplyHalf(expandCapping)) + .expandNormalReal(ComputeUtil.computeMultiplyHalf(pretaxIncome)) + .remark(String.format(BonusMsgConstants.BONUS_EXPAND_DELAY, cuMemberSettleExt.getMemberCode() + cuMemberSettleExt.getMemberName())) + .currentTouch(0) + .expandTouch(0) + .addTouch(BigDecimal.ZERO) + .incomeRatio(BigDecimal.ZERO) + .incomeDialRatio(BigDecimal.ZERO) + .orderDialRatio(BigDecimal.ZERO) + .build(); + cuMemberBonusExpand.setPkCreator(MagicNumberConstants.PK_ADMIN); + cuMemberBonusExpand.setPkCountry(cuMemberSettleExt.getPkCountry()); + // 处理扣项,计算最终收益 + BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand); + // 处理实发小计、实发收益总计 + setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusExpand); + // TODO new 追加的一条延缓收益生成的拓展收益明细 + recordDetailVO.getCuMemberBonusExpandList().add(cuMemberBonusExpand); + + // 封装延缓发放减少明细 + CuMemberBonusDelayDetail cuMemberBonusDelayGrantDetail = CuMemberBonusDelayDetail.builder() + .pkMember(pkMember) + .period(period) + .beforePretaxIncome(cuMemberSettleExt.getAfterGrantIncome()) + .pretaxIncome(pretaxIncome) + .afterPretaxIncome(cuMemberSettleExt.getAfterGrantIncome().subtract(pretaxIncome)) + .incomeTax(cuMemberBonusExpand.getIncomeTax()) + .realIncome(cuMemberBonusExpand.getRealIncome()) + .type(EInfusingWaterType.BANK_TRANSFER.getValue()) + .pkBonus(pkMember) + .expandCapping(expandCapping) + .build(); + cuMemberBonusDelayGrantDetail.setPkCreator(MagicNumberConstants.PK_ADMIN); + cuMemberBonusDelayGrantDetail.setPkCountry(cuMemberSettleExt.getPkCountry()); + // TODO new 增加一条减少的延缓收益明细 + cuMemberBonusDelayDetailList.add(cuMemberBonusDelayGrantDetail); + + // 添加延缓主表 + CuMemberBonusDelay cuMemberBonusDelay = CuMemberBonusDelay.builder() + .pkMember(pkMember) + .period(period) + .beforeGrantIncome(cuMemberSettleExt.getAfterGrantIncome()) + .grantIncome(pretaxIncome) + .afterGrantIncome(cuMemberSettleExt.getAfterGrantIncome().subtract(pretaxIncome)) + .pkBonus(pkMember) + .build(); + cuMemberBonusDelay.setPkCreator(MagicNumberConstants.PK_ADMIN); + cuMemberBonusDelay.setPkCountry(cuMemberSettleExt.getPkCountry()); + // TODO new 增加一条延缓主表 + cuMemberBonusDelayList.add(cuMemberBonusDelay); + } + } + } + } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java index 53796c2d..ee0f6b5b 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java @@ -205,6 +205,79 @@ public abstract class BonusSettleHandle { return pkMemberSettleMap; } + /** + * 记录需要修改的会员结算表数据, 安置的 + * + * @param cuMemberSettleExtMap 会员结算 + * @param cuMemberSettleExt 查询出来的结算数据 + */ + protected void getMemberSettle(Map cuMemberSettleExtMap, CuMemberSettleExt cuMemberSettleExt) { + if (cuMemberSettleExtMap.containsKey(cuMemberSettleExt.getPkMember())) { + CuMemberSettleExt memberSettleExt = cuMemberSettleExtMap.get(cuMemberSettleExt.getPkMember()); + if (memberSettleExt.getPkParent() == null) { + memberSettleExt.setPkParent(cuMemberSettleExt.getPkParent()); + } + if (memberSettleExt.getPkPlaceParent() == null) { + memberSettleExt.setPkPlaceParent(cuMemberSettleExt.getPkPlaceParent()); + } + if (memberSettleExt.getPlaceDept() == null) { + memberSettleExt.setPlaceDept(cuMemberSettleExt.getPlaceDept()); + } + if (memberSettleExt.getPkGrade() == null) { + memberSettleExt.setPkGrade(cuMemberSettleExt.getPkGrade()); + } + if (memberSettleExt.getGradeValue() == null) { + memberSettleExt.setGradeValue(cuMemberSettleExt.getGradeValue()); + } + if (memberSettleExt.getPkAwards() == null) { + memberSettleExt.setPkAwards(cuMemberSettleExt.getPkAwards()); + } + if (memberSettleExt.getRegisterAuthority() == null) { + memberSettleExt.setRegisterAuthority(cuMemberSettleExt.getRegisterAuthority()); + } + if (memberSettleExt.getCustomerType() == null) { + memberSettleExt.setCustomerType(cuMemberSettleExt.getCustomerType()); + } + if (memberSettleExt.getIsMakerSpace() == null) { + memberSettleExt.setIsMakerSpace(cuMemberSettleExt.getIsMakerSpace()); + } + if (memberSettleExt.getIsMakerGift() == null) { + memberSettleExt.setIsMakerGift(cuMemberSettleExt.getIsMakerGift()); + } + if (memberSettleExt.getPkVertex() == null) { + memberSettleExt.setPkVertex(cuMemberSettleExt.getPkVertex()); + } + if (memberSettleExt.getUnGrantIncome() == null) { + memberSettleExt.setUnGrantIncome(cuMemberSettleExt.getUnGrantIncome()); + } + } else { + cuMemberSettleExt.setANewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setANewPv(BigDecimal.ZERO); + cuMemberSettleExt.setBNewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setBNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setRepANewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setRepBNewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setRepANewPv(BigDecimal.ZERO); + cuMemberSettleExt.setRepBNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setRegisterNewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setRegisterNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setUpgradeNewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setUpgradeNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setRepurchaseNewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setRepurchaseNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setHiFunNewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setHiFunNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setMallNewAmount(BigDecimal.ZERO); + cuMemberSettleExt.setMallNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setRegisterBloNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setUpgradeBloNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setRepurchaseBloNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setHiFunBloNewPv(BigDecimal.ZERO); + cuMemberSettleExt.setMallBloNewPv(BigDecimal.ZERO); + cuMemberSettleExtMap.put(cuMemberSettleExt.getPkMember(), cuMemberSettleExt); + } + } + /** * 记录需要修改的会员结算表数据, 安置的 * diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index 61b077d6..914598b2 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -45,6 +45,7 @@ import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetDetailExt; import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.system.config.BdAwards; +import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.domain.system.config.BdRangeAwards; import com.hzs.member.base.IMemberServiceApi; import com.hzs.sale.order.ISaOrderServiceApi; @@ -368,6 +369,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { iCuMemberTreeService.initCuMemberTreeTable(yesterdayTableName, currentSettleTableName); Map awardsMap = iAwardsServiceApi.getAwards().getData(); + Map gradeMap = iGradeServiceApi.getGrade().getData(); // 查看是否有特殊业务,有特殊业务的处理,特殊业务,注水处理 List cuMemberAchieveLogList = iCuMemberAchieveLogService.queryMemberAchieveLogByPeriod(period); @@ -460,7 +462,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 计算奖金(主入口) // 乐学易考奖金计算,回写代金券数量 LeXueRangeParam leXueRangeParam = calculateBonusBySaOrderList(settleDate, period, yesterdayPeriod, currentSettleTableName, - firPurchaseOrderList, repurchaseOrderList, mallOrderList, awardsMap, bonusConfigDTO, cuMemberBonusMap, + firPurchaseOrderList, repurchaseOrderList, mallOrderList, awardsMap, gradeMap, bonusConfigDTO, cuMemberBonusMap, recordDetailVO, cuMemberSettleExtMap); // 计算复购券 calculateRepurchaseCoupons(DateUtils.parseDate(settleDate), firPurchaseOrderList, period, bonusConfigDTO, cuMemberBonusMap, @@ -786,15 +788,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService { * @param period 期间 * @param yesterdayPeriod 昨日期间 * @param currentSettleTableName 结算日表 - * @param awardsMap 奖项 + * @param awardsMap 奖衔 + * @param gradeMap 等级 * @param bonusConfigDTO 奖金配置 * @param cuMemberBonusMap 最终的奖金列表 * @param cuMemberSettleExtMap 会员结算map */ private LeXueRangeParam calculateBonusBySaOrderList(String settleDate, Integer period, Integer yesterdayPeriod, String currentSettleTableName, List firPurchaseOrderList, List repurchaseOrderList, List mallOrderList, - Map awardsMap, BonusConfigDTO bonusConfigDTO, Map cuMemberBonusMap, - BonusRecordDetailVO recordDetailVO, Map cuMemberSettleExtMap) { + Map awardsMap, Map gradeMap, BonusConfigDTO bonusConfigDTO, + Map cuMemberBonusMap, BonusRecordDetailVO recordDetailVO, Map cuMemberSettleExtMap) { LeXueRangeParam leXueRangeParam = null; Map cuAwardsControlMap = getCuAwardsControlMap(); Map weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period); @@ -830,7 +833,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService { } // 处理拓展延缓发放 - bonusSettleFirstPurchaseHandle.handleDelayExpand(recordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap, period); + bonusSettleFirstPurchaseHandle.handleDelayExpand(recordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap, + period, yesterdayPeriod, currentSettleTableName, gradeMap); return leXueRangeParam; } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDelayServiceImpl.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDelayServiceImpl.java index d77fd8dd..00ad601f 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDelayServiceImpl.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDelayServiceImpl.java @@ -5,6 +5,7 @@ import com.hzs.bonus.bonus.mapper.CuMemberBonusDelayMapper; import com.hzs.bonus.bonus.service.ICuMemberBonusDelayService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.domain.member.bonus.CuMemberBonusDelay; +import com.hzs.common.domain.member.ext.CuMemberSettleExt; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -48,4 +49,9 @@ public class CuMemberBonusDelayServiceImpl extends ServiceImpl listDelayNotBonus(String currentSettleTableName, Set pkMemberSet, Integer yesterdayPeriod) { + return baseMapper.listDelayNotBonus(currentSettleTableName, pkMemberSet, yesterdayPeriod); + } + } diff --git a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayDetailMapper.xml b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayDetailMapper.xml index dee1ddad..6be37cd9 100644 --- a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayDetailMapper.xml +++ b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayDetailMapper.xml @@ -2,6 +2,7 @@ + delete from CU_MEMBER_BONUS_DELAY_DETAIL @@ -11,6 +12,7 @@ where period = #{period} and grant_status <= 2) + insert ALL diff --git a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayMapper.xml b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayMapper.xml index 7196d08b..92b733b0 100644 --- a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayMapper.xml +++ b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDelayMapper.xml @@ -2,15 +2,18 @@ + delete from CU_MEMBER_BONUS_DELAY where PK_BONUS in ( select pk_id from cu_member_bonus - where period = #{period} and grant_status <= 2) + where period = #{period} + and grant_status <= 2) + insert ALL @@ -26,4 +29,45 @@ SELECT 1 FROM dual + + + diff --git a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDetailMapper.xml b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDetailMapper.xml index 7c929730..e796f330 100644 --- a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDetailMapper.xml +++ b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/bonus/CuMemberBonusDetailMapper.xml @@ -250,19 +250,18 @@ order by b.period,b.pk_bonus_items,b.real_income desc + + +