## 乐学复购级差中判断推荐人是否为空处理;

This commit is contained in:
cabbage 2025-04-10 09:37:17 +08:00
parent dc77f6c9fc
commit 3076384446
1 changed files with 6 additions and 2 deletions

View File

@ -538,7 +538,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
BigDecimal grantBonus = BigDecimal.ZERO; BigDecimal grantBonus = BigDecimal.ZERO;
while (ComputeUtil.compareGreaterThan(maxBonus, grantBonus)) { while (ComputeUtil.compareGreaterThan(maxBonus, grantBonus)) {
// 最大发放奖金 大于 累计发放奖金则继续处理 // 最大发放奖金 大于 累计发放奖金则继续处理
if (sourceMemberTree == null) { if (null == sourceMemberTree) {
break; break;
} }
int pkGrade = sourceMemberTree.getPkGrade(); int pkGrade = sourceMemberTree.getPkGrade();
@ -625,6 +625,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
/** /**
* 乐学特殊复购级差根据法宝券进行计算奖金 * 乐学特殊复购级差根据法宝券进行计算奖金
* 每个等级最多拨出一张法宝券给200奖金遇到V4为止 * 每个等级最多拨出一张法宝券给200奖金遇到V4为止
* 如果购买时会员没有使用券那么同等级也可以拨出一张
* *
* @param settleTableName * @param settleTableName
* @param rangeDtoMap * @param rangeDtoMap
@ -638,7 +639,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
private void calculateLeXueRangeBonus(String settleTableName, Map<String, RangeDTO> rangeDtoMap, BonusConfigDTO bonusConfigDTO, private void calculateLeXueRangeBonus(String settleTableName, Map<String, RangeDTO> rangeDtoMap, BonusConfigDTO bonusConfigDTO,
Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, LeXueRangeParam leXueRangeParam, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, LeXueRangeParam leXueRangeParam,
List<SaOrderExt> specialOrderList, List<CuMemberBonusRange> cuMemberBonusRangeList) { List<SaOrderExt> specialOrderList, List<CuMemberBonusRange> cuMemberBonusRangeList) {
// 计算乐学易考特殊复购极差找第一个vipsvip找到有代金券代金券-1奖金给金额第一个是svip后就不给 // 旧逻辑 计算乐学易考特殊复购极差找第一个vipsvip找到有代金券代金券-1奖金给金额第一个是svip后就不给
if (specialOrderList.size() > 0) { if (specialOrderList.size() > 0) {
// 查找订单血缘上会员 // 查找订单血缘上会员
Set<Long> expandMemberSet = specialOrderList.stream().distinct().map(SaOrderExt::getPkMember).collect(Collectors.toSet()); Set<Long> expandMemberSet = specialOrderList.stream().distinct().map(SaOrderExt::getPkMember).collect(Collectors.toSet());
@ -869,6 +870,9 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
private CuMemberSettleExt getSpecialRangeCuMemberTree(Map<Long, CuMemberSettleExt> cuMemberTreeMap, BonusConfigDTO bonusConfigDTO, private CuMemberSettleExt getSpecialRangeCuMemberTree(Map<Long, CuMemberSettleExt> cuMemberTreeMap, BonusConfigDTO bonusConfigDTO,
CuMemberSettleExt sourceMemberTree, CuMemberSettleExt parentMemberTree, CuMemberSettleExt sourceMemberTree, CuMemberSettleExt parentMemberTree,
Map<Long, CuMemberAssess> cuMemberAssessMap, int pkGrade) { Map<Long, CuMemberAssess> cuMemberAssessMap, int pkGrade) {
if (null == parentMemberTree) {
return null;
}
if (ECategory.NORMAL.getValue() != parentMemberTree.getCategory() if (ECategory.NORMAL.getValue() != parentMemberTree.getCategory()
|| EAccountStatus.STOP_INCOME.getValue() == parentMemberTree.getAccountStatus() || EAccountStatus.STOP_INCOME.getValue() == parentMemberTree.getAccountStatus()
|| validatePkBonusItems(bonusConfigDTO, parentMemberTree.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue()) || validatePkBonusItems(bonusConfigDTO, parentMemberTree.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue())