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

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java |   94 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 74 insertions(+), 20 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 987e1c0..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));
+        }
+
     }
 
     /**
@@ -326,7 +344,7 @@
                     }
                 } else {
                     // 中标
-                    for (int i = 0; i < auctionGoods.getAuctionStock(); i++) {
+                    for (int i = 0; i < auctionBidRecords.size(); i++) {
                         AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i);
                         auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
                         auctionBidRecordList.add(auctionBidRecord);
@@ -335,7 +353,7 @@
                     GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                     goodsStockUpdDTO.setGoodsSkuId(auctionGoods.getGoodsSkuId());
                     goodsStockUpdDTO.setAuctionStock(
-                            auctionGoods.getAuctionStock() - auctionBidRecordList.size());
+                            auctionGoods.getAuctionStock() - auctionBidRecords.size());
                     goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
                             SecurityConstants.INNER);
                 }
@@ -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,12 +597,18 @@
         }else {
             auctionGoodsinfoVO.setIsCollection(1);
         }
-        List<OrderAuctionBond> datas = orderClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData();
-        if (datas.size()>0){
-            auctionGoodsinfoVO.setIsApply(2);
-        }else{
-            auctionGoodsinfoVO.setIsApply(1);
-        }
+        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);
@@ -586,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);
         }
@@ -651,7 +691,7 @@
         Page<AuctionGoodsListVO> page = new Page<>();
         page.setSize(auctionGoodsListDTO.getPageSize());
         page.setCurrent(auctionGoodsListDTO.getPageCurr());
-        List<AuctionGoods> auctionGoodsPgeList = auctionGoodsMapper.getAuctionGoodsPgeList(page, auctionGoodsListPageDTO);
+        List<AuctionGoods> auctionGoodsPgeList = auctionGoodsMapper.getAuctionGoodsPgeList1(page, auctionGoodsListPageDTO);
         List<AuctionGoodsListVO> auctionGoodsVOS=new ArrayList<>();
         for (AuctionGoods auctionGoods:auctionGoodsPgeList){
             AuctionGoodsListVO auctionGoodsVO=new AuctionGoodsListVO();
@@ -696,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(),
@@ -718,7 +757,7 @@
                         }
                     } else {
                         // 中标
-                        for (int i = 0; i < auctionGoods.getAuctionStock(); i++) {
+                        for (int i = 0; i < auctionBidRecords.size(); i++) {
                             AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i);
                             auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
                             auctionBidRecordList.add(auctionBidRecord);
@@ -802,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,
@@ -877,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);
@@ -886,4 +939,5 @@
         String msg = objectMapper.writeValueAsString(map);
         System.out.println(msg);
     }
+
 }

--
Gitblit v1.7.1