## 雨汐体系V4、V5升级盒数单独处理;

V4:总500,小100;
V5:总2000,小400;
This commit is contained in:
cabbage 2025-07-14 17:15:31 +08:00
parent 0867a54488
commit d180bfed66
1 changed files with 49 additions and 4 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);