| | |
| | | import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO; |
| | | import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO; |
| | | import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO; |
| | | import com.ruoyi.auction.controller.management.dto.MgtAuctionSaleroomBidRecordQuery; |
| | | import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO; |
| | | import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsDTO; |
| | | import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery; |
| | | import com.ruoyi.auction.controller.management.vo.MgtAuctionBidRecordVO; |
| | | import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomGoodsVO; |
| | | import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; |
| | | import com.ruoyi.auction.domain.AuctionBidRecord; |
| | | import com.ruoyi.auction.domain.AuctionSalesroomGoods; |
| | | import com.ruoyi.auction.domain.AuctionVideo; |
| | | import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; |
| | | import com.ruoyi.auction.mapper.AuctionSalesroomMapper; |
| | | import com.ruoyi.auction.service.IAuctionBidRecordService; |
| | | import com.ruoyi.auction.service.IAuctionGoodsService; |
| | | import com.ruoyi.auction.service.IAuctionSalesroomGoodsService; |
| | | import com.ruoyi.auction.service.IAuctionSalesroomService; |
| | | import com.ruoyi.auction.service.IAuctionVideoService; |
| | | import com.ruoyi.auction.service.*; |
| | | import com.ruoyi.auction.util.CreateQrCode; |
| | | import com.ruoyi.auction.util.HttpUtils; |
| | | import com.ruoyi.common.core.constant.SecurityConstants; |
| | |
| | | import com.ruoyi.system.api.domain.OrderAuctionBond; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; |
| | | import com.ruoyi.system.api.domain.dto.BidVO; |
| | | import com.ruoyi.system.api.domain.dto.BidDTO; |
| | | import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; |
| | | import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; |
| | | import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; |
| | | import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomWdDTO; |
| | | import com.ruoyi.system.api.domain.vo.PayInfoVO; |
| | | import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; |
| | | import com.ruoyi.system.api.feignClient.GoodsSkuClient; |
| | | import com.ruoyi.system.api.feignClient.MemberClient; |
| | | import com.ruoyi.system.api.feignClient.OrderClient; |
| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | import javax.annotation.Resource; |
| | | import org.apache.http.HttpResponse; |
| | |
| | | */ |
| | | @Service |
| | | public class AuctionSalesroomServiceImpl extends ServiceImpl<AuctionSalesroomMapper, AuctionSalesroom> implements IAuctionSalesroomService { |
| | | @Resource |
| | | private IAuctionSalesroomService iAuctionSalesroomService; |
| | | |
| | | @Resource |
| | | private IAuctionBidRecordService auctionBidRecordService; |
| | |
| | | private OrderClient orderClient; |
| | | @Resource |
| | | private MemberClient memberClient; |
| | | |
| | | @Resource |
| | | private IAuctionBrowseRecordService iAuctionBrowseRecordService; |
| | | |
| | | |
| | | //微信 |
| | |
| | | LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery(); |
| | | wrapper.eq(AuctionSalesroom::getSalesroomName,ationSalesroomGoodsDTO.getSalesroomName()); |
| | | wrapper.eq(AuctionSalesroom::getDelFlag,0); |
| | | Page<AuctionSalesroom> page1=iAuctionSalesroomService.page(page, wrapper); |
| | | Page<AuctionSalesroom> page1 = this.page(page, wrapper); |
| | | return PageDTO.of(page1); |
| | | } |
| | | |
| | |
| | | wrapper.eq(AuctionVideo::getDelFlag,0); |
| | | AuctionVideo auctionVideo=iAuctionVideoService.getOne(wrapper); |
| | | ForepartAuctionSalesroomVO forepartAuctionSalesroomVO =new ForepartAuctionSalesroomVO(); |
| | | AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(ationSalesroomGoodsDTO.getAuctionSalesroomId()); |
| | | AuctionSalesroom auctionSalesroom = this.getById( |
| | | ationSalesroomGoodsDTO.getAuctionSalesroomId()); |
| | | forepartAuctionSalesroomVO.setAuctionSalesroomStatus(auctionSalesroom.getStatus().getCode()); |
| | | if (auctionVideo!=null){ |
| | | forepartAuctionSalesroomVO.setUrl(auctionVideo.getPromotionVideoUrl()); |
| | |
| | | LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery(); |
| | | wrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,arepartAuctionBidRecordDTO.getAuctionSalesroomQrcode()); |
| | | wrapper.eq(AuctionSalesroom::getDelFlag,0); |
| | | AuctionSalesroom auctionBidRecord=iAuctionSalesroomService.getOne(wrapper); |
| | | AuctionSalesroom auctionBidRecord = this.getOne(wrapper); |
| | | return auctionBidRecord; |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public MemberAuctionSalesroomInfoVO getMemberAuctionSalesroomInfo(MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) { |
| | | AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomDTO.getAuctionSalesroomId()); |
| | | AuctionSalesroom byId = this.getById(memberAuctionSalesroomDTO.getAuctionSalesroomId()); |
| | | MemberAuctionSalesroomInfoVO memberAuctionSalesroomInfoVO=new MemberAuctionSalesroomInfoVO(); |
| | | memberAuctionSalesroomInfoVO.setId(byId.getId()); |
| | | memberAuctionSalesroomInfoVO.setBound(byId.getBond()); |
| | |
| | | LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery(); |
| | | wrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,MemberAuctionSalesroomDTO.getSalesroomNO()); |
| | | wrapper.eq(AuctionSalesroom::getDelFlag,0); |
| | | AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getOne(wrapper); |
| | | AuctionSalesroom auctionSalesroom = this.getOne(wrapper); |
| | | MemberAuctionSalesroomVO memberAuctionSalesroomVO=new MemberAuctionSalesroomVO(); |
| | | memberAuctionSalesroomVO.setSalesroomName(auctionSalesroom.getSalesroomName()); |
| | | memberAuctionSalesroomVO.setStatus(auctionSalesroom.getStatus().getCode()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void SaveBid(BidVO bidVO) { |
| | | public void SaveBid(BidDTO bidVO) { |
| | | Member membeOne = memberClient.getMembeOne(bidVO.getMemberId(), SecurityConstants.INNER).getData(); |
| | | if (bidVO.getAuctionType()==2){ |
| | | AuctionSalesroomGoods byId = auctionSalesroomGoodsService.getById(bidVO.getTargetId()); |
| | |
| | | // 添加拍卖商品 |
| | | auctionSalesroomGoodsService.saveBatch(auctionSalesroomGoods); |
| | | } |
| | | |
| | | @Override |
| | | public PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomList(MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) { |
| | | MemberAuctionSalesroomDTO memberAuctionSalesroomDTO =new MemberAuctionSalesroomDTO(); |
| | | memberAuctionSalesroomDTO.setMemberId(MemberAuctionSalesroomDTO.getMemberId()); |
| | | List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData(); |
| | | Set<Long> goodsSkuIdList = null; |
| | | goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId) |
| | | .collect(Collectors.toSet()); |
| | | Page<WdMemberAuctionSalesroomVO> page = new Page<>(); |
| | | page.setSize(memberAuctionSalesroomDTO.getPageSize()); |
| | | page.setCurrent(memberAuctionSalesroomDTO.getPageCurr()); |
| | | MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO(); |
| | | memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList); |
| | | if(memberAuctionSalesroomWdDTO.getStatus()!=4){ |
| | | memberAuctionSalesroomWdDTO.setStatus(memberAuctionSalesroomWdDTO.getStatus()); |
| | | } |
| | | List<AuctionSalesroom> auctionSalesroomList=auctionSalesroomMapper.pageMemberAuctionSalesroomWdList(page,memberAuctionSalesroomWdDTO); |
| | | List<WdMemberAuctionSalesroomVO> List=new ArrayList<>(); |
| | | for (AuctionSalesroom auctionSalesroom:auctionSalesroomList){ |
| | | WdMemberAuctionSalesroomVO memberAuctionSalesroomVO=new WdMemberAuctionSalesroomVO(); |
| | | memberAuctionSalesroomVO.setSalesroomName(auctionSalesroom.getSalesroomName()); |
| | | memberAuctionSalesroomVO.setDescription(auctionSalesroom.getDescription()); |
| | | memberAuctionSalesroomVO.setStatus(auctionSalesroom.getStatus().getCode()); |
| | | memberAuctionSalesroomVO.setSalesroomId(auctionSalesroom.getId()); |
| | | memberAuctionSalesroomVO.setCoverPic(auctionSalesroom.getCoverPic()); |
| | | MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1=new MemberAuctionSalesroomDTO(); |
| | | memberAuctionSalesroomDTO1.setAuctionSalesroomId(auctionSalesroom.getId()); |
| | | memberAuctionSalesroomDTO1.setMemberId(MemberAuctionSalesroomDTO.getMemberId()); |
| | | List<OrderAuctionBond> data1 = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO1, SecurityConstants.INNER).getData(); |
| | | memberAuctionSalesroomVO.setBondTime(data1.get(0).getCreateTime()); |
| | | List.add(memberAuctionSalesroomVO); |
| | | } |
| | | page.setRecords(List); |
| | | return PageDTO.of(page); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 查看详情 |
| | | * |
| | | * @param id 拍卖会id |
| | | * @return 拍卖场视图对象 |
| | | */ |
| | | @Override |
| | | public MgtAuctionSalesroomVO getAuctionSalesroom(Long id) { |
| | | // 获取拍卖场 |
| | | AuctionSalesroom auctionSalesroom = this.getById(id); |
| | | MgtAuctionSalesroomVO mgtAuctionSalesroomVO = BeanUtils.copyBean(auctionSalesroom, |
| | | MgtAuctionSalesroomVO.class); |
| | | // 获取拍卖场商品 |
| | | List<AuctionSalesroomGoods> list = auctionSalesroomGoodsService.lambdaQuery() |
| | | .eq(AuctionSalesroomGoods::getAuctionSalesroomId, id).list(); |
| | | if (StringUtils.isNotEmpty(list)) { |
| | | List<MgtAuctionSalesroomGoodsVO> mgtAuctionSalesroomGoodsVOS = BeanUtils.copyList(list, |
| | | MgtAuctionSalesroomGoodsVO.class); |
| | | Set<Long> goodsIdList = mgtAuctionSalesroomGoodsVOS.stream() |
| | | .map(MgtAuctionSalesroomGoodsVO::getGoodsSkuId).collect( |
| | | Collectors.toSet()); |
| | | // 获取商品信息 |
| | | List<GoodsSku> goodsSkuList = goodsSkuClient.getGoodsListByIds(goodsIdList, |
| | | SecurityConstants.INNER).getData(); |
| | | Map<Long, GoodsSku> goodsSkuMap = goodsSkuList.stream() |
| | | .collect(Collectors.toMap(GoodsSku::getId, Function.identity())); |
| | | |
| | | // 封装商品名称 |
| | | for (MgtAuctionSalesroomGoodsVO vo : mgtAuctionSalesroomGoodsVOS) { |
| | | GoodsSku goodsSku = goodsSkuMap.get(vo.getGoodsSkuId()); |
| | | if (StringUtils.isNotNull(goodsSku)) { |
| | | vo.setGoodsSkuName(goodsSku.getSkuName()); |
| | | } |
| | | } |
| | | mgtAuctionSalesroomVO.setAuctionSalesroomGoodsVOS(mgtAuctionSalesroomGoodsVOS); |
| | | } |
| | | return mgtAuctionSalesroomVO; |
| | | } |
| | | |
| | | /** |
| | | * 查看详情-出价记录 |
| | | * |
| | | * @param query 拍卖场出价记录查询对象 |
| | | * @return PageDTO<MgtAuctionBidRecordVO> |
| | | */ |
| | | @Override |
| | | public PageDTO<MgtAuctionBidRecordVO> getAuctionSalesroomBidRecordList( |
| | | MgtAuctionSaleroomBidRecordQuery query) { |
| | | Page<AuctionBidRecord> page = auctionBidRecordService.lambdaQuery() |
| | | .eq(AuctionBidRecord::getTargetId, query.getId()) |
| | | .eq(AuctionBidRecord::getAuctionType, AuctionOrderTypeEnum.AUCTION_ITEMS) |
| | | .orderByDesc(query.getSortType() == 1, AuctionBidRecord::getLastBidAmount) |
| | | .orderByDesc(query.getSortType() == 2, AuctionBidRecord::getBidCount) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isNull(page.getRecords())) { |
| | | return PageDTO.empty(page); |
| | | } |
| | | PageDTO<MgtAuctionBidRecordVO> mgtAuctionBidRecordVOPageDTO = PageDTO.of(page, |
| | | MgtAuctionBidRecordVO.class); |
| | | List<MgtAuctionBidRecordVO> list = mgtAuctionBidRecordVOPageDTO.getList(); |
| | | Set<Long> goodsIdList = list.stream().map(MgtAuctionBidRecordVO::getGoodsSkuId) |
| | | .collect(Collectors.toSet()); |
| | | Set<Long> memberIdList = list.stream().map(MgtAuctionBidRecordVO::getMemberId) |
| | | .collect(Collectors.toSet()); |
| | | List<GoodsSku> goodsSkuList = goodsSkuClient.getGoodsListByIds(goodsIdList, |
| | | SecurityConstants.INNER) |
| | | .getData(); |
| | | List<Member> memberList = memberClient.getMemberListByIds(memberIdList, |
| | | SecurityConstants.INNER) |
| | | .getData(); |
| | | Map<Long, GoodsSku> goodsSkuMap = goodsSkuList.stream() |
| | | .collect(Collectors.toMap(GoodsSku::getId, Function.identity())); |
| | | Map<Long, Member> memberMap = memberList.stream() |
| | | .collect(Collectors.toMap(Member::getId, Function.identity())); |
| | | for (MgtAuctionBidRecordVO vo : list) { |
| | | GoodsSku goodsSku = goodsSkuMap.get(vo.getGoodsSkuId()); |
| | | Member member = memberMap.get(vo.getMemberId()); |
| | | if (StringUtils.isNotNull(goodsSku)) { |
| | | vo.setGoodsSkuName(goodsSku.getSkuName()); |
| | | } |
| | | if (StringUtils.isNotNull(member)) { |
| | | vo.setMemberName(member.getNickname()); |
| | | vo.setPhone(member.getPhone()); |
| | | } |
| | | } |
| | | return mgtAuctionBidRecordVOPageDTO; |
| | | } |
| | | } |