From cd55aff7eea06f77a8f712cef1ad2744c44d0f8a Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 20 六月 2024 18:56:16 +0800
Subject: [PATCH] 1.修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java |   64 ++++++++++++++++++++++++++++---
 1 files changed, 57 insertions(+), 7 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
index 02c1ec3..9ec9827 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -20,10 +20,17 @@
 import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.domain.vo.PayInfoVO;
 import com.ruoyi.system.api.feignClient.AuctionClient;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 import javax.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -37,6 +44,7 @@
  * @author mitao
  * @since 2024-05-16
  */
+@Slf4j
 @Service
 public class OrderAuctionBondServiceImpl extends ServiceImpl<OrderAuctionBondMapper, OrderAuctionBond> implements IOrderAuctionBondService {
 
@@ -110,19 +118,22 @@
     @Override
     @Transactional(propagation = Propagation.REQUIRES_NEW)
     public void updateOrderAuctionBondStatus(List<Long> ids, BondStatusEnum bondStatusEnum) {
-        this.lambdaUpdate().set(OrderAuctionBond::getBoundStatus, bondStatusEnum)
-                .in(OrderAuctionBond::getId, ids).update();
+        for (Long id:ids){
+            OrderAuctionBond byId = this.getById(id);
+            byId.setBoundStatus(bondStatusEnum);
+            this.updateById(byId);
+        }
     }
 
     @Override
     public PayInfoVO SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
         PayInfoVO payInfoVO = new PayInfoVO();
-        if (memberAuctionSalesroomBondDTO.getBondType() == 2) {
-            AuctionSalesroom data = auctionClient.getauctionSalesroomOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
+        if (memberAuctionSalesroomBondDTO.getBondType() == 1) {
+            AuctionGoods data = auctionClient.getauctionGoodsOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
             if (data.getBond().intValue() == 0) {
                 OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
                 orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
-                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
+                orderAuctionBond.setAuctionGoodsId(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
                 orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
                 orderAuctionBond.setBond(data.getBond());
                 orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
@@ -136,7 +147,7 @@
             } else {
                 OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
                 orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
-                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
+                orderAuctionBond.setAuctionGoodsId(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
                 orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
                 orderAuctionBond.setBond(data.getBond());
                 orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY);
@@ -160,7 +171,8 @@
                 payInfoVO.setBody("保证金");
             }
         } else {
-            AuctionGoods data = auctionClient.getauctionGoodsOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
+            AuctionSalesroom data = auctionClient.getauctionSalesroomOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
+
             if (data.getBond().intValue() == 0) {
                 OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
                 orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
@@ -202,4 +214,42 @@
         }
         return payInfoVO;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    public void returnBondByAuctionGoodsId(Long id) {
+        List<OrderAuctionBond> list = this.lambdaQuery().eq(OrderAuctionBond::getAuctionGoodsId, id)
+                .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID).list();
+        Set<String> orderNoSet = list.stream().map(OrderAuctionBond::getOrderNo)
+                .collect(Collectors.toSet());
+        List<RefundDTO> refundDTOList = list.stream().map(item -> {
+            RefundDTO refundDTO = new RefundDTO();
+            refundDTO.setAmount(item.getBond());
+            refundDTO.setOrderNo(item.getOrderNo());
+            return refundDTO;
+        }).collect(Collectors.toList());
+        Map<String, Object> data = iPaylogService.refund(refundDTOList);
+        // 处理退款返回结果
+        List<String> successfulOrders = new ArrayList<>();
+        List<String> failedOrders = new ArrayList<>();
+
+        data.forEach((key, value) -> {
+            if ((boolean) value) {
+                successfulOrders.add(key);
+            } else {
+                failedOrders.add(key);
+            }
+        });
+        log.info("订单号:{},退款失败", failedOrders);
+        // 退款成功的订单修改状态
+        List<OrderAuctionBond> collect = list.stream().map(bond -> {
+            if (successfulOrders.contains(bond.getOrderNo())) {
+                bond.setBoundStatus(BondStatusEnum.REFUNDED);
+                return bond;
+            }
+            return null;
+        }).filter(Objects::nonNull).collect(Collectors.toList());
+        this.updateBatchById(collect);
+    }
+
 }

--
Gitblit v1.7.1