From 0bf3304399fbb768483ab3ff7e7cd497e2fa6023 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 21 Aug 2025 15:37:16 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E9=AB=98=E7=BA=A7=E5=BA=97=E4=B8=BB?= =?UTF-8?q?=E7=9B=B4=E6=8E=A8=E6=AF=94=E4=BE=8B=E8=B0=83=E6=95=B4=EF=BC=9B?= =?UTF-8?q?=E7=BA=A7=E5=B7=AE=E8=AE=A1=E7=AE=97=E7=B4=AF=E8=AE=A1=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=20=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 52 ++++++++++++++----- .../common/core/constant/RetailConstants.java | 2 +- .../core/constant/msg/BonusMsgConstants.java | 2 +- 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index e07aedfa..369b21bf 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -323,13 +323,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 直推级差收益 BigDecimal rangeBonusIncome = BigDecimal.ZERO; - if (EGrade.HAI_FAN.getValue() == targetGradeValue) { + if (EGrade.HAI_FAN.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { // 推荐人是 会员 rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_HAI_FAN).setScale(4, BigDecimal.ROUND_HALF_UP); - } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.YOU_KE.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { // 推荐人是 VIP rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_YOU_KE).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); - } else if (EGrade.MAKER.getValue() == targetGradeValue) { + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.MAKER.getValue() == targetGradeValue && targetGradeValue >= beforeGradeValue) { // 推荐人是 合伙人 if (v3Count == 1) { rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_MAKER_1).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); @@ -339,26 +347,46 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_MAKER_3).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); } v3Count++; - } else if (EGrade.VIP.getValue() == targetGradeValue) { + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.VIP.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { // 推荐人是 博羚店主 rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_VIP).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); - } else if (EGrade.S_VIP.getValue() == targetGradeValue) { + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.S_VIP.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { // 推荐人是 高级店主 rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_S_VIP).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); - } else if (EGrade.REGION.getValue() == targetGradeValue) { + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.REGION.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { // 推荐人是 区域代理 rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_REGION).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); - } else if (EGrade.DIRECTOR.getValue() == targetGradeValue) { + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.DIRECTOR.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { // 推荐人是 董事代理 rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_DIRECTOR).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); - } else if (EGrade.COMPANY.getValue() == targetGradeValue) { + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.COMPANY.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { // 推荐人是 总公司 rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_COMPANY).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } - // 已经算完级差等级的累计奖金 - totalBonus = totalBonus.add(rangeBonusIncome); - // 前一级会员等级 - beforeGradeValue = targetGradeValue; if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) { // 处理直推级差收益 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java index f9d9d0ff..96de960a 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java @@ -33,7 +33,7 @@ public class RetailConstants { public static final BigDecimal RECOMMEND_MAKER_2 = new BigDecimal("0.3"); public static final BigDecimal RECOMMEND_MAKER_3 = new BigDecimal("0.325"); public static final BigDecimal RECOMMEND_VIP = new BigDecimal("0.5"); - public static final BigDecimal RECOMMEND_S_VIP = new BigDecimal("0.5"); + public static final BigDecimal RECOMMEND_S_VIP = new BigDecimal("0.52"); public static final BigDecimal RECOMMEND_REGION = new BigDecimal("0.55"); public static final BigDecimal RECOMMEND_DIRECTOR = new BigDecimal("0.55"); public static final BigDecimal RECOMMEND_COMPANY = new BigDecimal("0.6"); diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java index 5b5c01d2..89ef5aaf 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java @@ -13,7 +13,7 @@ public class BonusMsgConstants { /** * 直推级差收益说明 */ - public static String RANGE = "订单编号%s,%s为%s贡献了直推级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。"; + public static String RANGE = "订单编号%s,%s为%s贡献了直推级差收益,计算金额%f,来源等级名称%s,当前级差等级名称%s。"; /** * 复购级差收益说明