From 4740130d28cceabd985e9d57286d2d5f540b7767 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 6 Aug 2025 14:08:32 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=BE=85=E6=94=AF=E4=BB=98=E7=A7=92?= =?UTF-8?q?=E6=9D=80=E8=AE=A2=E5=8D=95=EF=BC=8C=E5=86=8D=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E6=97=B6=E8=BF=9B=E8=A1=8C=E9=99=90=E8=B4=AD=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiOrderController.java | 6 ++++ .../sale/order/service/ISaOrderService.java | 7 +++++ .../service/impl/SaOrderServiceImpl.java | 28 ++++++++++++------- 3 files changed, 31 insertions(+), 10 deletions(-) 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());