From de0026f420814a34a0e94c2de702b563b7e9234e Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 31 七月 2024 16:10:12 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java |   36 +++++++++++++++++++++++++++++++++---
 1 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
index fb98337..bdee7c4 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -34,6 +34,7 @@
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
+import com.ruoyi.common.core.utils.page.CollUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.system.api.constants.ConfigEnum;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
@@ -247,7 +248,19 @@
             auctionGoodsOrg.setSharePic(dto.getSharePic());
             this.updateById(auctionGoodsOrg);
         }
-        auctionAsyncMethodService.auctionGoodsScheduleTask(Lists.newArrayList(auctionGoods));
+        if (auctionGoods.getEndTime().isBefore(LocalDateTime.now())) {
+            // 退回剩余库存
+            GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
+            goodsStockUpdDTO.setAuctionStock(auctionGoods.getAuctionStock());
+            goodsStockUpdDTO.setGoodsSkuId(auctionGoods.getGoodsSkuId());
+            goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
+                    SecurityConstants.INNER);
+            auctionGoods.setStartStatus(AuctionStartStatusEnum.ENDED);
+            this.updateById(auctionGoods);
+        } else {
+            auctionAsyncMethodService.auctionGoodsScheduleTask(Lists.newArrayList(auctionGoods));
+        }
+
     }
 
     /**
@@ -409,7 +422,8 @@
                 for (OrderAuctionBond orderAuctionBond : auctionBondList) {
 
                     // 已中标需在订单完成后退保证金
-                    if (unRefundMemberIdList.contains(orderAuctionBond.getMemberId())) {
+                    if (unRefundMemberIdList.contains(orderAuctionBond.getMemberId())
+                            || Objects.isNull(orderAuctionBond.getBond())) {
                         continue;
                     }
                     RefundDTO refundDTO = new RefundDTO();
@@ -420,10 +434,10 @@
                 // 远程调用订单服务进行退款
                 Map<String, Object> data = orderClient.refund(refundDTOList,
                         SecurityConstants.INNER).getData();
+                if (CollUtils.isNotEmpty(data)) {
                 // 处理退款返回结果
                 List<String> successfulOrders = new ArrayList<>();
                 List<String> failedOrders = new ArrayList<>();
-
                 data.forEach((key, value) -> {
                     if ((boolean) value) {
                         successfulOrders.add(key);
@@ -439,9 +453,11 @@
                     }
                     return null;
                 }).filter(Objects::nonNull).collect(Collectors.toList());
+
                 // 远程调用订单服务修改订单状态
                 orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.REFUNDED,
                         SecurityConstants.INNER);
+                }
             }
         }
     }
@@ -901,6 +917,19 @@
         this.updateById(auctionGoods);
     }
 
+    /**
+     * 根据商品id获取正在进行的拍卖商品
+     *
+     * @param id 商品id
+     * @return
+     */
+    @Override
+    public List<AuctionGoods> getAuctionGoodsBySkuId(Long id) {
+        return this.list(new LambdaQueryWrapper<AuctionGoods>().eq(AuctionGoods::getGoodsSkuId,
+                        id).eq(AuctionGoods::getListingStatus, ListingStatusEnum.ON_SHELVES)
+                .eq(AuctionGoods::getStartStatus, AuctionStartStatusEnum.IN_AUCTION));
+    }
+
     public static void main(String[] args) throws JsonProcessingException {
         Map<String, Object> map = new ConcurrentHashMap<>();
         map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS);
@@ -910,4 +939,5 @@
         String msg = objectMapper.writeValueAsString(map);
         System.out.println(msg);
     }
+
 }

--
Gitblit v1.7.1