From 5df7e1b117d15f3ac1cf398ce2b0c17290774ade Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Mon, 14 Jul 2025 21:07:01 +0800
Subject: [PATCH] 订单流程

---
 oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java |   11 +++++++----
 oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java             |   12 ++++++------
 oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java                      |    2 +-
 oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java         |    2 +-
 4 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
index 404251a..da47970 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
@@ -61,7 +61,7 @@
                                     PayStateEnum stateEnum = PayStateEnum.NOTPAY;
                                     if ("0".equals(map.get("pay_result"))) {
                                         stateEnum = PayStateEnum.SUCCESS;
-                                        orderService.paySuccess(order);
+                                        orderService.operationLog(order);
                                     }
                                     orderService.updatePayStatus(map.get("out_trade_no"), stateEnum, map.get("pay_info"), map.get("time_end"));
                                     // 处理成功
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java
index 49f1dc7..4ac0a58 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java
@@ -47,7 +47,7 @@
 
     OrderResponse getByOrderNum(String orderNum);
 
-    void paySuccess(OrderResponse order);
+    void operationLog(OrderResponse order);
 
     void updatePayStatus(String outTradeNo, PayStateEnum stateEnum, String payInfo, String timeEnd);
 
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
index d4b2546..a35bddc 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
@@ -4,6 +4,8 @@
 import com.oying.modules.sh.domain.Order;
 import com.oying.modules.sh.domain.OrderAddressSnapshot;
 import com.oying.modules.sh.domain.OrderOperationLog;
+import com.oying.modules.sh.domain.vo.OrderResponse;
+import com.oying.modules.sh.mapper.OrderMapper;
 import com.oying.utils.*;
 import com.oying.utils.enums.OrderStatusEnum;
 import lombok.RequiredArgsConstructor;
@@ -33,6 +35,7 @@
 public class OrderOperationLogServiceImpl extends ServiceImpl<OrderOperationLogMapper, OrderOperationLog> implements OrderOperationLogService {
 
     private final OrderOperationLogMapper orderOperationLogMapper;
+    private final OrderMapper orderMapper;
 
     @Override
     public PageResult<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria, Page<Object> page) {
@@ -58,9 +61,9 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void create(Order order, OrderAddressSnapshot addressSnapshot) {
-        Map<String, Object> map = new LinkedHashMap<>();
-        map.put("order", order);
-        map.put("address", addressSnapshot);
+        OrderResponse response = new OrderResponse();
+        response.setOrder(order);
+        response.setAddress(addressSnapshot);
         String username = SecurityUtils.getCurrentUsername();
         Timestamp time = new Timestamp(System.currentTimeMillis());
         OrderOperationLog resources = new OrderOperationLog();
@@ -70,7 +73,7 @@
         resources.setOperation(OrderStatusEnum.ZERO.getKey());
         resources.setOperationDescribe(OrderStatusEnum.ZERO.getValue());
         resources.setRemark(username + ":" + time + ">" + OrderStatusEnum.ZERO.getValue() + ":" + order.getOrderNum());
-        resources.setSnapshotData(JSON.toJSONString(map));
+        resources.setSnapshotData(JSON.toJSONString(response));
         resources.setOperationTime(time);
     }
 
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..f7e251a 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
@@ -245,7 +245,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void paySuccess(OrderResponse order) {
+    public void operationLog(OrderResponse order) {
         orderMapper.updateOrderStatus(order.getOrder().getOrderNum(), OrderStatusEnum.TWO.getKey(), OrderStatusEnum.TWO.getValue());
     }
 
@@ -262,16 +262,16 @@
         if (order == null) {
             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;

--
Gitblit v1.9.3