diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java index 4171f94b..f69db2f7 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java @@ -391,6 +391,12 @@ public class ApiOrderController extends BaseController { // 订单下商品已下架,不能购买 return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_ITEM_OFF)); } + + SaOrderExt saOrderExt = iSaOrderService.queryOrderByCode(orderCode, CountryConstants.CHINA_COUNTRY); + if (null != saOrderExt && EOrderType.MALL_ORDER.getValue() == saOrderExt.getOrderType()) { + // 校验秒杀订单限购 + iSaOrderService.checkMallOrder(saOrderExt); + } return AjaxResult.success(); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index faf989bc..f8560fa4 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -590,4 +590,11 @@ public interface ISaOrderService extends IService { */ List singleItemStat(SingleItemStatParam singleItemStatParam); + /** + * 校验秒杀订单限购 + * + * @param saOrderExt + */ + void checkMallOrder(SaOrderExt saOrderExt); + } 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 b9c13d70..6d95d0f5 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 @@ -2320,22 +2320,30 @@ public class SaOrderServiceImpl extends ServiceImpl impl } } - /** - * 校验秒杀限购 - * - * @param saOrderExt - */ - private void checkMallOrder(SaOrderExt saOrderExt) { + @Override + public void checkMallOrder(SaOrderExt saOrderExt) { // key:商品ID,value:商品购买数量 Map limitMap = new HashMap<>(); // key:商品ID,value:商品限购属性 Map waresLimitMap = new HashMap<>(); - for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { - if (EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { - // 非赠品 - limitMap.put(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity()); + if (CollectionUtil.isNotEmpty(saOrderExt.getOrderItemsList())) { + // 新创建订单 + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { + if (EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { + // 非赠品 + limitMap.put(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity()); + } + } + } else { + // 待支付订单 + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsExtList()) { + if (EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { + // 非赠品 + limitMap.put(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity()); + } } } + if (limitMap.size() > 0) { // 商品限购数据 List waresExtendList = iBdWaresExtendService.listByPkWaresList(limitMap.keySet());