| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.google.common.collect.Lists; |
| | | import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO; |
| | | import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsInfoDTO; |
| | | import com.ruoyi.auction.controller.forepart.dto.OrderDTO; |
| | |
| | | import com.ruoyi.auction.controller.forepart.vo.AuctionSalesroomVO; |
| | | import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO; |
| | | import com.ruoyi.auction.domain.AuctionBidRecord; |
| | | import com.ruoyi.auction.domain.AuctionBrowseRecord; |
| | | import com.ruoyi.auction.domain.AuctionSalesroomGoods; |
| | | import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; |
| | | import com.ruoyi.auction.service.IAuctionBidRecordService; |
| | | import com.ruoyi.auction.service.IAuctionBrowseRecordService; |
| | | import com.ruoyi.auction.service.IAuctionSalesroomGoodsService; |
| | | import com.ruoyi.auction.service.IAuctionSalesroomService; |
| | | import com.ruoyi.common.core.constant.SecurityConstants; |
| | |
| | | import com.ruoyi.system.api.domain.GoodsSku; |
| | | import com.ruoyi.system.api.domain.Member; |
| | | import com.ruoyi.system.api.domain.MemberAddress; |
| | | import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; |
| | | import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; |
| | | import com.ruoyi.system.api.feignClient.GoodsSkuClient; |
| | | import com.ruoyi.system.api.feignClient.MemberClient; |
| | | import com.ruoyi.system.api.feignClient.OrderClient; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import javax.annotation.Resource; |
| | |
| | | private OrderClient orderClient; |
| | | |
| | | @Resource |
| | | private IAuctionBidRecordService auctionBidRecordService; |
| | | |
| | | private IAuctionBrowseRecordService iAuctionBrowseRecordService; |
| | | |
| | | |
| | | |
| | |
| | | |
| | | } |
| | | auctionSalesroomVO.setElseAuctionSalesroomGoods(auctionSalesroomGoodsVOS); |
| | | |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | String formattedDate = now.format(formatter); |
| | | LocalDateTime parseTime = LocalDateTime.parse(formattedDate, formatter); |
| | | LocalDateTime newTime7 = now.minusDays(7); |
| | | String formattedDate7 = newTime7.format(formatter); |
| | | LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); |
| | | |
| | | LambdaQueryWrapper<AuctionBrowseRecord> wrapper3=Wrappers.lambdaQuery(); |
| | | wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); |
| | | wrapper3.eq(AuctionBrowseRecord::getTargetId,ationSalesroomGoodsDTO.getAuctionSalesroomId()); |
| | | wrapper3.eq(AuctionBrowseRecord::getMemberId,ationSalesroomGoodsDTO.getMemberId()); |
| | | wrapper3.ge(AuctionBrowseRecord::getCreateTime, parseTime7) |
| | | .le(AuctionBrowseRecord::getCreateTime, parseTime); |
| | | List<AuctionBrowseRecord> list = iAuctionBrowseRecordService.list(wrapper3); |
| | | if (list.size()==0){ |
| | | AuctionBrowseRecord auctionBrowseRecord=new AuctionBrowseRecord(); |
| | | auctionBrowseRecord.setBrowseType(AuctionOrderTypeEnum.AUCTION_ITEMS); |
| | | auctionBrowseRecord.setMemberId(ationSalesroomGoodsDTO.getMemberId()); |
| | | auctionBrowseRecord.setTargetId(ationSalesroomGoodsDTO.getAuctionSalesroomId()); |
| | | iAuctionBrowseRecordService.save(auctionBrowseRecord); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | return auctionSalesroomVO; |
| | | } |
| | | |
| | |
| | | wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); |
| | | wrapper2.eq(AuctionSalesroomGoods::getAuctionSalesroomId,ationSalesroomGoodsDTO.getAuctionSalesroomId()); |
| | | List<AuctionSalesroomGoods> auctionSalesroomGoods=iAuctionSalesroomGoodsService.list(wrapper2); |
| | | for (AuctionSalesroomGoods salesroomGoods:auctionSalesroomGoods){ |
| | | salesroomGoods.setStatus(AuctionStartStatusEnum.ENDED); |
| | | iAuctionSalesroomGoodsService.updateById(salesroomGoods); |
| | | if (auctionSalesroomGoods.size()>0){ |
| | | for (AuctionSalesroomGoods salesroomGoods:auctionSalesroomGoods){ |
| | | salesroomGoods.setStatus(AuctionStartStatusEnum.ENDED); |
| | | iAuctionSalesroomGoodsService.updateById(salesroomGoods); |
| | | |
| | | GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO.setGoodsSkuId(salesroomGoods.getGoodsSkuId()); |
| | | goodsStockUpdDTO.setAuctionStock(salesroomGoods.getSalesroomStock()); |
| | | goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), |
| | | SecurityConstants.INNER); |
| | | |
| | | } |
| | | |
| | | } |
| | | List<Long> list=new ArrayList<>(); |
| | | |
| | | |
| | | LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery(); |
| | | wrapper.eq(AuctionBidRecord::getAuctionSalesroomId, ationSalesroomGoodsDTO.getAuctionSalesroomId()); |
| | | wrapper.eq(AuctionBidRecord::getDelFlag, 0); |
| | |
| | | AuctionSalesroomGoods auctionSalesroomGoods=iAuctionSalesroomGoodsService.getOne(wrapper2); |
| | | auctionSalesroomGoods.setStatus(AuctionStartStatusEnum.IN_AUCTION); |
| | | iAuctionSalesroomGoodsService.updateById(auctionSalesroomGoods); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); |
| | | wrapper2.eq(AuctionSalesroomGoods::getGoodsSkuId,auctionSalesroomGoodsDTO.getGoodsSkuId()); |
| | | AuctionSalesroomGoods auctionSalesroomGood=iAuctionSalesroomGoodsService.getOne(wrapper2); |
| | | |
| | | |
| | | AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(auctionSalesroomGood.getAuctionSalesroomId()); |
| | | |
| | | AuctionSalesroomGoods auctionSalesroomGoods=iAuctionSalesroomGoodsService.getById(auctionSalesroomGoodsDTO.getGoodsSkuId()); |
| | |
| | | wrapper.eq(AuctionBidRecord::getDelFlag, 0); |
| | | wrapper.orderByDesc(AuctionBidRecord::getLastBidAmount); |
| | | auctionBidRecordList = iAuctionBidRecordService.list(wrapper); |
| | | //判断 |
| | | if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { |
| | | for (int i = 0; i <= auctionSalesroomGoods.getSalesroomStock(); i++) { |
| | | AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); |
| | | auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); |
| | | AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), |
| | | auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); |
| | | if(auctionBidRecordList.size()>0){ |
| | | //判断 |
| | | if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { |
| | | for (int i = 0; i <= auctionSalesroomGoods.getSalesroomStock(); i++) { |
| | | AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); |
| | | auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); |
| | | AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), |
| | | auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); |
| | | } |
| | | } else { |
| | | GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); |
| | | goodsStockUpdDTO.setAuctionStock(auctionSalesroomGoods.getSalesroomStock()- auctionBidRecordList.size()); |
| | | goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), |
| | | SecurityConstants.INNER); |
| | | |
| | | |
| | | for (int i = 0; i <= auctionBidRecordList.size(); i++) { |
| | | AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); |
| | | auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); |
| | | AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), |
| | | auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); |
| | | } |
| | | } |
| | | } else { |
| | | for (int i = 0; i <= auctionBidRecordList.size(); i++) { |
| | | AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); |
| | | auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); |
| | | AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), |
| | | auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); |
| | | } |
| | | }else { |
| | | // 没有人出价,退回拍卖商品库存 |
| | | GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); |
| | | goodsStockUpdDTO.setAuctionStock(auctionSalesroomGoods.getSalesroomStock()); |
| | | goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), |
| | | SecurityConstants.INNER); |
| | | } |
| | | |
| | | } |
| | | |
| | | auctionSalesroomGood.setStatus(AuctionStartStatusEnum.ENDED); |
| | |
| | | wrapper1.eq(AuctionBidRecord::getAuctionType,2); |
| | | wrapper1.eq(AuctionBidRecord::getTargetId,byId1.getId()); |
| | | wrapper1.eq(AuctionBidRecord::getDelFlag,0); |
| | | AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper1); |
| | | AuctionBidRecord list1 = iAuctionBidRecordService.getOne(wrapper1); |
| | | if (list1!=null){ |
| | | AuctionSalesroomGoodsInfoVO.setIsBond(2); |
| | | AuctionSalesroomGoodsInfoVO.setPresentBid(list1.getLastBidAmount()); |
| | |
| | | wrapper.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsInfoDTO.getGoodsSkuId()); |
| | | wrapper.orderByDesc(AuctionBidRecord::getLastBidAmount); |
| | | wrapper.last("limit 10"); |
| | | List<AuctionBidRecord> auctionBidRecordList=auctionBidRecordService.list(wrapper); |
| | | List<AuctionBidRecord> auctionBidRecordList=iAuctionBidRecordService.list(wrapper); |
| | | List<AuctionBidRecordVO> auctionBidRecordVOList=new ArrayList<>(); |
| | | for (int i=0;i<auctionBidRecordList.size();i++){ |
| | | AuctionBidRecordVO auctionBidRecordVO=new AuctionBidRecordVO(); |
| | |
| | | wrapper1.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsInfoDTO.getGoodsSkuId()); |
| | | wrapper1.eq(AuctionBidRecord::getMemberId,auctionSalesroomGoodsInfoDTO.getMemberId()); |
| | | wrapper.last("limit 1"); |
| | | AuctionBidRecord auctionBidRecord=auctionBidRecordService.getOne(wrapper); |
| | | AuctionBidRecord auctionBidRecord=iAuctionBidRecordService.getOne(wrapper); |
| | | |
| | | LambdaQueryWrapper<AuctionBidRecord> wrapper3=Wrappers.lambdaQuery(); |
| | | wrapper3.eq(AuctionBidRecord::getAuctionSalesroomId,auctionSalesroomGoodsInfoDTO.getAuctionSalesroomId()); |
| | |
| | | wrapper3.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsInfoDTO.getGoodsSkuId()); |
| | | wrapper3.le(AuctionBidRecord::getId,auctionBidRecord.getId()); |
| | | wrapper3.orderByDesc(AuctionBidRecord::getLastBidAmount); |
| | | Long count=auctionBidRecordService.count(wrapper); |
| | | Long count=iAuctionBidRecordService.count(wrapper); |
| | | if (count>0){ |
| | | AuctionBidRecordVO auctionBidRecordVO=new AuctionBidRecordVO(); |
| | | auctionBidRecordVO.setSort(Integer.valueOf(count.intValue())); |