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