From a46a00bdc22da9ece8bb09ac7d6bcbdfbabdd6ab Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Thu, 31 Jul 2025 17:17:00 +0800
Subject: [PATCH] 退款订单-1

---
 oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java |   44 +++++++++++++++++++++-
 oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java                |    3 +
 oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java                |   32 ++++++++++++++++
 oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java       |    5 +-
 oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java                |    3 +
 5 files changed, 81 insertions(+), 6 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java b/oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java
new file mode 100644
index 0000000..3320573
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java
@@ -0,0 +1,32 @@
+package com.oying.modules.sh.domain.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @author xin
+ * @description
+ * @date 2025/7/20 17:17
+ */
+@Getter
+@Setter
+public class ReturnOrder {
+
+    @NotBlank
+    @ApiModelProperty(value = "订单号")
+    private String orderNum;
+    @NotBlank
+    @ApiModelProperty(value = "退货类型")
+    private String reason;
+    @NotBlank
+    @ApiModelProperty(value = "备注:退货描述")
+    private String remark;
+    @ApiModelProperty(value = "图片地址,多张','分割")
+    private String photos;
+    List<ProductOrder>  productOrders;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java
index c58992a..79a72cd 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java
@@ -3,6 +3,7 @@
 import com.oying.annotation.Log;
 import com.oying.modules.sh.domain.OrderReturn;
 import com.oying.modules.sh.domain.request.AuditOrderReturn;
+import com.oying.modules.sh.domain.request.ReturnOrder;
 import com.oying.modules.sh.service.OrderReturnService;
 import com.oying.modules.sh.domain.dto.OrderReturnQueryCriteria;
 import com.oying.utils.R;
@@ -53,7 +54,7 @@
     @Log("新增退款订单")
     @ApiOperation("新增退款订单")
     @PreAuthorize("@el.check('orderReturn:add')")
-    public ResponseEntity<Object> createOrderReturn(@Validated @RequestBody OrderReturn resources) {
+    public ResponseEntity<Object> createOrderReturn(@Validated @RequestBody ReturnOrder resources) {
         orderReturnService.create(resources);
         return new ResponseEntity<>(R.success(), HttpStatus.CREATED);
     }
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java
index 2aa81cf..3ba6a84 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.oying.modules.sh.domain.request.AuditOrderReturn;
+import com.oying.modules.sh.domain.request.ReturnOrder;
 import com.oying.utils.PageResult;
 
 /**
@@ -36,7 +37,7 @@
     * 创建
     * @param resources /
     */
-    void create(OrderReturn resources);
+    void create(ReturnOrder resources);
 
     /**
     * 编辑
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 1607580..10aa7b0 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
@@ -1,6 +1,7 @@
 package com.oying.modules.sh.service.impl;
 
 import com.alibaba.fastjson2.JSON;
+import com.oying.exception.BadRequestException;
 import com.oying.modules.sh.domain.OrderOperationLog;
 import com.oying.modules.sh.domain.vo.OrderResponse;
 import com.oying.modules.sh.mapper.OrderMapper;
@@ -55,15 +56,39 @@
     public synchronized void create(OrderResponse response, OrderStatusEnum statusEnum, String cardName) {
         String userType = ConstantsKey.BUYER;
         String username = null;
+        Timestamp time = new Timestamp(System.currentTimeMillis());
         switch (statusEnum) {
+            case NINE:
+                if (response.getOrder().getOrderStatus().equals(OrderStatusEnum.NINE.getKey())) {
+                    throw new BadRequestException("订单已取消");
+                }
+                if (response.getOrder().getOrderStatus() > OrderStatusEnum.TWO.getKey()) {
+                    throw new BadRequestException(OrderStatusEnum.getValue(response.getOrder().getOrderStatus()));
+                }
             case ZERO:
             case ONE:
             case EIGHT:
-            case NINE:
                 userType = ConstantsKey.BUYER;
                 break;
             case TWO:
                 username = response.getOrder().getUsername();
+                OrderOperationLog log1 = new OrderOperationLog();
+                log1.setOrderNum(response.getOrder().getOrderNum());
+                log1.setUsername(username);
+                log1.setUserType(userType);
+                log1.setOperation(OrderStatusEnum.ONE.getKey());
+                log1.setOperationDescribe(OrderStatusEnum.ONE.getValue());
+                log1.setRemark(username + ":" + time + ">" + OrderStatusEnum.ONE.getValue() + ":" + response.getOrder().getOrderNum());
+                Map<String, Object> map1 = new LinkedHashMap<>();
+                response.getOrder().setOrderStatus(OrderStatusEnum.ONE.getKey());
+                response.getOrder().setOrderStatusDescribe(OrderStatusEnum.ONE.getValue());
+                map1.put("order", response.getOrder());
+                map1.put("address", response.getAddress());
+                log1.setSnapshotData(JSON.toJSONString(map1));
+                log1.setOperationTime(time);
+                orderOperationLogMapper.insert(log1);
+                response.getOrder().setOrderStatus(OrderStatusEnum.TWO.getKey());
+                response.getOrder().setOrderStatusDescribe(OrderStatusEnum.TWO.getValue());
             case FOUR:
                 userType = ConstantsKey.MERCHANT;
                 break;
@@ -73,13 +98,28 @@
             case SIX:
             case SEVEN:
                 userType = ConstantsKey.RIDER;
+                username = SecurityUtils.getCurrentUsername();
+                OrderOperationLog log2 = new OrderOperationLog();
+                log2.setOrderNum(response.getOrder().getOrderNum());
+                log2.setUsername(username);
+                log2.setUserType(userType);
+                log2.setOperation(statusEnum.getKey());
+                log2.setOperationDescribe(statusEnum.getValue());
+                log2.setRemark(username + ":" + time + ">" + statusEnum.getValue() + ":" + response.getOrder().getOrderNum());
+                Map<String, Object> map2 = new LinkedHashMap<>();
+                map2.put("order", response.getOrder());
+                map2.put("address", response.getAddress());
+                log2.setSnapshotData(JSON.toJSONString(map2));
+                log2.setOperationTime(time);
+                orderOperationLogMapper.insert(log2);
+                orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
+                statusEnum = OrderStatusEnum.EIGHT;
                 break;
             default:
         }
         if (username == null) {
             username = SecurityUtils.getCurrentUsername();
         }
-        Timestamp time = new Timestamp(System.currentTimeMillis());
         OrderOperationLog resources = new OrderOperationLog();
         resources.setOrderNum(response.getOrder().getOrderNum());
         resources.setUsername(username);
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java
index f8fe21d..7be0520 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.oying.modules.sh.domain.OrderReturn;
 import com.oying.modules.sh.domain.request.AuditOrderReturn;
+import com.oying.modules.sh.domain.request.ReturnOrder;
 import com.oying.utils.FileUtil;
 import com.oying.utils.enums.ReturnAuditEnum;
 import lombok.RequiredArgsConstructor;
@@ -59,8 +60,8 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void create(OrderReturn resources) {
-        orderReturnMapper.insert(resources);
+    public void create(ReturnOrder resources) {
+        
     }
 
     @Override

--
Gitblit v1.9.3