From fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 29 七月 2024 18:51:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java |   35 ++++++++++++++---------------------
 1 files changed, 14 insertions(+), 21 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
index 71dc751..4df64e6 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -30,7 +30,6 @@
 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.GoodsBrand;
 import com.ruoyi.system.api.domain.GoodsCategory;
@@ -109,7 +108,7 @@
                 .ne(GoodsSeckill::getStartStatus, StartStatusEnum.ENDED)
                 .eq(GoodsSeckill::getListingStatus, ListingStatusEnum.ON_SHELVES)
                 .le(GoodsSeckill::getStartTime, dto.getStartTime())
-                .ge(GoodsSeckill::getEndTime, dto.getEndTime()).list();
+                .ge(GoodsSeckill::getEndTime, dto.getStartTime()).list();
         Set<Long> existGoodsSkuIdSet = list.stream().map(GoodsSeckill::getGoodsSkuId)
                 .collect(Collectors.toSet());
         if (!existGoodsSkuIdSet.isEmpty()) {
@@ -125,7 +124,8 @@
                             return goodsSkuMap.get(item.getGoodsSkuId());
                         }).filter(Objects::nonNull)
                         .collect(Collectors.joining(","));
-                throw new ServiceException("添加失败,当前商品在该时间段内有其他秒杀活动");
+                throw new ServiceException(
+                        String.format("添加失败,商品%s在该时间段内有其他秒杀活动", goodsSkuNames));
             }
         }
         this.saveBatch(goodsSeckills);
@@ -186,14 +186,13 @@
             throw new ServiceException("编辑失败,商品库存不足");
         }
         GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class);
+        goodsSeckillUpd.setListingStatus(ListingStatusEnum.ON_SHELVES);
         this.updateById(goodsSeckillUpd);
         GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
         goodsStockUpdDTO.setAuctionStock(upd.getSeckillStock() * -1);
         goodsStockUpdDTO.setGoodsSkuId(goodsSeckill.getGoodsSkuId());
         goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
-        if (goodsSeckill.getListingStatus().equals(ListingStatusEnum.ON_SHELVES)) {
-            asyncMethodService.seckillScheduleTask(Lists.newArrayList(goodsSeckill));
-        }
+        asyncMethodService.seckillScheduleTask(Lists.newArrayList(goodsSeckill));
     }
 
     /**
@@ -209,22 +208,13 @@
         }
         goodsSeckill.setListingStatus(dto.getListingStatus());
         if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)) {
-            //移除该秒杀商品的延时任务
-            redisService.deleteObject(
-                    DelayTaskEnum.SECKILL_START_TASK.getCode() + "-" + goodsSeckill.getId());
-            redisService.deleteObject(
-                    DelayTaskEnum.SECKILL_END_TASK.getCode() + "-" + goodsSeckill.getId());
             // 退回剩余库存
             GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
-            goodsStockUpdDTO.setAuctionStock(goodsSeckill.getSeckillStock() * -1);
+            goodsStockUpdDTO.setAuctionStock(goodsSeckill.getSeckillStock());
             goodsStockUpdDTO.setGoodsSkuId(goodsSeckill.getGoodsSkuId());
             goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
-            goodsSeckill.setSeckillStock(0);
         }
         this.updateById(goodsSeckill);
-        if (dto.getListingStatus().equals(ListingStatusEnum.ON_SHELVES)) {
-            asyncMethodService.seckillScheduleTask(Lists.newArrayList(goodsSeckill));
-        }
     }
 
     /**
@@ -241,8 +231,11 @@
         }
         GoodsSeckillVO vo = BeanUtils.copyBean(goodsSeckill, GoodsSeckillVO.class);
         GoodsSku goods = goodsSkuService.getById(goodsSeckill.getGoodsSkuId());
-        Optional.of(goods).ifPresent(goodsSku -> vo.setGoodsSkuName(goodsSku.getSkuName()));
-        Integer num = orderClient.getSeckillMembers(goodsSeckill.getGoodsSkuId(),
+        Optional.of(goods).ifPresent(goodsSku -> {
+            vo.setGoodsSkuName(goodsSku.getSkuName());
+            vo.setGoodsSkuStock(goodsSku.getStock());
+        });
+        Integer num = orderClient.getSeckillMembers(goodsSeckill.getId(),
                 SecurityConstants.INNER).getData();
         vo.setNumberOfPurchasedMembers(StringUtils.isNull(num) ? 0 : num);
         return vo;
@@ -259,9 +252,7 @@
         GoodsSeckill goodsSeckill = this.getById(seckillId);
         // 秒杀商品不能为空且上架状态为上架中 状态为未开始
         if (StringUtils.isNotNull(goodsSeckill)
-                && goodsSeckill.getStartStatus().equals(StartStatusEnum.NOT_STARTED) &&
-                goodsSeckill.getListingStatus()
-                        .equals(ListingStatusEnum.ON_SHELVES)) {
+                && goodsSeckill.getStartStatus().equals(StartStatusEnum.NOT_STARTED)) {
             //开始秒杀
             this.lambdaUpdate().set(GoodsSeckill::getStartStatus, StartStatusEnum.STARTED)
                     .eq(GoodsSeckill::getId, seckillId).update();
@@ -467,6 +458,8 @@
         homeGoodsSeckillInfoVO.setStartTime(byId.getStartTime());
         homeGoodsSeckillInfoVO.setEndTime(byId.getEndTime());
         homeGoodsSeckillInfoVO.setStartStatus(byId.getStartStatus());
+        homeGoodsSeckillInfoVO.setSeckillStock(byId.getSeckillStock());
+
 
         LambdaQueryWrapper<MemberGoodsCollection> wrapper3= Wrappers.lambdaQuery();
         wrapper3.eq(MemberGoodsCollection::getDelFlag,0);

--
Gitblit v1.7.1