diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 7bb7f0a1..c5c45354 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -1,5 +1,7 @@ package com.hzs.bonus.bonus.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.bonus.vo.BonusRecordDetailVO; import com.hzs.bonus.detail.service.ICuMemberGradeService; @@ -46,6 +48,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { private IBonusOrderService iBonusOrderService; @Autowired private ICuMemberGradeService iCuMemberGradeService; + @Autowired + private CuMemberRetailRangeMapper cuMemberRetailRangeMapper; @DubboReference ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; @@ -201,7 +205,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 计算配送收益 if (regionMap.size() != 0) { cuMemberBonusDetailList.addAll(calculateRetailRepurRegionBonus(memberRangeExtMap, cuMemberBonusMap, - bonusConfigDTO, period, saOrderExt, regionMap)); + bonusConfigDTO, period, saOrderExt, regionMap, rangeTableName)); } } } @@ -786,13 +790,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { * 计算复购配送区域收益 */ List calculateRetailRepurRegionBonus(Map memberRangeExtMap, Map cuMemberBonusMap, - BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map regionMap) { + BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map regionMap, + String rangeTableName) { // 复购配送区域返回数据 List memberBonusDetailList = new ArrayList<>(); // 订单下单人自己 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - // 配送区域配置 CuMemberRetailRegion retailRegion = regionMap.get(saOrderExt.getRecCounty()); if (null != retailRegion) { @@ -813,6 +817,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (bonusIncome.compareTo(BigDecimal.ZERO) > 0) { // 处理复购级差收益 // 会员奖金 + if(ObjectUtil.isEmpty(targetMemberRangeExt)){ + List memberRetailRangeExtList = cuMemberRetailRangeMapper.queryCuMemberRetailRangeParent(rangeTableName, Arrays.asList(retailRegion.getPkMember())); + targetMemberRangeExt = memberRetailRangeExtList.stream().filter(e -> e.getPkMember().equals(retailRegion.getPkMember())).findFirst().get(); + } CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_DELIVERY_INCOME.getValue());