diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index cc676191..735e357d 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -872,7 +872,17 @@ public class SaOrderServiceImpl extends ServiceImpl impl } // 验证等级,原等级<新等级,才可以进行升级 或者 累计升级 String upgradeWay = querySystemConfigByKey(saOrderExt.getPkCountry(), ESystemConfig.UPGRADE_WAY.getKey()); + boolean checkUpgrade = false; if (oldGradeDTO.getGradeValue() >= cuMember.getPkSettleGradeValue() && !Objects.equals(Integer.toString(EUpgradeWay.TOTAL.getValue()), upgradeWay)) { + if (EGrade.VIP.getValue() == oldGradeDTO.getGradeValue()) { + SaOrderExt gradeOrder = baseMapper.getLastOrderGrade(cuMember.getPkId()); + if (EGrade.MAKER.getValue() == gradeOrder.getGradeValue()) { + // 如果是1980赠送升级的9900,可以再买一个9900,但是等级不变 + checkUpgrade = true; + } + } + } + if (!checkUpgrade) { return false; } // 封装保存订单数据 @@ -1120,7 +1130,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (grade.getGradeValue() < gradeDTO.getGradeValue()) { orderReturn.setIsEnough(Boolean.TRUE); } else { - // TODO 2025.07.17 为兼容注册送等级逻辑,此处需要查询一下会员的实际订单对应等级 + // 2025.07.17 为兼容注册送等级逻辑,此处需要查询一下会员的实际订单对应等级 SaOrderExt gradeOrder = baseMapper.getLastOrderGrade(member.getPkId()); if (null != gradeOrder) { if (gradeOrder.getGradeValue() < gradeDTO.getGradeValue()