mitao
2024-07-29 fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -36,13 +36,13 @@
import com.ruoyi.system.api.domain.GoodsSeckill;
import com.ruoyi.system.api.domain.GoodsSeries;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.Order;
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.vo.GoodsInfoTitleValueVO;
import com.ruoyi.system.api.domain.vo.HomeGoodsSkuInfoVO;
import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO;
import com.ruoyi.system.api.domain.vo.OrderVO;
import com.ruoyi.system.api.domain.vo.getHomeGoodsSkuXxiVO;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
import com.ruoyi.system.api.feignClient.OrderClient;
@@ -55,6 +55,7 @@
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -194,14 +195,15 @@
        Page<GoodsSku> page = this.lambdaQuery()
                .select(GoodsSku::getId, GoodsSku::getSkuName, GoodsSku::getPrice,
                        GoodsSku::getStock, GoodsSku::getSoldQuantity, GoodsSku::getSortNum,
                        GoodsSku::getListingStatus)
                        GoodsSku::getListingStatus, GoodsSku::getUnit, GoodsSku::getSpec,
                        GoodsSku::getSpecUnit)
                .like(StringUtils.isNotEmpty(query.getSkuName()), GoodsSku::getSkuName,
                        query.getSkuName())
                .eq(StringUtils.isNotNull(query.getListingStatus()
                ), GoodsSku::getListingStatus, query.getListingStatus())
                .eq(query.getQueryType().equals(1), GoodsSku::getListingStatus,
                        ListingStatusEnum.ON_SHELVES)
                .gt(query.getQueryType().equals(2), GoodsSku::getStock, 0)
                .gt(query.getQueryType().equals(1), GoodsSku::getStock, 0)
                .orderByDesc(GoodsSku::getCreateTime)
                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
        return PageDTO.of(page, GoodsSkuVO.class);
@@ -231,20 +233,25 @@
                .eq(GoodsSeckill::getGoodsSkuId, dto.getId());
        List<GoodsSeckill> goodsSeckillList = goodsSeckillMapper.selectList(queryWrapper);
        if (StringUtils.isNotNull(goodsSeckillList)) {
            for (GoodsSeckill goodsSeckill : goodsSeckillList) {
            goodsSeckillList = goodsSeckillList.stream().peek(goodsSeckill -> {
                goodsSeckill.setListingStatus(ListingStatusEnum.REMOVED_FROM_THE_SHELF);
                goodsSeckillMapper.updateById(goodsSeckill);
            }
            }).collect(Collectors.toList());
            goodsSeckillMapper.updateListingStatusBatch(
                    ListingStatusEnum.REMOVED_FROM_THE_SHELF.getCode(), goodsSeckillList);
        }
        LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper1 =new LambdaQueryWrapper<>();
        queryWrapper1.eq(GoodsGroupPurchase::getListingStatus,
                        ListingStatusEnum.ON_SHELVES)
                .eq(GoodsGroupPurchase::getGoodsSkuId, dto.getId());
        GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectOne(queryWrapper1);
        if (StringUtils.isNotNull(goodsGroupPurchase)) {
            goodsGroupPurchase.setListingStatus(ListingStatusEnum.REMOVED_FROM_THE_SHELF);
            goodsGroupPurchaseMapper.updateById(goodsGroupPurchase);
        List<GoodsGroupPurchase> goodsGroupPurchaseList = goodsGroupPurchaseMapper.selectList(
                queryWrapper1);
        if (CollUtils.isNotEmpty(goodsGroupPurchaseList)) {
            goodsGroupPurchaseList = goodsGroupPurchaseList.stream().peek(goodsGroupPurchase -> {
                goodsGroupPurchase.setListingStatus(ListingStatusEnum.REMOVED_FROM_THE_SHELF);
            }).collect(Collectors.toList());
            goodsGroupPurchaseMapper.updateListingStatusBatch(
                    ListingStatusEnum.REMOVED_FROM_THE_SHELF.getCode(), goodsGroupPurchaseList);
        }
    }
@@ -299,6 +306,11 @@
        LambdaQueryWrapper<GoodsSku> wrapper3= Wrappers.lambdaQuery();
        wrapper3.eq(GoodsSku::getDelFlag,0);
        wrapper3.eq(GoodsSku::getListingStatus,0);
        // if(homeGoodsSkuDTO.getId()!=null){
        //     List arr=new ArrayList<>();
        //     arr.add(homeGoodsSkuDTO.getId());
        //     wrapper3.notIn(GoodsSku::getId,arr);
        // }
        if (homeGoodsSkuDTO.getSkuName()!=null&&homeGoodsSkuDTO.getSkuName()!=""){
            wrapper3.like(GoodsSku::getSkuName,homeGoodsSkuDTO.getSkuName());
        }
@@ -381,7 +393,10 @@
            wrapper3.le(GoodsSku::getYears, parseTime7)
                    .ge(GoodsSku::getYears, parseTime15);
        }
        wrapper3.orderByAsc(GoodsSku::getSortNum);
        wrapper3.orderByDesc(GoodsSku::getCreateTime);
        wrapper3.last(",IF(isnull(sort_num),1,0), sort_num DESC");
        Page<GoodsSku> page1 = this.page(page, wrapper3);
        PageDTO<HomeGoodsSkuListVO> articleCommentsVOPageDTO = PageDTO.of(page1, HomeGoodsSkuListVO.class);
        return  articleCommentsVOPageDTO;
@@ -419,6 +434,7 @@
        homeGoodsSkuInfoVO.setCoverPic(byId.getCoverPic());
        homeGoodsSkuInfoVO.setAlbum(byId.getAlbum());
        homeGoodsSkuInfoVO.setDescription(byId.getDescription());
        homeGoodsSkuInfoVO.setStock(byId.getStock());
        homeGoodsSkuInfoVO.setDetail(byId.getDetail());
        homeGoodsSkuInfoVO.setShareTitle(byId.getShareTitle());
        homeGoodsSkuInfoVO.setSharePic(byId.getSharePic());
@@ -434,8 +450,8 @@
            HomeGoodsSkuDTO homeGoodsSkuDTO1 =new HomeGoodsSkuDTO();
            homeGoodsSkuDTO1.setGoodsSkuId(goodsGroupPurchase.getId());
            homeGoodsSkuDTO1.setMemberId(homeGoodsSkuDTO.getMemberId());
            List<OrderVO> data4 = orderClient.getOrderByGroupPurchaseMemberList(homeGoodsSkuDTO1, SecurityConstants.INNER).getData();
            if (data4.size()>0){
            Order data4 = orderClient.getOrderByGroupPurchaseMemberId2(homeGoodsSkuDTO1, SecurityConstants.INNER).getData();
            if (data4!=null){
                homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(2);
            }else{
                homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(1);
@@ -457,12 +473,13 @@
        }else{
            homeGoodsSkuInfoVO.setIsCollection(1);
        }
        List list1=new ArrayList<>();
        list1.add(0);
        list1.add(1);
        LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper2 =new LambdaQueryWrapper<>();
        queryWrapper2.eq(GoodsGroupPurchase::getListingStatus,
                        ListingStatusEnum.ON_SHELVES)
                .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId())
                .eq(GoodsGroupPurchase::getStartStatus,
                        StartStatusEnum.STARTED);
                .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId()).in(GoodsGroupPurchase::getStartStatus, list1);
        GoodsGroupPurchase goodsGroupPurchase2 = goodsGroupPurchaseMapper.selectOne(queryWrapper2);
        if (goodsGroupPurchase2!=null){
            homeGoodsSkuInfoVO.setGroupPurchaseGoods(2);
@@ -478,8 +495,8 @@
        wrapper4.eq(GoodsBrowseRecord::getMemberId,homeGoodsSkuDTO.getMemberId());
        wrapper4.ge(GoodsBrowseRecord::getCreateTime, newTime7)
                .le(GoodsBrowseRecord::getCreateTime,now );
        List<GoodsBrowseRecord> list1 = iGoodsBrowseRecordService.list(wrapper4);
        if (list1.size()==0){
        List<GoodsBrowseRecord> list2 = iGoodsBrowseRecordService.list(wrapper4);
        if (list2.size()==0){
            GoodsBrowseRecord auctionBrowseRecord=new GoodsBrowseRecord();
            auctionBrowseRecord.setMemberId(homeGoodsSkuDTO.getMemberId());
            auctionBrowseRecord.setGoodsSkuId(homeGoodsSkuDTO.getGoodsSkuId());