| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | @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; |
| | | } |
| | | } |