mitao
2024-07-29 fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrowseRecordServiceImpl.java
@@ -1,9 +1,25 @@
package com.ruoyi.goods.service.impl;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.domain.GoodsBrowseRecord;
import com.ruoyi.goods.mapper.GoodsBrowseRecordMapper;
import com.ruoyi.goods.mapper.GoodsSkuMapper;
import com.ruoyi.goods.service.IGoodsBrowseRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO;
import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
/**
@@ -16,5 +32,49 @@
 */
@Service
public class GoodsBrowseRecordServiceImpl extends ServiceImpl<GoodsBrowseRecordMapper, GoodsBrowseRecord> implements IGoodsBrowseRecordService {
    @Resource
    private GoodsSkuMapper goodsSkuMapper;
    @Resource
    private GoodsSkuClient goodsSkuClient;
    @Override
    public PageDTO<HomeGoodsSkuListVO> geBrowseRecordList(AuctionCollectionDTO auctionCollectionDTO) {
        Set<Long> goodsSkuIdList1 = null;
        if (StringUtils.isNotEmpty(auctionCollectionDTO.getGoodsSkuName())) {
            List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(auctionCollectionDTO.getGoodsSkuName(),
                            SecurityConstants.INNER)
                    .getData();
            goodsSkuIdList1 = goodsSku.stream().map(GoodsSku::getId)
                    .collect(Collectors.toSet());
        }
        Page<GoodsBrowseRecord> page = new Page<>();
        page.setSize(auctionCollectionDTO.getPageSize());
        page.setCurrent(auctionCollectionDTO.getPageCurr());
        LambdaQueryWrapper<GoodsBrowseRecord> wrapper= Wrappers.lambdaQuery();
        wrapper.eq(GoodsBrowseRecord::getMemberId,auctionCollectionDTO.getMemberId());
        if (StringUtils.isNotEmpty(auctionCollectionDTO.getGoodsSkuName())) {
        if (StringUtils.isNotEmpty(goodsSkuIdList1)){
            wrapper.in(GoodsBrowseRecord::getGoodsSkuId,goodsSkuIdList1);
        }else {
            goodsSkuIdList1=new HashSet<>();
            goodsSkuIdList1.add(0L);
            wrapper.in(GoodsBrowseRecord::getGoodsSkuId,goodsSkuIdList1);
            }
        }
        wrapper.orderByDesc(GoodsBrowseRecord::getCreateTime);
        Page<GoodsBrowseRecord> page1 = this.page(page, wrapper);
        PageDTO<HomeGoodsSkuListVO> wdMemberAuctionSalesroomVOPageDTO = PageDTO.of(page1, HomeGoodsSkuListVO.class);
        List<HomeGoodsSkuListVO> list = wdMemberAuctionSalesroomVOPageDTO.getList();
        for (HomeGoodsSkuListVO auctionGoodsVO:list){
            GoodsSku goodsSku = goodsSkuMapper.selectById(auctionGoodsVO.getGoodsSkuId());
            auctionGoodsVO.setId(goodsSku.getId());
            auctionGoodsVO.setPrice(goodsSku.getPrice());
            auctionGoodsVO.setCoverPic(goodsSku.getCoverPic());
            auctionGoodsVO.setSkuName(goodsSku.getSkuName());
            auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity());
        }
        return wdMemberAuctionSalesroomVOPageDTO;
    }
}