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

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java |   37 ++++++++++++++-----------------------
 1 files changed, 14 insertions(+), 23 deletions(-)

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 aa0f0fa..f92fa11 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
@@ -31,14 +31,12 @@
 import com.ruoyi.goods.service.IGoodsSkuService;
 import com.ruoyi.goods.service.IMemberGoodsCollectionService;
 import com.ruoyi.goods.service.async.AsyncMethodService;
-import com.ruoyi.system.api.constants.DelayTaskEnum;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
 import com.ruoyi.system.api.domain.GoodsGroupPurchase;
 import com.ruoyi.system.api.domain.GoodsGroupPurchaseInfo;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.WebsocketMessageDTO;
-import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
 import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
@@ -49,6 +47,7 @@
 import com.ruoyi.system.api.domain.vo.WdGoodsGroupPurchaseVO;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -108,10 +107,7 @@
             }
             LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper = Wrappers.lambdaQuery();
             queryWrapper.eq(GoodsGroupPurchase::getGoodsSkuId, dto.getGoodsSkuId());
-            queryWrapper.eq(GoodsGroupPurchase::getListingStatus,
-                    ListingStatusEnum.ON_SHELVES.getCode());
-            queryWrapper.le(GoodsGroupPurchase::getStartTime, dto.getStartTime());
-            queryWrapper.ge(GoodsGroupPurchase::getEndTime, dto.getStartTime());
+            queryWrapper.ne(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED);
             long count = this.count(queryWrapper);
             if (count > 0) {
                 throw new ServiceException("添加失败,当前商品在该时间段内有其他团购活动");
@@ -149,7 +145,11 @@
                         goodsSku.getSkuName()));
             }
         }
-        if (goodsGroupPurchase.getListingStatus().equals(ListingStatusEnum.ON_SHELVES)) {
+        if (goodsGroupPurchase.getEndTime().isBefore(LocalDateTime.now())) {
+            goodsGroupPurchase.setStartStatus(StartStatusEnum.ENDED);
+            goodsGroupPurchase.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
+            this.updateById(goodsGroupPurchase);
+        } else {
             asyncMethodService.groupPurchaseScheduleTask(Lists.newArrayList(goodsGroupPurchase));
         }
     }
@@ -197,28 +197,19 @@
             if (groupPurchase.getStartStatus().equals(StartStatusEnum.STARTED)) {
                 throw new ServiceException("该商品已开始团购,不能下架");
             }
-            //移除该团购商品延时任务
-            redisService.deleteObject(DelayTaskEnum.GROUP_PURCHASES_START_TASK.getCode() + "-"
-                    + groupPurchase.getId());
-            redisService.deleteObject(
-                    DelayTaskEnum.GROUP_PURCHASES_END_TASK.getCode() + "-" + groupPurchase.getId());
-            // 退回剩余库存
-            GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
-            goodsStockUpdDTO.setAuctionStock(
-                    groupPurchase.getLimitNumber() * groupPurchase.getGroupSize());
-            goodsStockUpdDTO.setGoodsSkuId(groupPurchase.getGoodsSkuId());
-            goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
         }
         //修改状态
         groupPurchase.setListingStatus(dto.getListingStatus());
-        groupPurchase.setStartStatus(StartStatusEnum.ENDED);
-        if (!groupPurchase.getGroupStatus().equals(GroupStatusEnum.FORMED_INTO_A_GROUP)) {
+        List<GoodsGroupPurchaseInfo> groupPurchaseInfoList = goodsGroupPurchaseInfoService.lambdaQuery()
+                .eq(GoodsGroupPurchaseInfo::getGroupPurchaseId, dto.getId()).list();
+        long count = groupPurchaseInfoList.stream().filter(info -> info.getGroupStatus() == 1)
+                .count();
+        if (count > 0) {
+            groupPurchase.setGroupStatus(GroupStatusEnum.FORMED_INTO_A_GROUP);
+        } else {
             groupPurchase.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
         }
         this.updateById(groupPurchase);
-        if (dto.getListingStatus().equals(ListingStatusEnum.ON_SHELVES)) {
-            asyncMethodService.groupPurchaseScheduleTask(Lists.newArrayList(groupPurchase));
-        }
     }
 
     /**

--
Gitblit v1.7.1