mitao
2024-05-27 c26092c422c4b72fa5d51a38f6de1b48ab1ccd87
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -12,6 +12,7 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO;
import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery;
import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
@@ -20,6 +21,7 @@
import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
import com.ruoyi.goods.service.IGoodsSkuService;
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.GoodsSku;
import com.ruoyi.system.api.domain.Order;
@@ -50,6 +52,7 @@
    private final OrderClient orderClient;
    private final IGoodsSkuService goodsSkuService;
    private final AsyncMethodService asyncMethodService;
    private final RedisService redisService;
    // 创建一个静态共享的ObjectMapper实例以重用
    private static final ObjectMapper objectMapper = new ObjectMapper();
    /**
@@ -141,9 +144,15 @@
            throw new ServiceException("团购商品不存在");
        }
        //判断商品状态
        if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)
                && groupPurchase.getStartStatus().equals(StartStatusEnum.STARTED)) {
            throw new ServiceException("该商品已开始团购,不能下架");
        if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)) {
            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());
        }
        //修改状态
        groupPurchase.setListingStatus(dto.getListingStatus());