From f44e4d609e7efaed9eac545137970b1e334f8106 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期六, 21 九月 2024 09:01:36 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java | 130 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 108 insertions(+), 22 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java index 48bb229..cfb4ae3 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java @@ -3,24 +3,30 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.common.core.constant.SecurityConstants; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.page.CollUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.MemberGoodsCollection; +import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper; +import com.ruoyi.goods.mapper.GoodsSeckillMapper; import com.ruoyi.goods.mapper.GoodsSkuMapper; import com.ruoyi.goods.mapper.MemberGoodsCollectionMapper; import com.ruoyi.goods.service.IMemberGoodsCollectionService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.system.api.domain.AuctionGoods; +import com.ruoyi.system.api.domain.GoodsGroupPurchase; +import com.ruoyi.system.api.domain.GoodsSeckill; import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO; -import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; /** * <p> @@ -37,24 +43,35 @@ @Resource private GoodsSkuMapper goodsSkuMapper; + @Resource + private GoodsSeckillMapper goodsSeckillMapper; + + + @Resource + private GoodsGroupPurchaseMapper goodsGroupPurchaseMapper; + @Override public void saveGoodsCollection(AuctionCollectionDTO auctionCollectionDTO) { - if (auctionCollectionDTO.getMemberId()!=null) { + if (auctionCollectionDTO.getMemberId()==null) { throw new ServiceException("用户ID不能为空"); } - if (auctionCollectionDTO.getState()!=null) { + if (auctionCollectionDTO.getState()==null) { throw new ServiceException("类型不能为空"); } LambdaQueryWrapper< MemberGoodsCollection> wrapper= Wrappers.lambdaQuery(); wrapper.eq(MemberGoodsCollection::getMemberId,auctionCollectionDTO.getMemberId()); wrapper.eq(MemberGoodsCollection::getTargetId,auctionCollectionDTO.getGoodsSkuId()); + if (auctionCollectionDTO.getType()!=null){ + wrapper.eq(MemberGoodsCollection::getType,auctionCollectionDTO.getType()); + } if (auctionCollectionDTO.getState()==1){ List<MemberGoodsCollection> list = this.list(wrapper); if (list.size()==0){ MemberGoodsCollection m =new MemberGoodsCollection(); m.setMemberId(auctionCollectionDTO.getMemberId()); m.setTargetId(auctionCollectionDTO.getGoodsSkuId()); + m.setType(auctionCollectionDTO.getType()); this.save(m); } }else{ @@ -70,25 +87,94 @@ @Override public PageDTO<HomeGoodsSkuListVO> getGoodsCollectionList(AuctionCollectionDTO auctionCollectionDTO) { + + Set<Long> goodsSkuIdList = null; + if (StringUtils.isNotEmpty(auctionCollectionDTO.getGoodsSkuName())) { + LambdaQueryWrapper<GoodsSku> wrapper= Wrappers.lambdaQuery(); + wrapper.like(GoodsSku::getSkuName,auctionCollectionDTO.getGoodsSkuName()); + wrapper.eq(GoodsSku::getDelFlag,0); + List<GoodsSku> page1 = goodsSkuMapper.selectList(wrapper); + goodsSkuIdList = page1.stream().map(GoodsSku::getId) + .collect(Collectors.toSet()); + } + + Page<HomeGoodsSkuListVO> page = new Page<>(); page.setSize(auctionCollectionDTO.getPageSize()); page.setCurrent(auctionCollectionDTO.getPageCurr()); LambdaQueryWrapper< MemberGoodsCollection> wrapper= Wrappers.lambdaQuery(); wrapper.eq(MemberGoodsCollection::getMemberId,auctionCollectionDTO.getMemberId()); - List<MemberGoodsCollection> list = this.list(wrapper); - - List<HomeGoodsSkuListVO> auctionGoodsVOS=new ArrayList<>(); - for (MemberGoodsCollection auctionCollection:list){ - HomeGoodsSkuListVO auctionGoodsVO=new HomeGoodsSkuListVO(); - GoodsSku goodsSku = goodsSkuMapper.selectById(auctionCollection.getTargetId()); - auctionGoodsVO.setId(goodsSku.getId()); - auctionGoodsVO.setPrice(goodsSku.getPrice()); - auctionGoodsVO.setCoverPic(goodsSku.getCoverPic()); - auctionGoodsVO.setSkuName(goodsSku.getSkuName()); - auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity()); - auctionGoodsVO.setIsCollection(2); + if (StringUtils.isNotEmpty(auctionCollectionDTO.getGoodsSkuName())){ + if (goodsSkuIdList.size()>0){ + wrapper.in(MemberGoodsCollection::getTargetId,goodsSkuIdList); + }else{ + goodsSkuIdList=new HashSet<>(); + goodsSkuIdList.add(0L); + wrapper.in(MemberGoodsCollection::getTargetId,goodsSkuIdList); + } } - page.setRecords(auctionGoodsVOS); + List<MemberGoodsCollection> list = this.list(wrapper); + if (CollUtils.isNotEmpty(list)) { + List<HomeGoodsSkuListVO> auctionGoodsVOS = new ArrayList<>(); + for (MemberGoodsCollection auctionCollection : list) { + if (auctionCollection.getType() == 1) { + HomeGoodsSkuListVO auctionGoodsVO = new HomeGoodsSkuListVO(); + GoodsSku goodsSku = goodsSkuMapper.selectById(auctionCollection.getTargetId()); + if (Objects.nonNull(goodsSku)) { + auctionGoodsVO.setId(goodsSku.getId()); + auctionGoodsVO.setPrice(goodsSku.getPrice()); + auctionGoodsVO.setCoverPic(goodsSku.getCoverPic()); + auctionGoodsVO.setSkuName(goodsSku.getSkuName()); + auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity()); + auctionGoodsVO.setIsCollection(2); + auctionGoodsVO.setType(auctionCollection.getType()); + auctionGoodsVOS.add(auctionGoodsVO); + } + } + if (auctionCollection.getType() == 3) { + HomeGoodsSkuListVO auctionGoodsVO = new HomeGoodsSkuListVO(); + GoodsSeckill goodsSeckill = goodsSeckillMapper.selectById( + auctionCollection.getTargetId()); + GoodsSku goodsSku = goodsSkuMapper.selectById(goodsSeckill.getGoodsSkuId()); + auctionGoodsVO.setId(auctionCollection.getTargetId()); + auctionGoodsVO.setPrice(goodsSeckill.getSeckillPrice()); + auctionGoodsVO.setCoverPic(goodsSku.getCoverPic()); + auctionGoodsVO.setSkuName(goodsSku.getSkuName()); + auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity()); + auctionGoodsVO.setIsCollection(2); + auctionGoodsVO.setStartStatus(goodsSeckill.getStartStatus()); + auctionGoodsVO.setStartTime(goodsSeckill.getStartTime()); + auctionGoodsVO.setEndTime(goodsSeckill.getEndTime()); + auctionGoodsVO.setXiaosPrice(goodsSku.getPrice()); + auctionGoodsVO.setType(auctionCollection.getType()); + auctionGoodsVOS.add(auctionGoodsVO); + } + if (auctionCollection.getType() == 2) { + GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectById( + auctionCollection.getTargetId()); + HomeGoodsSkuListVO auctionGoodsVO = new HomeGoodsSkuListVO(); + if (goodsGroupPurchase != null) { + GoodsSku goodsSku = goodsSkuMapper.selectById( + goodsGroupPurchase.getGoodsSkuId()); + auctionGoodsVO.setId(auctionCollection.getTargetId()); + auctionGoodsVO.setPrice(goodsGroupPurchase.getGroupPurchasePrice()); + auctionGoodsVO.setCoverPic(goodsSku.getCoverPic()); + auctionGoodsVO.setSkuName(goodsSku.getSkuName()); + auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity()); + auctionGoodsVO.setIsCollection(2); + auctionGoodsVO.setXiaosPrice(goodsSku.getPrice()); + auctionGoodsVO.setStartTime(goodsGroupPurchase.getStartTime()); + auctionGoodsVO.setEndTime(goodsGroupPurchase.getEndTime()); + auctionGoodsVO.setXiaosPrice(goodsGroupPurchase.getGroupPurchasePrice()); + auctionGoodsVO.setType(auctionCollection.getType()); + auctionGoodsVOS.add(auctionGoodsVO); + } + + } + + } + page.setRecords(auctionGoodsVOS); + } return PageDTO.of(page); } } -- Gitblit v1.7.1