From 855921d253a4854d4fb78b83bfcf7c6e93b3f68d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 29 五月 2024 19:43:50 +0800
Subject: [PATCH] 1.提交【管理后台】团购、拍卖商品立即结束退款处理 2.提交【管理后台】拍卖场管理部分接口

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java |   43 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index a51d3a5..6423dd4 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -7,7 +7,7 @@
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.enums.GroupStatusEnum;
 import com.ruoyi.common.core.enums.ListingStatusEnum;
-import com.ruoyi.common.core.enums.PaymentMethodEnum;
+import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -27,11 +27,15 @@
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
+import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
+import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -221,13 +225,36 @@
             //查询关联订单
             List<Order> orderList = orderClient.getOrderByGroupPurchaseId(id,
                     SecurityConstants.INNER).getData();
-            for (Order order : orderList) {
-                if (PaymentMethodEnum.ALIPAY.equals(order.getPaymentMethod())) {
-                    //TODO 退款
-                }
-                if (PaymentMethodEnum.WECHAT.equals(order.getPaymentMethod())) {
-                    //TODO 退款
-                }
+
+            List<RefundDTO> refundDTOList = orderList.stream().map(order -> {
+                RefundDTO refundDTO = new RefundDTO();
+                refundDTO.setOrderNo(order.getOrderNo());
+                refundDTO.setAmount(order.getTotalAmount());
+                return refundDTO;
+            }).collect(Collectors.toList());
+            Map<String, Object> data = orderClient.refund(refundDTOList,
+                    SecurityConstants.INNER).getData();
+            if (StringUtils.isNotEmpty(data)) {
+                // 处理退款返回结果
+                List<String> successfulOrders = new ArrayList<>();
+                List<String> failedOrders = new ArrayList<>();
+
+                data.forEach((key, value) -> {
+                    if ((boolean) value) {
+                        successfulOrders.add(key);
+                    } else {
+                        failedOrders.add(key);
+                    }
+                });
+                // 处理退款结果
+                List<Order> updateOrderList = orderList.stream()
+                        .filter(order -> successfulOrders.contains(order.getOrderNo()))
+                        .peek(order -> {
+                            order.setOrderStatus(OrderStatusEnum.CANCELED);
+                        }).collect(Collectors.toList());
+                List<OrderUpdDTO> orderUpdDTOS = BeanUtils.copyList(updateOrderList,
+                        OrderUpdDTO.class);
+                orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER);
             }
         } else {
             this.lambdaUpdate()

--
Gitblit v1.7.1