From 4ac2f8bfcc2337a0323605429283c000ac74dde1 Mon Sep 17 00:00:00 2001 From: gaowdong Date: Tue, 6 May 2025 13:29:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=AE=A2=E5=8D=95=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E9=87=8D=E5=A4=8D=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/impl/OrderInfoServiceImpl.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java index f889f81..07fe49e 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java @@ -159,6 +159,7 @@ public class OrderInfoServiceImpl implements IOrderInfoService AccInfoDetailsVO accInfoVO = this.accInfoService.queryAccInfoByUserId(orderAddParam.getUserId()); accInfoService.checkAccStatus(accInfoVO); List canteenOrderInfoList = new OrderInfo().of(orderAddParam); + checkDeviceOrderExisting(canteenOrderInfoList); checkOrdersTotalAmount(canteenOrderInfoList, orderAddParam.getRealAmount()); List orderInfoList = orderBusiness.orderPlaceHandler(canteenOrderInfoList); try { @@ -184,6 +185,7 @@ public class OrderInfoServiceImpl implements IOrderInfoService AccInfoDetailsVO accInfoVO = this.accInfoService.queryAccInfoByUserId(orderAddParam.getUserId()); accInfoService.checkAccStatus(accInfoVO); List canteenOrderInfoList = new ShopOrderAddParam().of(orderAddParam); + checkDeviceOrderExisting(canteenOrderInfoList); List orderInfoList = orderBusiness.orderPlaceHandler(canteenOrderInfoList); try { AccRedisUtils.lockUpdateAccWalletBalance(orderAddParam.getUserId()); @@ -197,6 +199,18 @@ public class OrderInfoServiceImpl implements IOrderInfoService return 1; } + private void checkDeviceOrderExisting(List orderInfoList) { + if(CollUtil.isEmpty(orderInfoList)) { + throw new ServiceException("订单不能为空"); + } + for (OrderInfo orderInfo : orderInfoList) { + OrderInfo orderInfoByOrderId = orderInfoMapper.selectOrderInfoByDeviceOrderId(orderInfo.getDeviceOrderId()); + if(Objects.nonNull(orderInfoByOrderId)) { + throw new ServiceException("该设备订单已存在"); + } + } + } + @Override public void pay(Long orderId) { if(Objects.isNull(orderId) || orderId <= 0) {