From 357bf93f7fa56e414ad54d4fbfbf6bd97da5b1d2 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 26 七月 2024 08:57:54 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
index 722e517..2aeea8f 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
@@ -40,6 +40,7 @@
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.regex.Matcher;
@@ -236,13 +237,38 @@
         if (orderReturnRequest.getAuditStatus() != AuditStatusEnum.TO_BE_REVIEWED) {
             throw new ServiceException("该售后已被审核");
         }
+        Order order = orderMapper.selectById(orderReturnRequest.getOrderId());
         if (dto.getAuditStatus() == AuditStatusEnum.PASSED) {
-            orderReturnRequest.setStatus(ReturnRequestStatusEnum.TO_BE_RETURNED);
+            if (orderReturnRequest.getRequestType()
+                    .equals(RequestTypeEnum.REFUNDS_AND_RETURNS)) {
+                orderReturnRequest.setStatus(ReturnRequestStatusEnum.TO_BE_RETURNED);
+            } else {
+                orderReturnRequest.setStatus(ReturnRequestStatusEnum.COMPLETED);
+
+                if (Objects.nonNull(order)) {
+                    Paylog paylog = paylogService.lambdaQuery()
+                            .eq(Paylog::getOutTradeNo, order.getOrderNo())
+                            .last("limit 1").one();
+                    if (StringUtils.isNotNull(paylog)) {
+                        PaymentMethodEnum paymentMethod = order.getPaymentMethod();
+                        boolean result = handleRefund(paymentMethod, paylog,
+                                paylog.getOutTradeNo());
+                        if (result) {
+                            paylog.setState(3);// 已退款
+                            paylogService.updateById(paylog);
+                        }
+                    }
+                }
+            }
             orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED);
         } else {
             orderReturnRequest.setStatus(ReturnRequestStatusEnum.REJECTED);
             orderReturnRequest.setAuditStatus(AuditStatusEnum.REJECTED);
             orderReturnRequest.setRefuseReason(dto.getRefuseComment());
+            if (Objects.nonNull(order)) {
+                order.setIsRequest(1);
+                orderMapper.updateById(order);
+            }
         }
         orderReturnRequest.setAuditTime(LocalDateTime.now());
         this.updateById(orderReturnRequest);

--
Gitblit v1.7.1