3
0
Fork 0

## 高级店主直推比例调整;级差计算累计方式 调整;

This commit is contained in:
cabbage 2025-08-21 15:37:16 +08:00
parent 960a5a753b
commit 05ec0cc51e
3 changed files with 42 additions and 14 deletions

View File

@ -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) {
// 处理直推级差收益

View File

@ -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");

View File

@ -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。";
/**
* 复购级差收益说明