3
0
Fork 0

## 首购级差处理逻辑优化;

This commit is contained in:
cabbage 2025-07-12 14:17:38 +08:00
parent fc5826caf1
commit 848d6a0756
1 changed files with 49 additions and 42 deletions

View File

@ -291,38 +291,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 推拿 60
rangeBonusIncome = RetailConstants.V1_V1;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V1);
totalBonus = RetailConstants.V1_V1;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 80或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V1.subtract(totalBonus));
totalBonus = RetailConstants.V2_V1;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 100或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V1.subtract(totalBonus));
totalBonus = RetailConstants.V3_V1;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 200或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V1.subtract(totalBonus));
totalBonus = RetailConstants.V4_V1;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 208或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V1.subtract(totalBonus));
totalBonus = RetailConstants.V5_V1;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 220 或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V1.subtract(totalBonus));
totalBonus = RetailConstants.V6_V1;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 240或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V1.subtract(totalBonus));
totalBonus = RetailConstants.V7_V1;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
}
} else if (EGrade.YOU_KE.getValue() == orderGradeValue) {
// 订单等级是VIP
@ -332,38 +334,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 推拿 300
rangeBonusIncome = RetailConstants.V1_V2;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V2);
totalBonus = RetailConstants.V1_V2;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 400或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V2.subtract(totalBonus));
totalBonus = RetailConstants.V2_V2;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 500或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V2.subtract(totalBonus));
totalBonus = RetailConstants.V3_V2;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 1000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V2.subtract(totalBonus));
totalBonus = RetailConstants.V4_V2;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 1040或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V2.subtract(totalBonus));
totalBonus = RetailConstants.V5_V2;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 1100或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V2.subtract(totalBonus));
totalBonus = RetailConstants.V6_V2;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 1200或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V2.subtract(totalBonus));
totalBonus = RetailConstants.V7_V2;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
}
} else if (EGrade.MAKER.getValue() == orderGradeValue) {
// 订单是合伙人
@ -373,38 +377,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 推拿 600
rangeBonusIncome = RetailConstants.V1_V3;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V3);
totalBonus = RetailConstants.V1_V3;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 800或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V3.subtract(totalBonus));
totalBonus = RetailConstants.V2_V3;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 1000或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_1.subtract(totalBonus));
totalBonus = RetailConstants.V3_V3_1;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 2000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V3.subtract(totalBonus));
totalBonus = RetailConstants.V4_V3;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 2080或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V3.subtract(totalBonus));
totalBonus = RetailConstants.V5_V3;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 2200或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V3.subtract(totalBonus));
totalBonus = RetailConstants.V6_V3;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 2400或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V3.subtract(totalBonus));
totalBonus = RetailConstants.V7_V3;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
@ -412,56 +418,58 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V3第一平级 推拿 1200或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_2.subtract(totalBonus));
totalBonus = RetailConstants.V3_V3_2;
v3Count++;
} else if (v3Count == 2) {
// V3第二平级 推拿 1300或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_3.subtract(totalBonus));
totalBonus = RetailConstants.V3_V3_3;
v3Count++;
}
}
} else if (EGrade.VIP.getValue() == orderGradeValue) {
// 订单是合伙人
// 订单是博羚店主
if (targetGradeValue > beforeGradeValue) {
// 当前等级大于之前等级
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
// V1 推拿 1200
rangeBonusIncome = RetailConstants.V1_V4;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V4);
totalBonus = RetailConstants.V1_V4;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 1600或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V4.subtract(totalBonus));
totalBonus = RetailConstants.V2_V4;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 2000或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_1.subtract(totalBonus));
totalBonus = RetailConstants.V3_V4_1;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 4000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V4.subtract(totalBonus));
totalBonus = RetailConstants.V4_V4;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 4160或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V4.subtract(totalBonus));
totalBonus = RetailConstants.V5_V4;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 4400或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V4.subtract(totalBonus));
totalBonus = RetailConstants.V6_V4;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 4800或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V4.subtract(totalBonus));
totalBonus = RetailConstants.V7_V4;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
@ -469,13 +477,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V3第一平级 推拿 2400或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_2.subtract(totalBonus));
totalBonus = RetailConstants.V3_V4_2;
v3Count++;
} else if (v3Count == 2) {
// V3第二平级 推拿 2600或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_3.subtract(totalBonus));
totalBonus = RetailConstants.V3_V4_3;
v3Count++;
}
}
@ -487,27 +495,27 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 博羚店主拿 50000
rangeBonusIncome = RetailConstants.V4_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V6.subtract(totalBonus));
totalBonus = RetailConstants.V4_V6;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// 高级店主拿 52000或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V6.subtract(totalBonus));
totalBonus = RetailConstants.V5_V6;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// 分公司拿 55000或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V6.subtract(totalBonus));
totalBonus = RetailConstants.V6_V6;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// 总公司拿 60000或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V6.subtract(totalBonus));
}
}
totalBonus = RetailConstants.V7_V6;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
}
}
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
// 处理直推级差收益
@ -623,6 +631,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V7.multiply(boxNum).subtract(totalBonus));
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
@ -641,9 +651,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
// 处理复购级差收益
// 会员奖金