| | |
| | | wrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,arepartAuctionBidRecordDTO.getAuctionSalesroomQrcode()); |
| | | wrapper.eq(AuctionSalesroom::getDelFlag,0); |
| | | AuctionSalesroom auctionBidRecord = this.getOne(wrapper); |
| | | if(auctionBidRecord.getType().getCode()==0){ |
| | | throw new ServiceException("当前扫码是线下拍卖会"); |
| | | } |
| | | return auctionBidRecord; |
| | | } |
| | | |
| | |
| | | @Override |
| | | public MemberAuctionSalesroomInfoVO getMemberAuctionSalesroomInfo(MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) { |
| | | AuctionSalesroom byId = this.getById(memberAuctionSalesroomDTO.getAuctionSalesroomId()); |
| | | if(byId==null){ |
| | | LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery(); |
| | | wrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,memberAuctionSalesroomDTO.getAuctionSalesroomId()); |
| | | wrapper.eq(AuctionSalesroom::getDelFlag,0); |
| | | byId =this.getOne(wrapper); |
| | | } |
| | | MemberAuctionSalesroomInfoVO memberAuctionSalesroomInfoVO=new MemberAuctionSalesroomInfoVO(); |
| | | memberAuctionSalesroomInfoVO.setId(byId.getId()); |
| | | memberAuctionSalesroomInfoVO.setBound(byId.getBond()); |
| | |
| | | memberAuctionSalesroomInfoVO.setIsApply(1); |
| | | } |
| | | List<ForepartAuctionSalesroomGoodsVO> forepartAuctionSalesroomGoodsVOS=new ArrayList<>(); |
| | | List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.getAuctionSalesroomGoods(memberAuctionSalesroomDTO); |
| | | MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1 =new MemberAuctionSalesroomDTO(); |
| | | memberAuctionSalesroomDTO1.setAuctionSalesroomId(byId.getId()); |
| | | List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.getAuctionSalesroomGoods(memberAuctionSalesroomDTO1); |
| | | for (AuctionSalesroomGoods salesroomGoods:auctionSalesroomGoods){ |
| | | ForepartAuctionSalesroomGoodsVO forepartAuctionSalesroomGoodsVO=new ForepartAuctionSalesroomGoodsVO(); |
| | | forepartAuctionSalesroomGoodsVO.setSalesroomId(byId.getId()); |
| | |
| | | forepartAuctionSalesroomGoodsVO.setCoverPic(goodsSku.getCoverPic()); |
| | | forepartAuctionSalesroomGoodsVO.setStartingPrice(salesroomGoods.getStartingPrice()); |
| | | forepartAuctionSalesroomGoodsVO.setSalesroomStock(salesroomGoods.getSalesroomStock()); |
| | | forepartAuctionSalesroomGoodsVO.setGoodsSkustatus(salesroomGoods.getStatus()); |
| | | forepartAuctionSalesroomGoodsVO.setGoodsSkustatus(salesroomGoods.getStatus().getCode()); |
| | | forepartAuctionSalesroomGoodsVO.setYears(String.valueOf(goodsSku.getYears())); |
| | | forepartAuctionSalesroomGoodsVO.setSpec(goodsSku.getSpec()); |
| | | forepartAuctionSalesroomGoodsVO.setSpecUnit(goodsSku.getSpecUnit()); |
| | | LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); |
| | | wrapper1.eq(AuctionBidRecord::getMemberId,memberAuctionSalesroomDTO.getMemberId()); |
| | | wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); |
| | |
| | | LambdaQueryWrapper<AuctionBrowseRecord> wrapper3=Wrappers.lambdaQuery(); |
| | | wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); |
| | | wrapper3.eq(AuctionBrowseRecord::getTargetId,memberAuctionSalesroomDTO.getAuctionSalesroomId()); |
| | | wrapper3.eq(AuctionBrowseRecord::getBrowseType,AuctionOrderTypeEnum.AUCTION_ITEMS); |
| | | wrapper3.eq(AuctionBrowseRecord::getMemberId,memberAuctionSalesroomDTO.getMemberId()); |
| | | wrapper3.ge(AuctionBrowseRecord::getCreateTime, now) |
| | | .le(AuctionBrowseRecord::getCreateTime, newTime7); |
| | |
| | | throw new ServiceException("出价不能比每次最少加价低"); |
| | | } |
| | | LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); |
| | | wrapper1.eq(AuctionBidRecord::getMemberId,bidVO.getMemberId()); |
| | | wrapper1.eq(AuctionBidRecord::getTargetId,bidVO.getTargetId()); |
| | | wrapper1.eq(AuctionBidRecord::getDelFlag,0); |
| | | wrapper1.orderByDesc(AuctionBidRecord::getLastBidAmount); |
| | | wrapper1.last("limit 1"); |
| | | AuctionBidRecord one = auctionBidRecordService.getOne(wrapper1); |
| | | if (one!=null){ |
| | | BigDecimal bigDecimal1=one.getLastBidAmount().add(byId.getMinimumMarkupAmount()); |
| | | if (bigDecimal1.doubleValue()<bidVO.getLastBidAmount().doubleValue()){ |
| | | throw new ServiceException("出价不能比上次出价加每次最少加价低"); |
| | | if (byId.getAuctionStock()==1) { |
| | | if (one != null) { |
| | | BigDecimal bigDecimal1 = one.getLastBidAmount().add(byId.getMinimumMarkupAmount()); |
| | | if (bigDecimal1.doubleValue() > bidVO.getLastBidAmount().doubleValue()) { |
| | | throw new ServiceException("出价不能比上次出价加每次最少加价低"); |
| | | } |
| | | |
| | | } |
| | | one.setLastBidAmount(bidVO.getLastBidAmount()); |
| | | one.setLastBidTime(LocalDateTime.now()); |
| | | one.setBidCount(one.getBidCount()+1); |
| | | auctionBidRecordService.updateById(one); |
| | | |
| | | |
| | | }else{ |
| | | one=new AuctionBidRecord(); |
| | | one.setAuctionSalesroomId(bidVO.getAuctionSalesroomId()); |
| | | one.setTargetId(bidVO.getTargetId()); |
| | | one.setMemberId(bidVO.getMemberId()); |
| | | one.setLastBidTime(LocalDateTime.now()); |
| | | one.setAuctionType(AuctionOrderTypeEnum.REGULAR_ITEMS); |
| | | one.setStatus(BidStatusEnum.ELIMINATE); |
| | | one.setBidCount(1); |
| | | one.setLastBidAmount(bidVO.getLastBidAmount()); |
| | | auctionBidRecordService.save(one); |
| | | } |
| | | |
| | | LambdaQueryWrapper<AuctionBidRecord> wrapper2=Wrappers.lambdaQuery(); |
| | | wrapper2.eq(AuctionBidRecord::getAuctionSalesroomId,bidVO.getAuctionSalesroomId()); |
| | | wrapper2.eq(AuctionBidRecord::getTargetId,bidVO.getTargetId()); |
| | | wrapper2.eq(AuctionBidRecord::getDelFlag,0); |
| | | wrapper2.orderByDesc(AuctionBidRecord::getLastBidAmount); |
| | | AuctionBidRecord one2 = auctionBidRecordService.getOne(wrapper1); |
| | | LambdaQueryWrapper<AuctionBidRecord> wrapper3=Wrappers.lambdaQuery(); |
| | | wrapper3.eq(AuctionBidRecord::getTargetId,bidVO.getTargetId()); |
| | | wrapper3.eq(AuctionBidRecord::getDelFlag,0); |
| | | wrapper3.eq(AuctionBidRecord::getMemberId,bidVO.getMemberId()); |
| | | wrapper3.orderByDesc(AuctionBidRecord::getLastBidAmount); |
| | | wrapper3.last("limit 1"); |
| | | AuctionBidRecord one3 = auctionBidRecordService.getOne(wrapper3); |
| | | if (one3!=null){ |
| | | one3.setLastBidAmount(bidVO.getLastBidAmount()); |
| | | one3.setLastBidTime(LocalDateTime.now()); |
| | | one3.setBidCount(one.getBidCount()+1); |
| | | auctionBidRecordService.updateById(one3); |
| | | }else{ |
| | | one3=new AuctionBidRecord(); |
| | | one3.setAuctionSalesroomId(bidVO.getAuctionSalesroomId()); |
| | | one3.setTargetId(bidVO.getTargetId()); |
| | | one3.setMemberId(bidVO.getMemberId()); |
| | | one3.setLastBidTime(LocalDateTime.now()); |
| | | one3.setAuctionType(AuctionOrderTypeEnum.REGULAR_ITEMS); |
| | | one3.setStatus(BidStatusEnum.ELIMINATE); |
| | | one3.setBidCount(1); |
| | | one3.setLastBidAmount(bidVO.getLastBidAmount()); |
| | | auctionBidRecordService.save(one3); |
| | | } |
| | | |
| | | Map<String, Object> map = new ConcurrentHashMap<>(); |
| | | map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM); |
| | | map.put("auctionSalesroomId", bidVO.getAuctionSalesroomId()); |
| | | map.put("auctionSalesroomId", byId.getId()); |
| | | map.put("byId", byId.getStartStatus()); |
| | | map.put("lastBidAmount",one2.getLastBidAmount()); |
| | | map.put("lastBidAmount",one.getLastBidAmount()); |
| | | map.put("message_type", "BidRecor"); |
| | | map.put("type",4); |
| | | String msg = null; |
| | |
| | | List<MgtAuctionSalesroomVO> list = auctionSalesroomVOPageDTO.getList(); |
| | | List<Long> auctionSalesroomIdList = list.stream().map(MgtAuctionSalesroomVO::getId) |
| | | .collect(Collectors.toList()); |
| | | // 所有拍卖场的拍卖商品 |
| | | List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( |
| | | Wrappers.<AuctionSalesroomGoods>lambdaQuery() |
| | | .in(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomIdList)); |
| | | // 计算每个拍卖场所有拍品数量 |
| | | Map<Long, Integer> map = auctionSalesroomGoods.stream() |
| | | .collect(Collectors.groupingBy(AuctionSalesroomGoods::getAuctionSalesroomId, |
| | | Collectors.summingInt(AuctionSalesroomGoods::getSalesroomStock))); |
| | | for (MgtAuctionSalesroomVO mgtAuctionSalesroomVO : list) { |
| | | Integer i = map.get(mgtAuctionSalesroomVO.getId()); |
| | | if (StringUtils.isNotNull(i)) { |
| | | mgtAuctionSalesroomVO.setAuctionGoodsNum(i); |
| | | if (StringUtils.isNotEmpty(auctionSalesroomIdList)) { |
| | | // 所有拍卖场的拍卖商品 |
| | | List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( |
| | | Wrappers.<AuctionSalesroomGoods>lambdaQuery() |
| | | .in(AuctionSalesroomGoods::getAuctionSalesroomId, |
| | | auctionSalesroomIdList)); |
| | | // 计算每个拍卖场所有拍品数量 |
| | | Map<Long, Integer> map = auctionSalesroomGoods.stream() |
| | | .collect(Collectors.groupingBy(AuctionSalesroomGoods::getAuctionSalesroomId, |
| | | Collectors.summingInt(AuctionSalesroomGoods::getSalesroomStock))); |
| | | for (MgtAuctionSalesroomVO mgtAuctionSalesroomVO : list) { |
| | | Integer i = map.get(mgtAuctionSalesroomVO.getId()); |
| | | if (StringUtils.isNotNull(i)) { |
| | | mgtAuctionSalesroomVO.setAuctionGoodsNum(i); |
| | | } |
| | | } |
| | | } |
| | | return auctionSalesroomVOPageDTO; |
| | |
| | | if (StringUtils.isNull(data)) { |
| | | throw new ServiceException("视频不存在"); |
| | | } |
| | | iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq |
| | | (AuctionVideo::getAuctionSalesroomId, dto.getAuctionSalesroomId())); |
| | | AuctionVideo auctionVideo = new AuctionVideo(); |
| | | auctionVideo.setAuctionSalesroomId(dto.getAuctionSalesroomId()); |
| | | auctionVideo.setPromotionVideoId(dto.getVideoId()); |
| | |
| | | @Override |
| | | public void stopPlay(Long auctionSalesroomId) { |
| | | iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq |
| | | (AuctionVideo::getAuctionSalesroomId, 1L)); |
| | | (AuctionVideo::getAuctionSalesroomId, auctionSalesroomId)); |
| | | } |
| | | |
| | | /** |
| | |
| | | @Transactional |
| | | public void stopCurrentAuctionSalesroom(Long auctionSalesroomId) |
| | | throws JsonProcessingException { |
| | | // 修改拍卖场开始状态 |
| | | AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); |
| | | auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); |
| | | auctionSalesroom.setEndTime(LocalDateTime.now()); |
| | | auctionSalesroomMapper.updateById(auctionSalesroom); |
| | | LambdaQueryWrapper<AuctionSalesroomGoods> wrapper = Wrappers.lambdaQuery(); |
| | | wrapper.eq(AuctionSalesroomGoods::getStatus, AuctionGoodsStatusEnum.WAITING); |
| | | wrapper.eq(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomId); |
| | | wrapper.orderByDesc(AuctionSalesroomGoods::getSortNum); |
| | | List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( |
| | | wrapper); |
| | | long count = auctionSalesroomGoods.stream() |
| | | .filter(goods -> goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) |
| | | .count(); |
| | | if (count > 0) { |
| | | throw new ServiceException("当前拍卖场正在拍卖商品,不能停止"); |
| | | } |
| | | // 修改拍卖场开始状态 |
| | | AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); |
| | | auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); |
| | | auctionSalesroom.setEndTime(LocalDateTime.now()); |
| | | auctionSalesroomMapper.updateById(auctionSalesroom); |
| | | |
| | | if (StringUtils.isNotEmpty(auctionSalesroomGoods)) { |
| | | List<GoodsStockUpdDTO> dtoList = new ArrayList<>(); |
| | | for (AuctionSalesroomGoods salesroomGoods : auctionSalesroomGoods) { |