From fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 29 七月 2024 18:51:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java | 188 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 187 insertions(+), 1 deletions(-) diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java index f93ca98..e9f0336 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java @@ -1,9 +1,37 @@ package com.ruoyi.auction.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.auction.domain.AuctionBrowseRecord; import com.ruoyi.auction.mapper.AuctionBrowseRecordMapper; +import com.ruoyi.auction.mapper.AuctionGoodsMapper; +import com.ruoyi.auction.mapper.AuctionSalesroomMapper; import com.ruoyi.auction.service.IAuctionBrowseRecordService; -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.system.api.domain.AuctionGoods; +import com.ruoyi.system.api.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.GoodsSku; +import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; +import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomWdDTO; +import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; +import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; +import com.ruoyi.system.api.feignClient.GoodsSkuClient; +import com.ruoyi.system.api.feignClient.OrderClient; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +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; /** @@ -17,4 +45,162 @@ @Service public class AuctionBrowseRecordServiceImpl extends ServiceImpl<AuctionBrowseRecordMapper, AuctionBrowseRecord> implements IAuctionBrowseRecordService { + + + @Resource + private AuctionSalesroomMapper auctionSalesroomMapper; + + @Resource + private OrderClient orderClient; + + @Resource + private GoodsSkuClient goodsSkuClient; + + @Resource + private AuctionGoodsMapper auctionGoodsMapper; + + + @Override + public PageDTO<AuctionGoodsListVO> getWdAuctionBrowseRecordList(AuctionGoodsListDTO auctionGoodsListDTO) { + LocalDateTime now = LocalDateTime.now(); + LocalDateTime newTime7 = now.minusDays(7); + LambdaQueryWrapper<AuctionBrowseRecord> wrapper3= Wrappers.lambdaQuery(); + wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); + wrapper3.eq(AuctionBrowseRecord::getBrowseType,1); + wrapper3.eq(AuctionBrowseRecord::getMemberId,auctionGoodsListDTO.getMemberId()); + wrapper3.ge(AuctionBrowseRecord::getCreateTime, newTime7) + .le(AuctionBrowseRecord::getCreateTime, now); + Set<Long> goodsSkuIdList = new HashSet<>(); + List<AuctionBrowseRecord> list = this.list(wrapper3); + for (AuctionBrowseRecord auctionBrowseRecord:list){ + goodsSkuIdList.add(auctionBrowseRecord.getTargetId()); + } + Set<Long> goodsSkuIdList1 = null; + if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) { + List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(auctionGoodsListDTO.getGoodsSkuName(), + SecurityConstants.INNER) + .getData(); + goodsSkuIdList1 = goodsSku.stream().map(GoodsSku::getId) + .collect(Collectors.toSet()); + } + + Set<Long> goodsSkuIdList3 =new HashSet<>(); + if (StringUtils.isNotEmpty(goodsSkuIdList1)){ + for (Long i:goodsSkuIdList1){ + LambdaQueryWrapper<AuctionGoods> wrapper= Wrappers.lambdaQuery(); + wrapper.eq(AuctionGoods::getGoodsSkuId,i); + wrapper.eq(AuctionGoods::getDelFlag,0); + List<AuctionGoods> auctionGoods = auctionGoodsMapper.selectList(wrapper); + for (AuctionGoods a:auctionGoods){ + goodsSkuIdList3.add(a.getId()); + } + + } + + } + Set<Long> goodsSkuIdList2 =new HashSet<>(); + if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) { + if (goodsSkuIdList3.size() > 0) { + goodsSkuIdList2 = goodsSkuIdList.stream() + .filter(goodsSkuIdList3::contains) + .collect(Collectors.toSet()); + } else { + goodsSkuIdList2.add(0L);; + } + }else{ + goodsSkuIdList2=goodsSkuIdList; + } + + + Page<AuctionGoodsListVO> page = new Page<>(); + page.setSize(auctionGoodsListDTO.getPageSize()); + page.setCurrent(auctionGoodsListDTO.getPageCurr()); + AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO(); + if (goodsSkuIdList2.size()>0){ + auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList2); + }else{ + goodsSkuIdList2.add(0L); + auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList2); + } + List<AuctionGoods> auctionGoodsPgeList = auctionGoodsMapper.getAuctionGoodsPgeList1(page, auctionGoodsListPageDTO); + List<AuctionGoodsListVO> auctionGoodsVOS=new ArrayList<>(); + for (AuctionGoods auctionGoods:auctionGoodsPgeList){ + AuctionGoodsListVO auctionGoodsVO=new AuctionGoodsListVO(); + auctionGoodsVO.setAuctionStock(auctionGoods.getAuctionStock()); + auctionGoodsVO.setGoodsSkuId(auctionGoods.getId()); + auctionGoodsVO.setEndTime(auctionGoods.getEndTime()); + auctionGoodsVO.setStartTime(auctionGoods.getStartTime()); + auctionGoodsVO.setStartingPrice(auctionGoods.getStartingPrice()); + auctionGoodsVO.setStartStatus(auctionGoods.getStartStatus()); + GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoods.getGoodsSkuId(), SecurityConstants.INNER).getData(); + auctionGoodsVO.setUnit(goodsSkuOne.getUnit()); + auctionGoodsVO.setSpec(goodsSkuOne.getSpec()); + auctionGoodsVO.setSpecUnit(goodsSkuOne.getSpecUnit()); + auctionGoodsVO.setGoodsSkuName(goodsSkuOne.getSkuName()); + auctionGoodsVO.setCoverPic(goodsSkuOne.getCoverPic()); + auctionGoodsVO.setYears(String.valueOf(goodsSkuOne.getYears().getYear())); + auctionGoodsVO.setDescription(goodsSkuOne.getDescription()); + auctionGoodsVO.setDetail(goodsSkuOne.getDetail()); + auctionGoodsVOS.add(auctionGoodsVO); + } + page.setRecords(auctionGoodsVOS); + return PageDTO.of(page); + } + + @Override + public PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomBrowseRecordList(MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) { + LocalDateTime now = LocalDateTime.now(); + LocalDateTime newTime7 = now.minusDays(7); + + LambdaQueryWrapper<AuctionBrowseRecord> wrapper3= Wrappers.lambdaQuery(); + wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); + wrapper3.eq(AuctionBrowseRecord::getMemberId,MemberAuctionSalesroomDTO.getMemberId()); + wrapper3.eq(AuctionBrowseRecord::getBrowseType,2); + wrapper3.ge(AuctionBrowseRecord::getCreateTime, newTime7) + .le(AuctionBrowseRecord::getCreateTime, now); + + List<AuctionBrowseRecord> list = this.list(wrapper3); + Set<Long> goodsSkuIdList = null; + goodsSkuIdList = list.stream().map(AuctionBrowseRecord::getTargetId) + .collect(Collectors.toSet()); + Page<AuctionSalesroom> page = new Page<>(); + page.setSize(MemberAuctionSalesroomDTO.getPageSize()); + page.setCurrent(MemberAuctionSalesroomDTO.getPageCurr()); + MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO(); + if (goodsSkuIdList.size()>0){ + memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList); + }else{ + goodsSkuIdList=new HashSet<>(); + goodsSkuIdList.add(0L); + memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList); + } + memberAuctionSalesroomWdDTO.setSalesroomName(MemberAuctionSalesroomDTO.getSalesroomName()); + + Page<AuctionSalesroom> auctionSalesroomList=auctionSalesroomMapper.pageMemberAuctionSalesroomWdList(page,memberAuctionSalesroomWdDTO); + PageDTO<WdMemberAuctionSalesroomVO> wdMemberAuctionSalesroomVOPageDTO = PageDTO.of(auctionSalesroomList, WdMemberAuctionSalesroomVO.class); + List<WdMemberAuctionSalesroomVO> list1 = wdMemberAuctionSalesroomVOPageDTO.getList(); + for (WdMemberAuctionSalesroomVO auctionSalesroom:list1){ + auctionSalesroom.setSalesroomName(auctionSalesroom.getSalesroomName()); + auctionSalesroom.setDescription(auctionSalesroom.getDescription()); + auctionSalesroom.setStatus(auctionSalesroom.getStatus()); + auctionSalesroom.setSalesroomId(auctionSalesroom.getId()); + auctionSalesroom.setId(auctionSalesroom.getId()); + auctionSalesroom.setCoverPic(auctionSalesroom.getCoverPic()); + MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1=new MemberAuctionSalesroomDTO(); + memberAuctionSalesroomDTO1.setAuctionSalesroomId(auctionSalesroom.getId()); + memberAuctionSalesroomDTO1.setMemberId(MemberAuctionSalesroomDTO.getMemberId()); + List<OrderAuctionBond> data1 = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO1, SecurityConstants.INNER).getData(); + if (data1.size()>0){ + auctionSalesroom.setIsBond(2); + }else{ + auctionSalesroom.setIsBond(1); + } + MemberAuctionSalesroomDTO memberAuctionSalesroomDTO2=new MemberAuctionSalesroomDTO(); + memberAuctionSalesroomDTO2.setAuctionSalesroomId(auctionSalesroom.getId()); + List<OrderAuctionBond> data2 = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO2, SecurityConstants.INNER).getData(); + auctionSalesroom.setBondNum(data2.size()); + auctionSalesroom.setBond(auctionSalesroom.getBond()); + } + return wdMemberAuctionSalesroomVOPageDTO; + } } -- Gitblit v1.7.1