From a7501803a3ca43310e57a5dd912e5047919c2e43 Mon Sep 17 00:00:00 2001
From: 彭雪彬 <1724387007@qq.com>
Date: Tue, 15 Jul 2025 15:26:55 +0800
Subject: [PATCH] Merge branch 'xin' into pxb

---
 oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java |   44 ++++++++++++++++++++++++++++----------------
 1 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
index be09c2c..1c4b0cb 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
@@ -12,6 +12,7 @@
 import com.oying.modules.sh.domain.*;
 import com.oying.modules.sh.domain.request.GeneratorOrder;
 import com.oying.modules.sh.domain.request.ProductOrder;
+import com.oying.modules.sh.domain.request.StatusOrder;
 import com.oying.modules.sh.domain.request.SubmitOrder;
 import com.oying.modules.sh.domain.vo.OrderInfo;
 import com.oying.modules.sh.domain.vo.OrderResponse;
@@ -173,7 +174,9 @@
         productSnapshotService.saveBatch(snapshots);
 
         order.setProductSnapshots(new HashSet<>(snapshots));
-        operationLogService.create(order, addressSnapshot);
+        OrderResponse response = new OrderResponse(order, addressSnapshot, null);
+
+        operationLogService.create(response, OrderStatusEnum.ZERO);
         return order;
     }
 
@@ -235,18 +238,22 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public OrderResponse getByOrderNum(String orderNum) {
-        OrderResponse response = new OrderResponse();
-        response.setOrder(orderMapper.getByOrderNum(orderNum));
-        response.setAddress(addressSnapshotService.queryByOrderNum(orderNum));
-        response.setOperation(operationLogService.getByOrderNum(orderNum));
-        return response;
+    public void statusOrder(StatusOrder statusOrder) {
+        operationLog(getByOrderNum(statusOrder.getOrderNum()), statusOrder.getStatus());
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void paySuccess(OrderResponse order) {
-        orderMapper.updateOrderStatus(order.getOrder().getOrderNum(), OrderStatusEnum.TWO.getKey(), OrderStatusEnum.TWO.getValue());
+    public OrderResponse getByOrderNum(String orderNum) {
+        return new OrderResponse(orderMapper.getByOrderNum(orderNum),
+                addressSnapshotService.queryByOrderNum(orderNum),
+                operationLogService.getByOrderNum(orderNum));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void operationLog(OrderResponse order, OrderStatusEnum stateEnum) {
+        operationLogService.create(order, stateEnum);
     }
 
     @Override
@@ -258,25 +265,30 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void closeOrder(String orderNum) {
-        Order order = orderMapper.getByOrderNum(orderNum);
+        OrderResponse response = getByOrderNum(orderNum);
+        Order order = response.getOrder();
         if (order == null) {
             throw new BadRequestException("订单不存在");
+        }
+        if (!SecurityUtils.getCurrentUserId().equals(order.getUserId())) {
+            throw new BadRequestException("不能修改他人订单");
+        }
+        if (!order.getPayState().equals(PayStateEnum.NOTPAY.getKey())) {
+            throw new BadRequestException(PayStateEnum.getValue(order.getPayState()));
         }
         PayTypeEnum anEnum = PayTypeEnum.find(order.getPayType());
         switch (anEnum) {
             case HWC:
             case HWC2:
                 JSONObject object = swiftPassService.query(orderNum, anEnum);
-                if (object.getString("trade_state").equals(PayStateEnum.SUCCESS.getKey())) {
-                    throw new BadRequestException("订单已支付");
-                }
-                if (object.getString("trade_state").equals(PayStateEnum.CLOSED.getKey())) {
-                    throw new BadRequestException("订单已关闭");
+                if (object.getString("trade_state").equals(PayStateEnum.NOTPAY.getKey())) {
+                    throw new BadRequestException(PayStateEnum.getValue(order.getPayState()));
                 }
                 swiftPassService.closeOrder(orderNum, anEnum);
                 break;
         }
-        orderMapper.updateCloseStatus(orderNum, PayStateEnum.CLOSED.getKey());
+        operationLogService.create(response, OrderStatusEnum.NINE);
+        orderMapper.updateCloseStatus(orderNum, PayStateEnum.CLOSED.getKey(), PayStateEnum.CLOSED.getValue());
     }
 
     @Override

--
Gitblit v1.9.3