From ed4f07531b9cb0794e976a14cee3b591dec8d4f6 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期六, 20 七月 2024 21:22:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 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 5870ba1..3937bb6 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
@@ -8,6 +8,7 @@
 import com.ruoyi.common.core.enums.AuditStatusEnum;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.PaymentMethodEnum;
+import com.ruoyi.common.core.enums.PointStatusEnum;
 import com.ruoyi.common.core.enums.RequestTypeEnum;
 import com.ruoyi.common.core.enums.ReturnRequestStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
@@ -28,11 +29,14 @@
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.LogisticsDTO;
 import com.ruoyi.system.api.domain.dto.MemberDTO;
+import com.ruoyi.system.api.domain.dto.MemberPointsDTO;
 import com.ruoyi.system.api.domain.dto.OrderReturnDTO;
+import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
 import com.ruoyi.system.api.domain.vo.Express100VO;
 import com.ruoyi.system.api.domain.vo.OrderReturnVO;
 import com.ruoyi.system.api.feignClient.MemberClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
+import io.seata.spring.annotation.GlobalTransactional;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
@@ -248,7 +252,8 @@
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
+    @Transactional
     public void confirmReturnRequest(Long id) {
         OrderReturnRequest orderReturnRequest = getOrderReturnRequest(id);
         if (orderReturnRequest.getStatus()
@@ -268,14 +273,31 @@
         String orderNo = order.getOrderNo();
         Paylog paylog = paylogService.lambdaQuery().eq(Paylog::getOutTradeNo, orderNo)
                 .last("limit 1").one();
-        PaymentMethodEnum paymentMethod = order.getPaymentMethod();
         if (StringUtils.isNotNull(paylog)) {
+            PaymentMethodEnum paymentMethod = order.getPaymentMethod();
             boolean result = handleRefund(paymentMethod, paylog, orderNo);
             if (result) {
                 paylog.setState(3);// 已退款
                 paylogService.updateById(paylog);
             }
         }
+        // 扣除订单积分
+        Member member = memberClient.getMembeOne(order.getMemberId(), SecurityConstants.INNER)
+                .getData();
+        if (StringUtils.isNotNull(member)) {
+            MemberPointsDTO memberPointsDTO = new MemberPointsDTO();
+            memberPointsDTO.setMemberId(order.getMemberId());
+            memberPointsDTO.setPointsType(1);
+            memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE);
+            memberPointsDTO.setPoints(order.getPoints());
+            memberClient.addMemberPoints(memberPointsDTO);
+
+            updMembeOneDTO updMembeOneDTO = new updMembeOneDTO();
+            updMembeOneDTO.setMemberId(order.getMemberId());
+            updMembeOneDTO.setType(2);
+            updMembeOneDTO.setTotalPoints(Math.max(member.getTotalPoints() - order.getPoints(), 0));
+            memberClient.updMembeOne(updMembeOneDTO, SecurityConstants.INNER);
+        }
     }
 
     private boolean handleRefund(PaymentMethodEnum paymentMethod, Paylog paylog, String orderNo) {

--
Gitblit v1.7.1