mitao
2024-07-27 d5a62c975afbaff26d17b61fa7b9fde7e2cb035d
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -8,8 +8,12 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.*;
import com.ruoyi.common.core.enums.ClientTypeEnum;
import com.ruoyi.common.core.enums.GroupStatusEnum;
import com.ruoyi.common.core.enums.ListingStatusEnum;
import com.ruoyi.common.core.enums.OrderFromEnum;
import com.ruoyi.common.core.enums.OrderStatusEnum;
import com.ruoyi.common.core.enums.StartStatusEnum;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
@@ -34,7 +38,12 @@
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.domain.WebsocketMessageDTO;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
import com.ruoyi.system.api.domain.dto.ListStatusDTO;
import com.ruoyi.system.api.domain.dto.OrderDTO;
import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
import com.ruoyi.system.api.domain.dto.RefundDTO;
import com.ruoyi.system.api.domain.vo.GoodsGroupPurchaseInfoVO;
import com.ruoyi.system.api.domain.vo.OrderVO;
import com.ruoyi.system.api.domain.vo.WdGoodsGroupPurchaseVO;
@@ -102,7 +111,7 @@
            queryWrapper.eq(GoodsGroupPurchase::getListingStatus,
                    ListingStatusEnum.ON_SHELVES.getCode());
            queryWrapper.le(GoodsGroupPurchase::getStartTime, dto.getStartTime());
            queryWrapper.ge(GoodsGroupPurchase::getEndTime, dto.getEndTime());
            queryWrapper.ge(GoodsGroupPurchase::getEndTime, dto.getStartTime());
            long count = this.count(queryWrapper);
            if (count > 0) {
                throw new ServiceException("添加失败,当前商品在该时间段内有其他团购活动");
@@ -117,10 +126,6 @@
                throw new ServiceException(String.format("团购商品【%s】剩余库存不足,请修改团购库存",
                        goodsSku.getSkuName()));
            }
            GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
            goodsStockUpdDTO.setAuctionStock(groupPurchaseStock * -1);
            goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId());
            goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
        } else {
            GoodsGroupPurchase groupPurchase = this.getById(dto.getId());
            if (StringUtils.isNull(groupPurchase)) {
@@ -143,11 +148,6 @@
                throw new ServiceException(String.format("团购商品%s剩余库存不足,请修改团购库存",
                        goodsSku.getSkuName()));
            }
            GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
            goodsStockUpdDTO.setAuctionStock(latestStock);
            goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId());
            goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
            this.updateById(goodsGroupPurchase);
        }
        if (goodsGroupPurchase.getListingStatus().equals(ListingStatusEnum.ON_SHELVES)) {
            asyncMethodService.groupPurchaseScheduleTask(Lists.newArrayList(goodsGroupPurchase));
@@ -172,6 +172,12 @@
        Integer num = orderClient.getGroupPurchasesGoodsNum(groupPurchase.getId(),
                SecurityConstants.INNER).getData();
        vo.setBuyNumber(num);
        List<GoodsGroupPurchaseInfo> list = goodsGroupPurchaseInfoService.lambdaQuery()
                .eq(GoodsGroupPurchaseInfo::getGroupPurchaseId, id).list();
        Integer count = list.stream().map(GoodsGroupPurchaseInfo::getCurrentNumber)
                .reduce(Integer::sum)
                .orElse(0);
        vo.setGroupedMemberNumber(count);
        return vo;
    }