## 辅导明细入库处理;

This commit is contained in:
cabbage 2025-04-21 11:10:59 +08:00
parent 92df472203
commit 91df28563c
1 changed files with 39 additions and 19 deletions

View File

@ -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<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList,
Map<String, BdAwards> awardsMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO recordDetailVO, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap) {
Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap) {
LeXueRangeParam leXueRangeParam = null;
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
Map<Long, CuMemberBonus> 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<CuMemberBonusExpand> delayExpandList = bonusSettleFirstPurchaseHandle.handleDelayExpand(bonusRecordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap,
period, yesterdayPeriod, settleTableName, gradeMap);
// TODO new 处理拓展延缓发放辅导收益
// // 判断是否有量奖有量奖有辅导奖
// List<CuMemberBonusCoach> 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;
}
}