From f9562fc61410d6c66e6973cb63a659557059d114 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 29 七月 2024 20:54:00 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 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 4df64e6..c4b9f54 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
@@ -52,7 +52,6 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -104,28 +103,25 @@
             goodsSeckill.setStartStatus(StartStatusEnum.NOT_STARTED);
         }
         // 查询该时间范围内,是否已经存在该秒杀商品
+        List<Long> skuIds = goodsSeckills.stream().map(GoodsSeckill::getGoodsSkuId)
+                .collect(Collectors.toList());
         List<GoodsSeckill> list = this.lambdaQuery()
                 .ne(GoodsSeckill::getStartStatus, StartStatusEnum.ENDED)
-                .eq(GoodsSeckill::getListingStatus, ListingStatusEnum.ON_SHELVES)
-                .le(GoodsSeckill::getStartTime, dto.getStartTime())
-                .ge(GoodsSeckill::getEndTime, dto.getStartTime()).list();
+                .in(GoodsSeckill::getGoodsSkuId, skuIds).list();
         Set<Long> existGoodsSkuIdSet = list.stream().map(GoodsSeckill::getGoodsSkuId)
                 .collect(Collectors.toSet());
         if (!existGoodsSkuIdSet.isEmpty()) {
             List<GoodsSku> goodsSkuList = goodsSkuService.listByIds(existGoodsSkuIdSet);
             Map<Long, String> goodsSkuMap = goodsSkuList.stream()
                     .collect(Collectors.toMap(GoodsSku::getId, GoodsSku::getSkuName));
-            List<GoodsSeckill> collect = goodsSeckills.stream()
+            Optional<GoodsSeckill> first = goodsSeckills.stream()
                     .filter(goodsSeckill -> existGoodsSkuIdSet.contains(
                             goodsSeckill.getGoodsSkuId()))
-                    .collect(Collectors.toList());
-            if (!collect.isEmpty()) {
-                String goodsSkuNames = collect.stream().map(item -> {
-                            return goodsSkuMap.get(item.getGoodsSkuId());
-                        }).filter(Objects::nonNull)
-                        .collect(Collectors.joining(","));
+                    .findFirst();
+            if (first.isPresent()) {
+                String skuName = goodsSkuMap.get(first.get().getGoodsSkuId());
                 throw new ServiceException(
-                        String.format("添加失败,商品%s在该时间段内有其他秒杀活动", goodsSkuNames));
+                        String.format("添加失败,商品%s在该时间段内有其他秒杀活动", skuName));
             }
         }
         this.saveBatch(goodsSeckills);
@@ -187,12 +183,13 @@
         }
         GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class);
         goodsSeckillUpd.setListingStatus(ListingStatusEnum.ON_SHELVES);
+        goodsSeckillUpd.setStartStatus(StartStatusEnum.NOT_STARTED);
         this.updateById(goodsSeckillUpd);
         GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
         goodsStockUpdDTO.setAuctionStock(upd.getSeckillStock() * -1);
         goodsStockUpdDTO.setGoodsSkuId(goodsSeckill.getGoodsSkuId());
         goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
-        asyncMethodService.seckillScheduleTask(Lists.newArrayList(goodsSeckill));
+        asyncMethodService.seckillScheduleTask(Lists.newArrayList(goodsSeckillUpd));
     }
 
     /**

--
Gitblit v1.7.1