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) {