mitao
2024-07-29 fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58
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;
@@ -193,9 +192,7 @@
        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));
    }
    /**
@@ -211,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());
            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));
        }
    }
    /**
@@ -264,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();