From 91df28563c90b56aef6b92863b6f62faca8e2573 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 21 Apr 2025 11:10:59 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E8=BE=85=E5=AF=BC=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleServiceImpl.java | 58 +++++++++++++------ 1 file changed, 39 insertions(+), 19 deletions(-) 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 0a97671b..78ca176a 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 @@ -797,20 +797,20 @@ public class BonusSettleServiceImpl implements IBonusSettleService { /** * 根据不同的订单类型计算奖金 * - * @param settleDate 结算日期 - * @param period 期间 - * @param yesterdayPeriod 昨日期间 - * @param currentSettleTableName 结算日表 - * @param awardsMap 奖衔 - * @param gradeMap 等级 - * @param bonusConfigDTO 奖金配置 - * @param cuMemberBonusMap 最终的奖金列表 - * @param cuMemberSettleExtMap 会员结算map + * @param settleDate 结算日期 + * @param period 期间 + * @param yesterdayPeriod 昨日期间 + * @param settleTableName 结算日表 + * @param awardsMap 奖衔 + * @param gradeMap 等级 + * @param bonusConfigDTO 奖金配置 + * @param cuMemberBonusMap 最终的奖金列表 + * @param cuMemberSettleExtMap 会员结算map */ - private LeXueRangeParam calculateBonusBySaOrderList(String settleDate, Integer period, Integer yesterdayPeriod, String currentSettleTableName, + private LeXueRangeParam calculateBonusBySaOrderList(String settleDate, Integer period, Integer yesterdayPeriod, String settleTableName, List firPurchaseOrderList, List repurchaseOrderList, List mallOrderList, Map awardsMap, Map gradeMap, BonusConfigDTO bonusConfigDTO, - Map cuMemberBonusMap, BonusRecordDetailVO recordDetailVO, Map cuMemberSettleExtMap) { + Map cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO, Map cuMemberSettleExtMap) { LeXueRangeParam leXueRangeParam = null; Map cuAwardsControlMap = getCuAwardsControlMap(); Map weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period); @@ -834,22 +834,40 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 先计算复购在计算首购 // 计算复购 if (repurchaseOrderList.size() > 0) { - leXueRangeParam = calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO, - repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap); + leXueRangeParam = calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate, systemConfigMap, bonusConfigDTO, + repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, bonusRecordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap); } // 计算首购 if (firPurchaseOrderList.size() > 0) { - calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO, - firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap); + calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate, systemConfigMap, bonusConfigDTO, + firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, bonusRecordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap); } // 计算商城业绩 if (mallOrderList.size() > 0) { - bonusSettleMallHandle.calculateMallBonus(cuMemberSettleExtMap, currentSettleTableName, mallOrderList, bonusConfigDTO); + bonusSettleMallHandle.calculateMallBonus(cuMemberSettleExtMap, settleTableName, mallOrderList, bonusConfigDTO); } // 处理拓展延缓发放 - bonusSettleFirstPurchaseHandle.handleDelayExpand(recordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap, - period, yesterdayPeriod, currentSettleTableName, gradeMap); + List delayExpandList = bonusSettleFirstPurchaseHandle.handleDelayExpand(bonusRecordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap, + period, yesterdayPeriod, settleTableName, gradeMap); + + // TODO new 处理拓展延缓发放辅导收益 +// // 判断是否有量奖,有量奖有辅导奖 +// List cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, Collections.emptyList(), +// delayExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true); +// if (CollectionUtil.isNotEmpty(bonusRecordDetailVO.getCuMemberBonusCoachList())) { +// bonusRecordDetailVO.getCuMemberBonusCoachList().addAll(cuMemberBonusCoachList); +// } +// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach); +// memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome())); +// }); +// // 辅导收益 +// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { +// // 收益拨比、订单占比,在延缓明细里面已经计算过,此处可以直接给0 +// cuMemberBonusCoach.setIncomeDialRatio(BigDecimal.ZERO); +// cuMemberBonusCoach.setOrderDialRatio(BigDecimal.ZERO); +// }); return leXueRangeParam; } @@ -1052,6 +1070,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService { cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true); if (CollectionUtil.isNotEmpty(bonusRecordDetailVO.getCuMemberBonusCoachList())) { bonusRecordDetailVO.getCuMemberBonusCoachList().addAll(cuMemberBonusCoachList); + } else { + bonusRecordDetailVO.setCuMemberBonusCoachList(cuMemberBonusCoachList); } //*********************************计算服务奖************************/ @@ -1321,6 +1341,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { } } + /** * @Description: 计算订单奖金累计值 * @return: void @@ -1357,5 +1378,4 @@ public class BonusSettleServiceImpl implements IBonusSettleService { } return memberBonusDetailCalVO; } - }