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 30573063..7cad8626 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 @@ -2648,10 +2648,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl throw new ServiceException("当前已经是可以购买的最高等级"); } // 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数 - baseBoxNum = lastUpdateGrade.getBoxNumber().add(saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType)); + BigDecimal oldBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); + if (null != oldBoxNum) { + baseBoxNum = lastUpdateGrade.getBoxNumber().add(oldBoxNum); + } else { + baseBoxNum = lastUpdateGrade.getBoxNumber(); + } } else { // 没有手动升级记录 - baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); + BigDecimal oldBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); + if (null != oldBoxNum) { + baseBoxNum = oldBoxNum; + } } } return baseBoxNum;