Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
sangelxiu1 2025-07-15 15:06:32 +08:00
commit 3961ea195d
3 changed files with 65 additions and 19 deletions

View File

@ -65,6 +65,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
@DubboReference @DubboReference
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
/**
* 特殊体系PK_ID: 150
* V4 500 100
* V5 2000 400
*/
public static final Long VERTEX_PK_ID = 150L;
public static final BigDecimal VERTEX_V4_TOTAL_BOX = new BigDecimal("500");
public static final BigDecimal VERTEX_V4_SMALL_BOX = new BigDecimal("100");
public static final BigDecimal VERTEX_V5_TOTAL_BOX = new BigDecimal("2000");
public static final BigDecimal VERTEX_V5_SMALL_BOX = new BigDecimal("400");
/** /**
* 秒结 * 秒结
* 实时计算秒结数据业绩盒数等级奖衔日奖 * 实时计算秒结数据业绩盒数等级奖衔日奖
@ -723,10 +734,27 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 遍历团队等级mapV4,V5 // 遍历团队等级mapV4,V5
for (Integer gradeValue : retailTeamGradeMap.keySet()) { for (Integer gradeValue : retailTeamGradeMap.keySet()) {
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue); BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
// 等级总盒数
BigDecimal boxTotal = bdGrade.getBoxTotal();
// 等级小市场盒数
BigDecimal boxSmallTotal = bdGrade.getBoxSmallTotal();
if (VERTEX_PK_ID.equals(targetMemberRangeExt.getPkVertex())) {
// TODO 需要根据配置写死的体系进行单独处理
// V4 500 100
// V5 2000 400
if (EGrade.VIP.getValue() == bdGrade.getGradeValue()) {
boxTotal = VERTEX_V4_TOTAL_BOX;
boxSmallTotal = VERTEX_V4_SMALL_BOX;
} else if (EGrade.S_VIP.getValue() == bdGrade.getGradeValue()) {
boxTotal = VERTEX_V5_TOTAL_BOX;
boxSmallTotal = VERTEX_V5_SMALL_BOX;
}
}
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数 + 大区注水 + 小区注水则可以进行升级 // 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数 + 大区注水 + 小区注水则可以进行升级
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue() if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
&& bdGrade.getBoxTotal().compareTo( && boxTotal.compareTo(
targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()) targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())
) <= 0 ) <= 0
) { ) {
@ -766,7 +794,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数 // 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum); BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) { if (smallBoxNum.compareTo(boxSmallTotal) >= 0) {
// 小区盒数 大于等于 升级小区盒数 // 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade); CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
cuMemberGradeList.add(cuMemberGrade); cuMemberGradeList.add(cuMemberGrade);
@ -955,8 +983,25 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 遍历团队等级mapV4,V5 // 遍历团队等级mapV4,V5
for (Integer gradeValue : retailTeamGradeMap.keySet()) { for (Integer gradeValue : retailTeamGradeMap.keySet()) {
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue); BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
// 等级总盒数
BigDecimal boxTotal = bdGrade.getBoxTotal();
// 等级小市场盒数
BigDecimal boxSmallTotal = bdGrade.getBoxSmallTotal();
if (bdGrade.getBoxTotal().compareTo(targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())) <= 0) { if (VERTEX_PK_ID.equals(targetMemberRangeExt.getPkVertex())) {
// TODO 需要根据配置写死的体系进行单独处理
// V4 500 100
// V5 2000 400
if (EGrade.VIP.getValue() == bdGrade.getGradeValue()) {
boxTotal = VERTEX_V4_TOTAL_BOX;
boxSmallTotal = VERTEX_V4_SMALL_BOX;
} else if (EGrade.S_VIP.getValue() == bdGrade.getGradeValue()) {
boxTotal = VERTEX_V5_TOTAL_BOX;
boxSmallTotal = VERTEX_V5_SMALL_BOX;
}
}
if (boxTotal.compareTo(targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())) <= 0) {
// 验证小区计算小区累计盒数 查询伞下会员 // 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList; List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) { if (secondRangeTableName != null) {
@ -993,7 +1038,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数 // 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum); BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) { if (smallBoxNum.compareTo(boxSmallTotal) >= 0) {
// 小区盒数 大于等于 升级小区盒数 // 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade); CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade); cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
@ -1124,7 +1169,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// // 直推级差收益 // // 直推级差收益
// BigDecimal calBonusIncome = BigDecimal.ZERO; // BigDecimal calBonusIncome = BigDecimal.ZERO;
// 商品最终价格 // 商品最终价格总价带数量的价格
BigDecimal waresPrice = saOrderItems.getWaresPrice(); BigDecimal waresPrice = saOrderItems.getWaresPrice();
// 商品数量 // 商品数量
BigDecimal waresQuantityBig = saOrderItems.getWaresQuantity(); BigDecimal waresQuantityBig = saOrderItems.getWaresQuantity();
@ -1168,20 +1213,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (beforeGradeValue == 0) { if (beforeGradeValue == 0) {
// 前一个会员等级为0肯定为第一次处理直接处理直推级差收益 // 前一个会员等级为0肯定为第一次处理直接处理直推级差收益
if (EGrade.HAI_FAN.getValue() == calGradeValue) { if (EGrade.HAI_FAN.getValue() == calGradeValue) {
// VIP1份40 // VIP 1 10%
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice);
} else if (EGrade.YOU_KE.getValue() == calGradeValue) { } else if (EGrade.YOU_KE.getValue() == calGradeValue) {
// SVIP2份40 // SVIP 2 10%
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("2")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("2"));
} else if (EGrade.MAKER.getValue() == calGradeValue) { } else if (EGrade.MAKER.getValue() == calGradeValue) {
// 卓越3份40 // 卓越 3 10%
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("3")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("3"));
} else if (EGrade.VIP.getValue() == calGradeValue) { } else if (EGrade.VIP.getValue() == calGradeValue) {
// 首席4份40 // 首席 4 10%
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("4")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("4"));
} else if (EGrade.S_VIP.getValue() == calGradeValue) { } else if (EGrade.S_VIP.getValue() == calGradeValue) {
// 合伙人5份40 // 合伙人 5 10%
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("5")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("5"));
} }
// 赋值前一个会员等级 // 赋值前一个会员等级
beforeGradeValue = calGradeValue; beforeGradeValue = calGradeValue;
@ -1210,7 +1255,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10; int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
// 新等级的直推级差收益 // 新等级的直推级差收益
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal(tmpGradeVal)); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal(tmpGradeVal));
// 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益 // 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus); rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);

View File

@ -2461,7 +2461,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
try { try {
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { || EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()) {
// 撤单标记为 true // 撤单标记为 true
saOrderExt.setCancelBool(Boolean.TRUE); saOrderExt.setCancelBool(Boolean.TRUE);
// 计算奖金通过mq分发消息异步处理 // 计算奖金通过mq分发消息异步处理

View File

@ -10,9 +10,9 @@ import java.util.List;
public class RetailConstants { public class RetailConstants {
/** /**
* 直推级差等级收益每个等级为40元 * 直推级差等级收益每个等级差为百分之十
*/ */
public static final BigDecimal RANGE_BONUS = new BigDecimal("40"); public static final BigDecimal RANGE_BONUS = new BigDecimal("0.1");
/** /**
* 直推平级收益比例每代拿商品价格的千分之五 * 直推平级收益比例每代拿商品价格的千分之五
*/ */