From 2cbcc0565dde620b989ceca35e34fc75e395bcba Mon Sep 17 00:00:00 2001 From: gaowdong Date: Tue, 15 Apr 2025 18:27:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/order/business/OrderBusiness.java | 41 +++++++++++++++++++ .../canteen/core/order/domain/OrderInfo.java | 3 ++ .../order/domain/param/OrderInfoAddParam.java | 4 ++ .../service/impl/OrderInfoServiceImpl.java | 15 ++----- 4 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java new file mode 100644 index 0000000..80e7405 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java @@ -0,0 +1,41 @@ +package com.bonus.canteen.core.order.business; + +import cn.hutool.core.collection.CollUtil; +import com.bonus.canteen.core.account.domain.vo.AccInfoDetailsVO; +import com.bonus.canteen.core.account.service.IAccInfoService; +import com.bonus.canteen.core.order.domain.OrderDetail; +import com.bonus.canteen.core.order.domain.OrderInfo; +import com.bonus.canteen.core.order.domain.param.OrderAddParam; +import com.bonus.canteen.core.order.mapper.OrderInfoMapper; +import com.bonus.canteen.core.order.service.IOrderDetailService; +import com.bonus.common.core.exception.ServiceException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Component +public class OrderBusiness { + @Autowired + private IAccInfoService accInfoService; + @Autowired + private IOrderDetailService orderDetailService; + @Autowired + private OrderInfoMapper orderInfoMapper; + @Transactional(rollbackFor = Exception.class) + public List orderPlaceHandler(OrderAddParam orderAddParam) { + AccInfoDetailsVO accInfoVO = this.accInfoService.queryAccInfoByUserId(orderAddParam.getUserId()); + accInfoService.checkAccStatus(accInfoVO); + List orderInfoList = new OrderInfo().of(orderAddParam); + if(CollUtil.isEmpty(orderInfoList) || CollUtil.isEmpty(orderInfoList.get(0).getOrderDetailList())) { + throw new ServiceException("订单明细不能为空"); + } + orderInfoMapper.batchInsertOrderInfo(orderInfoList); + orderInfoList.forEach(orderInfo -> { + List orderDetailList = orderInfo.getOrderDetailList(); + orderDetailService.batchInsertOrderDetail(orderDetailList); + }); + return orderInfoList; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/OrderInfo.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/OrderInfo.java index 0f244bc..f2a19c8 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/OrderInfo.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/OrderInfo.java @@ -176,6 +176,9 @@ public class OrderInfo extends BaseEntity for(OrderInfoAddParam orderInfoAddParam : orderList) { OrderInfo orderInfo = new OrderInfo(); orderInfo.setOrderId(Id.next()); + orderInfo.setDeviceOrderId(orderInfoAddParam.getDeviceOrderId()); + orderInfo.setDeviceSn(orderInfoAddParam.getDeviceSn()); + orderInfo.setDeviceNum(orderInfoAddParam.getDeviceNum()); orderInfo.setUserId(param.getUserId()); orderInfo.setPayableAmount(param.getPayableAmount()); orderInfo.setRealAmount(param.getRealAmount()); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderInfoAddParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderInfoAddParam.java index aca126e..32ff349 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderInfoAddParam.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderInfoAddParam.java @@ -1,5 +1,6 @@ package com.bonus.canteen.core.order.domain.param; +import com.bonus.common.core.annotation.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -25,5 +26,8 @@ public class OrderInfoAddParam { private Date orderDate; @NotNull(message = "订单类型不能为空") private Integer orderType; + private String deviceOrderId; + private String deviceSn; + private String deviceNum; List orderDetailList; } 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 1c107a0..2244162 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 @@ -13,6 +13,7 @@ import com.bonus.canteen.core.account.service.IAccTradeService; import com.bonus.canteen.core.account.service.IAccWalletInfoService; import com.bonus.canteen.core.common.utils.MqUtil; import com.bonus.canteen.core.common.utils.RedisUtil; +import com.bonus.canteen.core.order.business.OrderBusiness; import com.bonus.canteen.core.order.constants.OrderDetailStateEnum; import com.bonus.canteen.core.order.constants.OrderRefundStateEnum; import com.bonus.canteen.core.order.constants.OrderStateEnum; @@ -64,6 +65,8 @@ public class OrderInfoServiceImpl implements IOrderInfoService private IAccInfoService accInfoService; @Autowired private IOrderDetailService orderDetailService; + @Autowired + private OrderBusiness orderBusiness; /** * 查询订单 @@ -103,17 +106,7 @@ public class OrderInfoServiceImpl implements IOrderInfoService log.info("[下单]重复提交:{}", paramMd5); throw new ServiceException("请勿重复提交订单"); } - AccInfoDetailsVO accInfoVO = this.accInfoService.queryAccInfoByUserId(orderAddParam.getUserId()); - accInfoService.checkAccStatus(accInfoVO); - List orderInfoList = new OrderInfo().of(orderAddParam); - if(CollUtil.isEmpty(orderInfoList) || CollUtil.isEmpty(orderInfoList.get(0).getOrderDetailList())) { - throw new ServiceException("订单明细不能为空"); - } - orderInfoMapper.batchInsertOrderInfo(orderInfoList); - orderInfoList.forEach(orderInfo -> { - List orderDetailList = orderInfo.getOrderDetailList(); - orderDetailService.batchInsertOrderDetail(orderDetailList); - }); + List orderInfoList = orderBusiness.orderPlaceHandler(orderAddParam); OrderPayDTO orderPayDTO = buildOrderPayDTO(orderInfoList); try { List walletInfoList = accWalletInfoService.selectAccWalletInfoByUserId(orderPayDTO.getUserId());