From 30763844462238f95a5a298fe32ecf843d423552 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 10 Apr 2025 09:37:17 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E4=B9=90=E5=AD=A6=E5=A4=8D=E8=B4=AD?= =?UTF-8?q?=E7=BA=A7=E5=B7=AE=E4=B8=AD=E5=88=A4=E6=96=AD=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E4=BA=BA=E6=98=AF=E5=90=A6=E4=B8=BA=E7=A9=BA=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/service/impl/BonusSettlePurchaseHandle.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java index 9204dc5e..435bff52 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java @@ -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 rangeDtoMap, BonusConfigDTO bonusConfigDTO, Integer period, Map cuMemberBonusMap, LeXueRangeParam leXueRangeParam, List specialOrderList, List cuMemberBonusRangeList) { - // 计算乐学易考特殊复购极差,找第一个vip,svip,找到有代金券,代金券-1,奖金给金额,第一个是svip后,就不给 + // 旧逻辑: 计算乐学易考特殊复购极差,找第一个vip,svip,找到有代金券,代金券-1,奖金给金额,第一个是svip后,就不给 if (specialOrderList.size() > 0) { // 查找订单血缘上会员 Set expandMemberSet = specialOrderList.stream().distinct().map(SaOrderExt::getPkMember).collect(Collectors.toSet()); @@ -869,6 +870,9 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { private CuMemberSettleExt getSpecialRangeCuMemberTree(Map cuMemberTreeMap, BonusConfigDTO bonusConfigDTO, CuMemberSettleExt sourceMemberTree, CuMemberSettleExt parentMemberTree, Map 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())