From 9bbd528db300cce1f373d1c2e812f67eb380cecd Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 31 七月 2024 23:40:07 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java       |    1 
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml                    |    1 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java |  253 ++++++++++++++++++++++-------------------
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java   |    5 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                |   62 ++++++---
 5 files changed, 180 insertions(+), 142 deletions(-)

diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
index 236c277..7ec091d 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -108,6 +108,7 @@
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -115,6 +116,8 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.util.EntityUtils;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -174,6 +177,9 @@
 
     @Resource
     private RemoteFileService remoteFileService;
+
+    @Resource
+    private RedissonClient redissonClient;
     public static RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(5000).build();
     // 配置您申请的KEY,在个人中心->我的数据,接口名称上方查看
     public static final String APPKEY = "";
@@ -1038,9 +1044,8 @@
     }
 
     @Override
-    public PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomList(MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) {
-        MemberAuctionSalesroomDTO memberAuctionSalesroomDTO =new MemberAuctionSalesroomDTO();
-        memberAuctionSalesroomDTO.setMemberId(MemberAuctionSalesroomDTO.getMemberId());
+    public PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomList(
+            MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) {
         List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData();
         Set<Long> goodsSkuIdList = null;
         goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId)
@@ -1064,9 +1069,10 @@
 
         }*/
 
-        Page<AuctionSalesroom> page = new Page<>();
-        page.setSize(memberAuctionSalesroomDTO.getPageSize());
-        page.setCurrent(memberAuctionSalesroomDTO.getPageCurr());
+        Page<AuctionSalesroom> page = new Page<>(memberAuctionSalesroomDTO.getPageCurr(),
+                memberAuctionSalesroomDTO.getPageSize());
+        // page.setSize(memberAuctionSalesroomDTO.getPageSize());
+        // page.setCurrent(memberAuctionSalesroomDTO.getPageCurr());
         LambdaQueryWrapper<AuctionSalesroom> wrapper1=Wrappers.lambdaQuery();
         if (goodsSkuIdList.size()>0){
             wrapper1.in(AuctionSalesroom::getId,goodsSkuIdList);
@@ -1075,12 +1081,13 @@
             goodsSkuIdList1.add(0L);
             wrapper1.in(AuctionSalesroom::getId,goodsSkuIdList);
         }
-        if (MemberAuctionSalesroomDTO.getSalesroomName()!=null){
-            wrapper1.like(AuctionSalesroom::getSalesroomName,MemberAuctionSalesroomDTO.getSalesroomName());
+        if (memberAuctionSalesroomDTO.getSalesroomName() != null) {
+            wrapper1.like(AuctionSalesroom::getSalesroomName,
+                    memberAuctionSalesroomDTO.getSalesroomName());
         }
         wrapper1.eq(AuctionSalesroom::getDelFlag,0);
-        if(MemberAuctionSalesroomDTO.getStatus()!=4){
-             wrapper1.eq(AuctionSalesroom::getStatus,MemberAuctionSalesroomDTO.getStatus());
+        if (memberAuctionSalesroomDTO.getStatus() != 4) {
+            wrapper1.eq(AuctionSalesroom::getStatus, memberAuctionSalesroomDTO.getStatus());
         }
         wrapper1.last("ORDER BY\n" +
                 "        CASE\n" +
@@ -1096,7 +1103,7 @@
             auctionSalesroom.setSalesroomId(auctionSalesroom.getId());
             MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1=new MemberAuctionSalesroomDTO();
             memberAuctionSalesroomDTO1.setAuctionSalesroomId(auctionSalesroom.getId());
-            memberAuctionSalesroomDTO1.setMemberId(MemberAuctionSalesroomDTO.getMemberId());
+            memberAuctionSalesroomDTO1.setMemberId(memberAuctionSalesroomDTO.getMemberId());
             auctionSalesroom.setIsBond(2);
             List<OrderAuctionBond> data1 = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO1, SecurityConstants.INNER).getData();
             if (data1.size()>0){
@@ -1249,53 +1256,51 @@
         MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(id, Boolean.TRUE);
         MgtAuctionSalesroomScreenVO vo = BeanUtils.copyBean(
                 mgtAuctionSalesroomVO, MgtAuctionSalesroomScreenVO.class);
-        if (vo.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) {
-            List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS();
-            if (StringUtils.isNotEmpty(auctionSalesroomGoodsVOS)) {
-                List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream()
-                        .peek(goods -> {
-                            List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
-                                    .eq(AuctionBidRecord::getTargetId, goods.getId())
-                                    .eq(AuctionBidRecord::getAuctionType,
-                                            AuctionOrderTypeEnum.AUCTION_ITEMS)
-                                    .list();
-                            if (StringUtils.isNotEmpty(list)) {
-                                long bidCount = list.stream()
-                                        .filter(item -> BidStatusEnum.SUCCESSFUL.equals(
-                                                item.getStatus()))
-                                        .count();
-                                goods.setBidCount((int) bidCount);
-                                goods.setBidQuantity((int) bidCount);
-                                goods.setBidPersonCount(list.size());
-                            }
-                            if (goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) {
-                                vo.setCurrentAuctionSalesroomGoods(goods);
-                            }
-                        }).collect(Collectors.toList());
-                vo.setAuctionSalesroomGoodsVOS(collect);
-                if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) {
-                    int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods());
-                    if (collect.size() > 1 && index < collect.size() - 1) {
-                        vo.setNextAuctionSalesroomGoods(collect.get(index + 1));
-                    }
-                    // 分页查询当前拍品出价信息
-                    List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
-                            .eq(AuctionBidRecord::getTargetId,
-                                    vo.getCurrentAuctionSalesroomGoods().getId())
-                            .eq(AuctionBidRecord::getAuctionType,
-                                    AuctionOrderTypeEnum.AUCTION_ITEMS)
-                            .list();
-                    if (StringUtils.isNotEmpty(list)) {
-                        vo.setMgtAuctionBidRecordVOList(CollUtils.emptyList());
-                    }
-                    vo.setMgtAuctionBidRecordVOList(
-                            BeanUtils.copyList(list, MgtAuctionBidRecordVO.class));
-                } else {
-                    Optional<MgtAuctionSalesroomGoodsVO> first = collect.stream()
-                            .filter(c -> c.getStatus().equals(AuctionGoodsStatusEnum.WAITING))
-                            .findFirst();
-                    vo.setNextAuctionSalesroomGoods(first.orElse(null));
+        List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS();
+        if (StringUtils.isNotEmpty(auctionSalesroomGoodsVOS)) {
+            List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream()
+                    .peek(goods -> {
+                        List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
+                                .eq(AuctionBidRecord::getTargetId, goods.getId())
+                                .eq(AuctionBidRecord::getAuctionType,
+                                        AuctionOrderTypeEnum.AUCTION_ITEMS)
+                                .list();
+                        if (StringUtils.isNotEmpty(list)) {
+                            long bidCount = list.stream()
+                                    .filter(item -> BidStatusEnum.SUCCESSFUL.equals(
+                                            item.getStatus()))
+                                    .count();
+                            goods.setBidCount((int) bidCount);
+                            goods.setBidQuantity((int) bidCount);
+                            goods.setBidPersonCount(list.size());
+                        }
+                        if (goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) {
+                            vo.setCurrentAuctionSalesroomGoods(goods);
+                        }
+                    }).collect(Collectors.toList());
+            vo.setAuctionSalesroomGoodsVOS(collect);
+            if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) {
+                int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods());
+                if (collect.size() > 1 && index < collect.size() - 1) {
+                    vo.setNextAuctionSalesroomGoods(collect.get(index + 1));
                 }
+                // 分页查询当前拍品出价信息
+                List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
+                        .eq(AuctionBidRecord::getTargetId,
+                                vo.getCurrentAuctionSalesroomGoods().getId())
+                        .eq(AuctionBidRecord::getAuctionType,
+                                AuctionOrderTypeEnum.AUCTION_ITEMS)
+                        .list();
+                if (StringUtils.isNotEmpty(list)) {
+                    vo.setMgtAuctionBidRecordVOList(CollUtils.emptyList());
+                }
+                vo.setMgtAuctionBidRecordVOList(
+                        BeanUtils.copyList(list, MgtAuctionBidRecordVO.class));
+            } else {
+                Optional<MgtAuctionSalesroomGoodsVO> first = collect.stream()
+                        .filter(c -> c.getStatus().equals(AuctionGoodsStatusEnum.WAITING))
+                        .findFirst();
+                vo.setNextAuctionSalesroomGoods(first.orElse(null));
             }
         }
         return vo;
@@ -1454,68 +1459,82 @@
      */
     @Override
     public void stopCurrentGoods(Long id) throws JsonProcessingException {
-        AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id);
-        if (StringUtils.isNull(auctionSalesroomGoods)) {
-            throw new ServiceException("拍卖商品不存在");
-        }
-        AuctionSalesroom auctionSalesroom = this.getById(
-                auctionSalesroomGoods.getAuctionSalesroomId());
-        auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED);
-        auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods);
-        List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
-                Wrappers.lambdaQuery(AuctionBidRecord.class)
-                        .eq(AuctionBidRecord::getAuctionSalesroomId,
-                                auctionSalesroomGoods.getAuctionSalesroomId())
-                        .eq(AuctionBidRecord::getTargetId, auctionSalesroomGoods.getId())
-                        .eq(AuctionBidRecord::getAuctionType, AuctionOrderTypeEnum.AUCTION_ITEMS)
-                        .orderByDesc(AuctionBidRecord::getLastBidAmount));
-        if (CollUtils.isNotEmpty(auctionBidRecordList)) {
-            List<AuctionBidRecord> auctionBidRecords = new ArrayList<>();
-            if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) {
-                for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) {
-                    AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
-                    auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
-                    auctionBidRecordMapper.updateById(auctionBidRecord);
-                    auctionBidRecords.add(auctionBidRecord);
-                }
-            } else {
-                for (int i = 0; i < auctionBidRecordList.size(); i++) {
-                    AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
-                    auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
-                    auctionBidRecordMapper.updateById(auctionBidRecord);
-                    auctionBidRecords.add(auctionBidRecord);
-                }
-                // 没有出价记录,回退库存
-                GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
-                goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
-                goodsStockUpdDTO.setAuctionStock(
-                        auctionSalesroomGoods.getSalesroomStock() - auctionBidRecordList.size());
-                goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
-                        SecurityConstants.INNER);
+        RLock lock = redissonClient.getLock("stopCurrentGoods" + id);
+        lock.lock(10, TimeUnit.SECONDS);
+        try {
+            AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(
+                    id);
+            if (StringUtils.isNull(auctionSalesroomGoods)) {
+                throw new ServiceException("拍卖商品不存在");
             }
-            for (AuctionBidRecord auctionBidRecord : auctionBidRecords) {
-                addOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(),
-                        auctionBidRecord.getLastBidAmount(),
-                        auctionSalesroom.getBond());
+            if (auctionSalesroomGoods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) {
+                AuctionSalesroom auctionSalesroom = this.getById(
+                        auctionSalesroomGoods.getAuctionSalesroomId());
+                auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED);
+                auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods);
+                List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
+                        Wrappers.lambdaQuery(AuctionBidRecord.class)
+                                .eq(AuctionBidRecord::getAuctionSalesroomId,
+                                        auctionSalesroomGoods.getAuctionSalesroomId())
+                                .eq(AuctionBidRecord::getTargetId, auctionSalesroomGoods.getId())
+                                .eq(AuctionBidRecord::getAuctionType,
+                                        AuctionOrderTypeEnum.AUCTION_ITEMS)
+                                .orderByDesc(AuctionBidRecord::getLastBidAmount));
+                if (CollUtils.isNotEmpty(auctionBidRecordList)) {
+                    List<AuctionBidRecord> auctionBidRecords = new ArrayList<>();
+                    if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) {
+                        for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) {
+                            AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
+                            auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
+                            auctionBidRecordMapper.updateById(auctionBidRecord);
+                            auctionBidRecords.add(auctionBidRecord);
+                        }
+                    } else {
+                        for (int i = 0; i < auctionBidRecordList.size(); i++) {
+                            AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
+                            auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
+                            auctionBidRecordMapper.updateById(auctionBidRecord);
+                            auctionBidRecords.add(auctionBidRecord);
+                        }
+                        // 没有出价记录,回退库存
+                        GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
+                        goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
+                        goodsStockUpdDTO.setAuctionStock(
+                                auctionSalesroomGoods.getSalesroomStock()
+                                        - auctionBidRecordList.size());
+                        goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
+                                SecurityConstants.INNER);
+                    }
+                    for (AuctionBidRecord auctionBidRecord : auctionBidRecords) {
+                        addOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(),
+                                auctionBidRecord.getLastBidAmount(),
+                                auctionSalesroom.getBond());
+                    }
+                } else {
+                    // 没有出价记录,回退库存
+                    GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
+                    goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
+                    goodsStockUpdDTO.setAuctionStock(
+                            auctionSalesroomGoods.getSalesroomStock());
+                    goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
+                            SecurityConstants.INNER);
+                }
+                Map<String, Object> map = new ConcurrentHashMap<>();
+                map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS);
+                map.put("auctionSalesroomId",
+                        auctionSalesroomGoods.getAuctionSalesroomId().toString());
+                map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString());
+                map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus());
+                map.put("message_type", "stop");
+                map.put("type", "2");
+                String msg = objectMapper.writeValueAsString(map);
+                sysUserClient.pushAll(msg, SecurityConstants.INNER);
             }
-        } else {
-            // 没有出价记录,回退库存
-            GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
-            goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
-            goodsStockUpdDTO.setAuctionStock(
-                    auctionSalesroomGoods.getSalesroomStock());
-            goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
-                    SecurityConstants.INNER);
+        } finally {
+            if (lock.isLocked() && lock.isHeldByCurrentThread()) {
+                lock.unlock();
+            }
         }
-        Map<String, Object> map = new ConcurrentHashMap<>();
-        map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS);
-        map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString());
-        map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString());
-        map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus());
-        map.put("message_type", "stop");
-        map.put("type", "2");
-        String msg = objectMapper.writeValueAsString(map);
-        sysUserClient.pushAll(msg, SecurityConstants.INNER);
     }
 
     public void addOrder(Long goodsSkuId, Long memberId, BigDecimal lastBidAmount,
@@ -1705,7 +1724,7 @@
         List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
                 Wrappers.<AuctionBidRecord>lambdaQuery()
                         .eq(AuctionBidRecord::getAuctionSalesroomId, auctionSalesroomId)
-                        .ne(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
+                        .eq(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
         Set<Long> memberIdList = new HashSet<>();
         if (CollUtils.isNotEmpty(auctionBidRecordList)) {
             memberIdList = auctionBidRecordList.stream().map(AuctionBidRecord::getMemberId)
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 f92fa11..868e9ec 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
@@ -112,7 +112,6 @@
             if (count > 0) {
                 throw new ServiceException("添加失败,当前商品在该时间段内有其他团购活动");
             }
-            this.save(goodsGroupPurchase);
             GoodsSku goodsSku = goodsSkuService.getById(dto.getGoodsSkuId());
             if (StringUtils.isNull(goodsSku)) {
                 throw new ServiceException("商品不存在");
@@ -122,6 +121,7 @@
                 throw new ServiceException(String.format("团购商品【%s】剩余库存不足,请修改团购库存",
                         goodsSku.getSkuName()));
             }
+            this.save(goodsGroupPurchase);
         } else {
             GoodsGroupPurchase groupPurchase = this.getById(dto.getId());
             if (StringUtils.isNull(groupPurchase)) {
@@ -348,8 +348,7 @@
                 return true;
             }
             List<GoodsGroupPurchaseInfo> notGroupedList = groupPurchaseInfoList.stream()
-                    .filter(g -> !g.getCurrentNumber()
-                            .equals(g.getGroupSize())).peek(p -> {
+                    .filter(g -> g.getCurrentNumber() < g.getGroupSize()).peek(p -> {
                         p.setGroupStatus(GroupStatusEnum.GROUP_FAILURE.getCode());
                     }).collect(
                             Collectors.toList());
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml
index 6e3204f..c10e6c0 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml
@@ -45,6 +45,7 @@
         AND tgs.sku_name LIKE CONCAT('%',#{goodsSkuName},'%')
       </if>
     </where>
+    GROUP BY tgp.id
     ORDER BY tgp.create_time DESC
   </select>
 
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java
index 7e9434f..bc99801 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java
@@ -128,6 +128,7 @@
         points.setMemberId(memberPointsDTO.getMemberId());
         points.setPointsType(memberPointsDTO.getPointsType());
         points.setPoints(memberPointsDTO.getPoints());
+        points.setPointsStatus(memberPointsDTO.getPointsStatus());
         this.save(points);
     }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index caeef82..6cf205f 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -928,6 +928,13 @@
         orderVO.setOrderShuoMin(memberPointsPoints.getConfigValue());
         CustomConfig ReturnCycle = sysUserClient.getconfig("RETURN_CYCLE").getData();
         orderVO.setOrderZq(Integer.valueOf(ReturnCycle.getConfigValue()));
+        // 查询售后记录
+        Optional<OrderReturnRequest> orderReturnRequestOpt = orderReturnRequestService.lambdaQuery()
+                .eq(OrderReturnRequest::getOrderId, order.getId()).oneOpt();
+        if (orderReturnRequestOpt.isPresent()) {
+            OrderReturnRequest orderReturnRequest = orderReturnRequestOpt.get();
+            orderVO.setStatus(orderReturnRequest.getStatus());
+        }
         return orderVO;
     }
 
@@ -1324,45 +1331,51 @@
             Order byId1 = this.getById(goodsGroupPurchaseeVO1.getId());
 
             GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(byId1.getGoodsSkuId(), SecurityConstants.INNER).getData();
-            BeanUtils.copyProperties(data,goodsGroupPurchaseeVO1);
-            GoodsSku byId = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData();
-            goodsGroupPurchaseeVO1.setGoodsSkuName(byId.getSkuName());
-            goodsGroupPurchaseeVO1.setCoverPic(byId.getCoverPic());
-            goodsGroupPurchaseeVO1.setPrice(byId.getPrice());
-            goodsGroupPurchaseeVO1.setYears(String.valueOf(byId.getYears().getYear()));
-            goodsGroupPurchaseeVO1.setIsGoodsGroupPurchase(2);
-            if (byId1.getGroupNo()!=null){
-                GoodsGroupPurchaseInfo one1 = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(byId1.getGroupNo(), SecurityConstants.INNER).getData();
-                    if (one1!=null) {
+            if (Objects.nonNull(data)) {
+                BeanUtils.copyProperties(data, goodsGroupPurchaseeVO1);
+                GoodsSku byId = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(),
+                        SecurityConstants.INNER).getData();
+                goodsGroupPurchaseeVO1.setGoodsSkuName(byId.getSkuName());
+                goodsGroupPurchaseeVO1.setCoverPic(byId.getCoverPic());
+                goodsGroupPurchaseeVO1.setPrice(byId.getPrice());
+                goodsGroupPurchaseeVO1.setYears(String.valueOf(byId.getYears().getYear()));
+                goodsGroupPurchaseeVO1.setIsGoodsGroupPurchase(2);
+                if (byId1.getGroupNo() != null) {
+                    GoodsGroupPurchaseInfo one1 = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(
+                            byId1.getGroupNo(), SecurityConstants.INNER).getData();
+                    if (one1 != null) {
                         goodsGroupPurchaseeVO1.setCurrentNumber(one1.getCurrentNumber());
                         if (one1.getGroupStatus() == 0) {
                             if (one1.getGroupSize() - one1.getCurrentNumber() < 5) {
                                 goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.MS_FAILURE);
                             } else {
-                                goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP);
+                                goodsGroupPurchaseeVO1.setGroupStatus(
+                                        GroupStatusEnum.TO_FORM_A_GROUP);
                             }
                         }
                         if (one1.getGroupStatus() == 1) {
-                            goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.FORMED_INTO_A_GROUP);
+                            goodsGroupPurchaseeVO1.setGroupStatus(
+                                    GroupStatusEnum.FORMED_INTO_A_GROUP);
                         }
                         if (one1.getGroupStatus() == 2) {
                             goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
                         }
-                    }else{
-                        if (data.getGroupStatus().getCode()==1){
+                    } else {
+                        if (data.getGroupStatus().getCode() == 1) {
                             goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP);
                         }
-                        if (data.getGroupStatus().getCode()==2){
-                            goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.FORMED_INTO_A_GROUP);
+                        if (data.getGroupStatus().getCode() == 2) {
+                            goodsGroupPurchaseeVO1.setGroupStatus(
+                                    GroupStatusEnum.FORMED_INTO_A_GROUP);
                         }
-                        if (data.getGroupStatus().getCode()==3){
+                        if (data.getGroupStatus().getCode() == 3) {
                             goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
                         }
+                    }
+
                 }
 
             }
-
-
 
 
         }
@@ -1445,6 +1458,7 @@
         if (CollUtils.isNotEmpty(orderIdList)) {
             List<OrderReturnRequest> orderReturnRequestList = orderReturnRequestService.lambdaQuery()
                     .in(OrderReturnRequest::getOrderId, orderIdList)
+                    .eq(OrderReturnRequest::getStatus, ReturnRequestStatusEnum.COMPLETED)
                     .eq(OrderReturnRequest::getAuditStatus, AuditStatusEnum.PASSED).list();
             List<Long> orderReturnRequestPassedIds = orderReturnRequestList.stream()
                     .map(OrderReturnRequest::getOrderId)
@@ -1638,6 +1652,10 @@
             order.setOrderStatus(OrderStatusEnum.FINISHED);
             order.setReceiveTime(LocalDateTime.now());
             this.updateById(order);
+            // 拍卖订单退保证金
+            if (order.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS) {
+                refundBond(id);
+            }
         }
     }
 
@@ -1780,16 +1798,16 @@
         if (order.getAuctionOrderType() == AuctionOrderTypeEnum.AUCTION_ITEMS) {
             orderAuctionBond = orderAuctionBondMapper.selectOne(
                     Wrappers.lambdaQuery(OrderAuctionBond.class)
-                            .eq(OrderAuctionBond::getOrderId, id)
                             .eq(OrderAuctionBond::getAuctionSalesroomId,
                                     order.getAuctionSalesroomId())
+                            .eq(OrderAuctionBond::getMemberId, order.getMemberId())
                             .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID));
         } else {
             orderAuctionBond = orderAuctionBondMapper.selectOne(
                     Wrappers.lambdaQuery(OrderAuctionBond.class)
-                            .eq(OrderAuctionBond::getOrderId, id)
                             .eq(OrderAuctionBond::getAuctionGoodsId,
                                     order.getGoodsSkuId())
+                            .eq(OrderAuctionBond::getMemberId, order.getMemberId())
                             .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID));
         }
         if (StringUtils.isNotNull(orderAuctionBond)) {
@@ -1802,7 +1820,7 @@
                 paylog.setState(3);// 已退款
                 orderAuctionBond.setBoundStatus(BondStatusEnum.REFUNDED);
                 iPaylogService.updateById(paylog);
-                this.updateById(order);
+                orderAuctionBondMapper.updateById(orderAuctionBond);
             }
         }
     }

--
Gitblit v1.7.1