## 赠送等级之后可以继续购买升级;

This commit is contained in:
cabbage 2025-06-25 16:21:00 +08:00
parent 313cc89cb3
commit 17d57f4ff8
1 changed files with 40 additions and 23 deletions

View File

@ -2628,6 +2628,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
if (ESpecialArea.RETAIL_REGISTER.getValue() == specialArea) {
// 注册专区直接算等级
bdGrade = this.getGradeByBox(boxNum, gradeList, null, true);
// 特殊等级处理
this.handleGradeEnd(gradeList, bdGrade);
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
// 升级专区一次性补差升级
if (boxNum == 0) {
@ -2651,31 +2653,18 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 计算等级
bdGrade = this.getGradeByBox(boxNum + baseBoxNum, gradeList, memberGrade, true);
// 会员等级 大于等于 购买盒数等级则不充足升级条件
if (memberGrade.getGradeValue().compareTo(bdGrade.getGradeValue()) >= 0) {
// 特殊等级处理
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade);
if (null != isPay && EYesNo.YES.getIntValue() == isPay) {
// 支付时才进行处理
bdGrade = tmpGrade;
}
// 会员等级 大于等于 购买盒数等级则不满足升级条件
if (memberGrade.getGradeValue().compareTo(tmpGrade.getGradeValue()) >= 0) {
return null;
}
}
// TODO 2025.06.14 添加新需求V1-V3购买多给两级
// new 2025.06.25 V1-V3升级多送两级
if (null != isPay && EYesNo.YES.getIntValue() == isPay) {
// 支付时才进行处理
if (null != bdGrade) {
if (EGrade.HAI_FAN.getValue() == bdGrade.getGradeValue()) {
// V1 V3
bdGrade = gradeList.stream().filter(tmpData -> EGrade.MAKER.getValue() == tmpData.getGradeValue()).findFirst().get();
} else if (EGrade.YOU_KE.getValue() == bdGrade.getGradeValue()) {
// V2 V4
bdGrade = gradeList.stream().filter(tmpData -> EGrade.VIP.getValue() == tmpData.getGradeValue()).findFirst().get();
} else if (EGrade.MAKER.getValue() == bdGrade.getGradeValue()) {
// V3 V5
bdGrade = gradeList.stream().filter(tmpData -> EGrade.S_VIP.getValue() == tmpData.getGradeValue()).findFirst().get();
}
}
}
return bdGrade;
}
@ -3498,4 +3487,32 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return cuMemberLevel;
}
/**
* new 2025.06.25 V1-V3升级多送两级处理
*
* @param gradeList
* @param bdGrade
* @return
*/
private BdGrade handleGradeEnd(List<BdGrade> gradeList, BdGrade bdGrade) {
// new 2025.06.14 添加新需求V1-V3购买多给两级
// new 2025.06.25 V1-V3升级多送两级可以继续购买升级
Integer pkGrade = bdGrade.getPkId();
// 临时处理等级
BdGrade tmpGrade = gradeList.stream().filter(tmpData -> tmpData.getPkId().equals(pkGrade)).findFirst().get();
if (EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
// V1 V3
tmpGrade = gradeList.stream().filter(tmpData -> EGrade.MAKER.getValue() == tmpData.getGradeValue()).findFirst().get();
} else if (EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
// V2 V4
tmpGrade = gradeList.stream().filter(tmpData -> EGrade.VIP.getValue() == tmpData.getGradeValue()).findFirst().get();
} else if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
// V3 V5
tmpGrade = gradeList.stream().filter(tmpData -> EGrade.S_VIP.getValue() == tmpData.getGradeValue()).findFirst().get();
}
return tmpGrade;
}
}