forked from angelo/java-retail-app
## 高级店主直推比例调整;级差计算累计方式 调整;
This commit is contained in:
parent
960a5a753b
commit
05ec0cc51e
|
@ -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) {
|
||||
// 处理直推级差收益
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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。";
|
||||
|
||||
/**
|
||||
* 复购级差收益说明
|
||||
|
|
Loading…
Reference in New Issue