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

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