3
0
Fork 0

## Fix - 配送区域为伞下时,增加查询配送区域的日结

This commit is contained in:
sangelxiu1 2025-08-14 10:38:30 +08:00
parent cb93e84848
commit 73d1983528
1 changed files with 11 additions and 3 deletions

View File

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