From 20b8e50ddb2daf21d65a43ec363e5925edb5b10e Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期三, 31 七月 2024 18:40:34 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java |   79 ++++++++++++++++++++++++++++++++-------
 1 files changed, 65 insertions(+), 14 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 1752f91..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
@@ -12,8 +12,10 @@
 import com.ruoyi.auction.controller.management.vo.MgtAuctionBidRecordVO;
 import com.ruoyi.auction.controller.management.vo.MgtAuctionGoodsVO;
 import com.ruoyi.auction.domain.AuctionBidRecord;
+import com.ruoyi.auction.domain.AuctionBondJl;
 import com.ruoyi.auction.domain.AuctionBrowseRecord;
 import com.ruoyi.auction.domain.MemberAuctionCollection;
+import com.ruoyi.auction.mapper.AuctionBondJlMapper;
 import com.ruoyi.auction.mapper.AuctionGoodsMapper;
 import com.ruoyi.auction.service.IAuctionBidRecordService;
 import com.ruoyi.auction.service.IAuctionBrowseRecordService;
@@ -32,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;
@@ -114,6 +117,9 @@
 
     @Resource
     private IAuctionBrowseRecordService iAuctionBrowseRecordService;
+
+    @Resource
+    private AuctionBondJlMapper auctionBondJlMapper;
 
     /**
      * 获取拍卖商品列表的分页数据
@@ -242,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));
+        }
+
     }
 
     /**
@@ -404,20 +422,22 @@
                 for (OrderAuctionBond orderAuctionBond : auctionBondList) {
 
                     // 已中标需在订单完成后退保证金
-                    if (unRefundMemberIdList.contains(orderAuctionBond.getMemberId())) {
+                    if (unRefundMemberIdList.contains(orderAuctionBond.getMemberId())
+                            || Objects.isNull(orderAuctionBond.getBond())) {
                         continue;
                     }
                     RefundDTO refundDTO = new RefundDTO();
                     refundDTO.setOrderNo(orderAuctionBond.getOrderNo());
                     refundDTO.setAmount(orderAuctionBond.getBond());
+                    refundDTOList.add(refundDTO);
                 }
                 // 远程调用订单服务进行退款
                 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);
@@ -433,8 +453,11 @@
                     }
                     return null;
                 }).filter(Objects::nonNull).collect(Collectors.toList());
+
                 // 远程调用订单服务修改订单状态
-                orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID,SecurityConstants.INNER);
+                orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.REFUNDED,
+                        SecurityConstants.INNER);
+                }
             }
         }
     }
@@ -446,12 +469,23 @@
             List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(auctionGoodsListDTO.getGoodsSkuName(),
                             SecurityConstants.INNER)
                     .getData();
-            goodsSkuIdList = goodsSku.stream().map(GoodsSku::getId)
-                    .collect(Collectors.toSet());
+            if (goodsSku!=null){
+                goodsSkuIdList = goodsSku.stream().map(GoodsSku::getId)
+                        .collect(Collectors.toSet());
+            }
+
         }
 
         AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO();
-        auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList);
+        if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) {
+            if (goodsSkuIdList != null) {
+                auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList);
+            } else {
+                goodsSkuIdList = new HashSet<>();
+                goodsSkuIdList.add(0L);
+                auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList);
+            }
+        }
 
         Page<AuctionGoodsListVO> page = new Page<>();
         page.setSize(auctionGoodsListDTO.getPageSize());
@@ -521,7 +555,6 @@
         auctionGoodsinfoVO.setSpec(goodsSkuOne.getSpec());
         auctionGoodsinfoVO.setSpecUnit(goodsSkuOne.getSpecUnit());
         auctionGoodsinfoVO.setShareTitle(goodsSkuOne.getShareTitle());
-        auctionGoodsinfoVO.setSpecUnit(goodsSkuOne.getSpecUnit());
         auctionGoodsinfoVO.setDetail(goodsSkuOne.getDetail());
         auctionGoodsinfoVO.setBond(byId.getBond());
         auctionGoodsinfoVO.setYears(goodsSkuOne.getYears());
@@ -564,15 +597,18 @@
         }else {
             auctionGoodsinfoVO.setIsCollection(1);
         }
-        List<OrderAuctionBond> datas = orderClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData();
-       if(datas!=null){
-           if (datas.size()>0){
+        LambdaQueryWrapper<AuctionBondJl> wrapper8=Wrappers.lambdaQuery();
+        wrapper8.eq(AuctionBondJl::getAuctionGoodsId,byId.getId());
+        wrapper8.eq(AuctionBondJl::getMemberId,auctionGoodsListDTO.getMemberId());
+        wrapper8.eq(AuctionBondJl::getIsState,0);
+        AuctionBondJl auctionBondJl = auctionBondJlMapper.selectOne(wrapper8);
+       if(auctionBondJl!=null){
                auctionGoodsinfoVO.setIsApply(2);
            }else{
                auctionGoodsinfoVO.setIsApply(1);
            }
 
-       }
+
 
         LocalDateTime now = LocalDateTime.now();
         LocalDateTime newTime7 = now.minusDays(7);
@@ -589,6 +625,7 @@
             AuctionBrowseRecord auctionBrowseRecord=new AuctionBrowseRecord();
             auctionBrowseRecord.setBrowseType(AuctionOrderTypeEnum.REGULAR_ITEMS);
             auctionBrowseRecord.setMemberId(auctionGoodsListDTO.getMemberId());
+            auctionBrowseRecord.setSkuName(goodsSkuOne.getSkuName());
             auctionBrowseRecord.setTargetId(auctionGoodsListDTO.getGoodsSkuId());
             iAuctionBrowseRecordService.save(auctionBrowseRecord);
         }
@@ -699,8 +736,7 @@
     @Transactional
     public void endAuctionGoods(Long id) throws JsonProcessingException {
         AuctionGoods auctionGoods = this.getById(id);
-        if (StringUtils.isNotNull(auctionGoods) && auctionGoods.getListingStatus().equals(
-                ListingStatusEnum.ON_SHELVES) && auctionGoods.getStartStatus()
+        if (StringUtils.isNotNull(auctionGoods) && auctionGoods.getStartStatus()
                 .equals(AuctionStartStatusEnum.IN_AUCTION)) {
             // 远程调用商品服务,获取商品信息
             GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(auctionGoods.getGoodsSkuId(),
@@ -805,6 +841,7 @@
                         RefundDTO refundDTO = new RefundDTO();
                         refundDTO.setOrderNo(orderAuctionBond.getOrderNo());
                         refundDTO.setAmount(orderAuctionBond.getBond());
+                        refundDTOList.add(refundDTO);
                     }
                     // 远程调用订单服务进行退款
                     Map<String, Object> data = orderClient.refund(refundDTOList,
@@ -880,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);
@@ -889,4 +939,5 @@
         String msg = objectMapper.writeValueAsString(map);
         System.out.println(msg);
     }
+
 }

--
Gitblit v1.7.1