From 499ab5e5815d4f53ec27e0524c1c9896d1552e25 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期四, 01 八月 2024 00:35:18 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 104 ++++++++-------- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 249 ++++++++++++++++++----------------------- 2 files changed, 161 insertions(+), 192 deletions(-) diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java index bdee7c4..fa3e0d6 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java @@ -38,18 +38,7 @@ import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.constants.ConfigEnum; import com.ruoyi.system.api.constants.NotificationTypeConstant; -import com.ruoyi.system.api.domain.AuctionGoods; -import com.ruoyi.system.api.domain.CustomConfig; -import com.ruoyi.system.api.domain.GoodsBrand; -import com.ruoyi.system.api.domain.GoodsCategory; -import com.ruoyi.system.api.domain.GoodsFlavorType; -import com.ruoyi.system.api.domain.GoodsSeries; -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.Order; -import com.ruoyi.system.api.domain.OrderAuctionBond; -import com.ruoyi.system.api.domain.WebsocketMessageDTO; +import com.ruoyi.system.api.domain.*; import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; @@ -57,10 +46,7 @@ import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; -import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; -import com.ruoyi.system.api.domain.vo.AuctionGoodsinfoVO; -import com.ruoyi.system.api.domain.vo.GoodsInfoTitleValueVO; -import com.ruoyi.system.api.domain.vo.getHomeGoodsSkuXxiVO; +import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.feignClient.AuctionClient; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import com.ruoyi.system.api.feignClient.MemberClient; @@ -661,59 +647,75 @@ @Override public PageDTO<AuctionGoodsListVO> getWdAuctionSalesList(AuctionGoodsListDTO auctionGoodsListDTO) { + MemberAuctionSalesroomDTO memberAuctionSalesroomDTO =new MemberAuctionSalesroomDTO(); memberAuctionSalesroomDTO.setMemberId(auctionGoodsListDTO.getMemberId()); List<OrderAuctionBond> data = orderClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData(); - Set<Long> goodsSkuIdList = null; + List<Long> goodsSkuIdList = null; if (data.size()>0){ goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionGoodsId) - .collect(Collectors.toSet()); + .collect(Collectors.toList()); }else { - Set<Long> goodsSkuIdList1 =new HashSet<>(); + List<Long> goodsSkuIdList1 =new ArrayList<>(); goodsSkuIdList1.add(0L); goodsSkuIdList=goodsSkuIdList1; } - AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO(); - if (goodsSkuIdList!=null){ - auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList); + + List<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.toList()); } - if (auctionGoodsListDTO.getStartStatus()!=4){ - if (auctionGoodsListDTO.getStartStatus()==0){ - auctionGoodsListPageDTO.setStartStatus(5); - }else{ - auctionGoodsListPageDTO.setStartStatus(auctionGoodsListDTO.getStartStatus()); - } + + Page<AuctionGoods> page = new Page<>(auctionGoodsListDTO.getPageCurr(), + auctionGoodsListDTO.getPageSize()); + LambdaQueryWrapper<AuctionGoods> wrapper1=Wrappers.lambdaQuery(); + if (goodsSkuIdList.size()>0){ + wrapper1.in(AuctionGoods::getId,goodsSkuIdList); } + if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) { + if (goodsSkuIdList1.size()>0){ + wrapper1.in(AuctionGoods::getGoodsSkuId,goodsSkuIdList1); + }else{ + goodsSkuIdList1=new ArrayList<>(); + goodsSkuIdList1.add(0L); + wrapper1.in(AuctionGoods::getGoodsSkuId,goodsSkuIdList1); + } + } + if (auctionGoodsListDTO.getStartStatus() != 4) { + wrapper1.eq(AuctionGoods::getStartStatus,auctionGoodsListDTO.getStartStatus()); + } + wrapper1.last("ORDER BY\n" + + " CASE\n" + + " WHEN start_status = 0 THEN 2\n" + + " WHEN start_status = 1 THEN 1\n" + + " WHEN start_status = 2 THEN 3\n" + + " END,start_status asc "); - Page<AuctionGoodsListVO> page = new Page<>(); - page.setSize(auctionGoodsListDTO.getPageSize()); - page.setCurrent(auctionGoodsListDTO.getPageCurr()); - 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(); + Page<AuctionGoods> auctionSalesroomList=this.page(page,wrapper1); + PageDTO<AuctionGoodsListVO> wdMemberAuctionSalesroomVOPageDTO = PageDTO.of(auctionSalesroomList, AuctionGoodsListVO.class); + List<AuctionGoodsListVO> list = wdMemberAuctionSalesroomVOPageDTO.getList(); + for (AuctionGoodsListVO auctionGoodsVO:list){ + + GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoodsVO.getGoodsSkuId(), SecurityConstants.INNER).getData(); auctionGoodsVO.setUnit(goodsSkuOne.getUnit()); auctionGoodsVO.setSpec(goodsSkuOne.getSpec()); auctionGoodsVO.setSpecUnit(goodsSkuOne.getSpecUnit()); auctionGoodsVO.setGoodsSkuName(goodsSkuOne.getSkuName()); auctionGoodsVO.setCoverPic(goodsSkuOne.getCoverPic()); - LambdaQueryWrapper<AuctionBidRecord> wrapper1= Wrappers.lambdaQuery(); - wrapper1.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId()); - wrapper1.eq(AuctionBidRecord::getAuctionType,1); - wrapper1.eq(AuctionBidRecord::getTargetId,auctionGoods.getId()); - wrapper1.eq(AuctionBidRecord::getDelFlag,0); - AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper1); + LambdaQueryWrapper<AuctionBidRecord> wrapper2= Wrappers.lambdaQuery(); + wrapper2.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId()); + wrapper2.eq(AuctionBidRecord::getAuctionType,1); + wrapper2.eq(AuctionBidRecord::getTargetId,auctionGoodsVO.getId()); + wrapper2.eq(AuctionBidRecord::getDelFlag,0); + AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper2); if (list1!=null){ if (list1.getStatus().getCode()==2){ auctionGoodsVO.setIsStatus(2); @@ -723,12 +725,10 @@ }else{ auctionGoodsVO.setIsStatus(1); } - - auctionGoodsVOS.add(auctionGoodsVO); + auctionGoodsVO.setGoodsSkuId(auctionGoodsVO.getId()); } - page.setRecords(auctionGoodsVOS); - return PageDTO.of(page); + return wdMemberAuctionSalesroomVOPageDTO; } @Override diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java index 7ec091d..a9fa108 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java @@ -1049,30 +1049,11 @@ List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData(); Set<Long> goodsSkuIdList = null; goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId) - .collect(Collectors.toSet()); + .collect(Collectors.toSet()); - /* MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO(); - if (goodsSkuIdList.size()>0){ - memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList); - }else{ - Set<Long> goodsSkuIdList1 = new HashSet<>(); - goodsSkuIdList1.add(0L); - memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList1); - } - - if(MemberAuctionSalesroomDTO.getStatus()!=4){ - if (MemberAuctionSalesroomDTO.getStatus()==0){ - memberAuctionSalesroomWdDTO.setStatus(5); - }else{ - memberAuctionSalesroomWdDTO.setStatus(MemberAuctionSalesroomDTO.getStatus()); - } - - }*/ Page<AuctionSalesroom> page = new Page<>(memberAuctionSalesroomDTO.getPageCurr(), memberAuctionSalesroomDTO.getPageSize()); - // page.setSize(memberAuctionSalesroomDTO.getPageSize()); - // page.setCurrent(memberAuctionSalesroomDTO.getPageCurr()); LambdaQueryWrapper<AuctionSalesroom> wrapper1=Wrappers.lambdaQuery(); if (goodsSkuIdList.size()>0){ wrapper1.in(AuctionSalesroom::getId,goodsSkuIdList); @@ -1256,51 +1237,53 @@ MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(id, Boolean.TRUE); MgtAuctionSalesroomScreenVO vo = BeanUtils.copyBean( mgtAuctionSalesroomVO, MgtAuctionSalesroomScreenVO.class); - List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS(); - if (StringUtils.isNotEmpty(auctionSalesroomGoodsVOS)) { - List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream() - .peek(goods -> { - List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery() - .eq(AuctionBidRecord::getTargetId, goods.getId()) - .eq(AuctionBidRecord::getAuctionType, - AuctionOrderTypeEnum.AUCTION_ITEMS) - .list(); - if (StringUtils.isNotEmpty(list)) { - long bidCount = list.stream() - .filter(item -> BidStatusEnum.SUCCESSFUL.equals( - item.getStatus())) - .count(); - goods.setBidCount((int) bidCount); - goods.setBidQuantity((int) bidCount); - goods.setBidPersonCount(list.size()); - } - if (goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) { - vo.setCurrentAuctionSalesroomGoods(goods); - } - }).collect(Collectors.toList()); - vo.setAuctionSalesroomGoodsVOS(collect); - if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) { - int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods()); - if (collect.size() > 1 && index < collect.size() - 1) { - vo.setNextAuctionSalesroomGoods(collect.get(index + 1)); + if (vo.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) { + List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS(); + if (StringUtils.isNotEmpty(auctionSalesroomGoodsVOS)) { + List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream() + .peek(goods -> { + List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery() + .eq(AuctionBidRecord::getTargetId, goods.getId()) + .eq(AuctionBidRecord::getAuctionType, + AuctionOrderTypeEnum.AUCTION_ITEMS) + .list(); + if (StringUtils.isNotEmpty(list)) { + long bidCount = list.stream() + .filter(item -> BidStatusEnum.SUCCESSFUL.equals( + item.getStatus())) + .count(); + goods.setBidCount((int) bidCount); + goods.setBidQuantity((int) bidCount); + goods.setBidPersonCount(list.size()); + } + if (goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) { + vo.setCurrentAuctionSalesroomGoods(goods); + } + }).collect(Collectors.toList()); + vo.setAuctionSalesroomGoodsVOS(collect); + if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) { + int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods()); + if (collect.size() > 1 && index < collect.size() - 1) { + vo.setNextAuctionSalesroomGoods(collect.get(index + 1)); + } + // 分页查询当前拍品出价信息 + List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery() + .eq(AuctionBidRecord::getTargetId, + vo.getCurrentAuctionSalesroomGoods().getId()) + .eq(AuctionBidRecord::getAuctionType, + AuctionOrderTypeEnum.AUCTION_ITEMS) + .list(); + if (StringUtils.isNotEmpty(list)) { + vo.setMgtAuctionBidRecordVOList(CollUtils.emptyList()); + } + vo.setMgtAuctionBidRecordVOList( + BeanUtils.copyList(list, MgtAuctionBidRecordVO.class)); + } else { + Optional<MgtAuctionSalesroomGoodsVO> first = collect.stream() + .filter(c -> c.getStatus().equals(AuctionGoodsStatusEnum.WAITING)) + .findFirst(); + vo.setNextAuctionSalesroomGoods(first.orElse(null)); } - // 分页查询当前拍品出价信息 - List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery() - .eq(AuctionBidRecord::getTargetId, - vo.getCurrentAuctionSalesroomGoods().getId()) - .eq(AuctionBidRecord::getAuctionType, - AuctionOrderTypeEnum.AUCTION_ITEMS) - .list(); - if (StringUtils.isNotEmpty(list)) { - vo.setMgtAuctionBidRecordVOList(CollUtils.emptyList()); - } - vo.setMgtAuctionBidRecordVOList( - BeanUtils.copyList(list, MgtAuctionBidRecordVO.class)); - } else { - Optional<MgtAuctionSalesroomGoodsVO> first = collect.stream() - .filter(c -> c.getStatus().equals(AuctionGoodsStatusEnum.WAITING)) - .findFirst(); - vo.setNextAuctionSalesroomGoods(first.orElse(null)); } } return vo; @@ -1459,82 +1442,68 @@ */ @Override public void stopCurrentGoods(Long id) throws JsonProcessingException { - RLock lock = redissonClient.getLock("stopCurrentGoods" + id); - lock.lock(10, TimeUnit.SECONDS); - try { - AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById( - id); - if (StringUtils.isNull(auctionSalesroomGoods)) { - throw new ServiceException("拍卖商品不存在"); - } - if (auctionSalesroomGoods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) { - AuctionSalesroom auctionSalesroom = this.getById( - auctionSalesroomGoods.getAuctionSalesroomId()); - auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); - auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods); - List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList( - Wrappers.lambdaQuery(AuctionBidRecord.class) - .eq(AuctionBidRecord::getAuctionSalesroomId, - auctionSalesroomGoods.getAuctionSalesroomId()) - .eq(AuctionBidRecord::getTargetId, auctionSalesroomGoods.getId()) - .eq(AuctionBidRecord::getAuctionType, - AuctionOrderTypeEnum.AUCTION_ITEMS) - .orderByDesc(AuctionBidRecord::getLastBidAmount)); - if (CollUtils.isNotEmpty(auctionBidRecordList)) { - List<AuctionBidRecord> auctionBidRecords = new ArrayList<>(); - if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { - for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) { - AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); - auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); - auctionBidRecordMapper.updateById(auctionBidRecord); - auctionBidRecords.add(auctionBidRecord); - } - } else { - for (int i = 0; i < auctionBidRecordList.size(); i++) { - AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); - auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); - auctionBidRecordMapper.updateById(auctionBidRecord); - auctionBidRecords.add(auctionBidRecord); - } - // 没有出价记录,回退库存 - GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); - goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); - goodsStockUpdDTO.setAuctionStock( - auctionSalesroomGoods.getSalesroomStock() - - auctionBidRecordList.size()); - goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), - SecurityConstants.INNER); - } - for (AuctionBidRecord auctionBidRecord : auctionBidRecords) { - 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); - } - Map<String, Object> map = new ConcurrentHashMap<>(); - map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); - map.put("auctionSalesroomId", - auctionSalesroomGoods.getAuctionSalesroomId().toString()); - map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString()); - map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus()); - map.put("message_type", "stop"); - map.put("type", "2"); - String msg = objectMapper.writeValueAsString(map); - sysUserClient.pushAll(msg, SecurityConstants.INNER); - } - } finally { - if (lock.isLocked() && lock.isHeldByCurrentThread()) { - lock.unlock(); - } + AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id); + if (StringUtils.isNull(auctionSalesroomGoods)) { + throw new ServiceException("拍卖商品不存在"); } + AuctionSalesroom auctionSalesroom = this.getById( + auctionSalesroomGoods.getAuctionSalesroomId()); + auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); + auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods); + List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList( + Wrappers.lambdaQuery(AuctionBidRecord.class) + .eq(AuctionBidRecord::getAuctionSalesroomId, + auctionSalesroomGoods.getAuctionSalesroomId()) + .eq(AuctionBidRecord::getTargetId, auctionSalesroomGoods.getId()) + .eq(AuctionBidRecord::getAuctionType, AuctionOrderTypeEnum.AUCTION_ITEMS) + .orderByDesc(AuctionBidRecord::getLastBidAmount)); + if (CollUtils.isNotEmpty(auctionBidRecordList)) { + List<AuctionBidRecord> auctionBidRecords = new ArrayList<>(); + if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { + for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + auctionBidRecordMapper.updateById(auctionBidRecord); + auctionBidRecords.add(auctionBidRecord); + } + } else { + for (int i = 0; i < auctionBidRecordList.size(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + auctionBidRecordMapper.updateById(auctionBidRecord); + auctionBidRecords.add(auctionBidRecord); + } + // 没有出价记录,回退库存 + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); + goodsStockUpdDTO.setAuctionStock( + auctionSalesroomGoods.getSalesroomStock() - auctionBidRecordList.size()); + goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), + SecurityConstants.INNER); + } + for (AuctionBidRecord auctionBidRecord : auctionBidRecords) { + 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); + } + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); + map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString()); + map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString()); + map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus()); + map.put("message_type", "stop"); + map.put("type", "2"); + String msg = objectMapper.writeValueAsString(map); + sysUserClient.pushAll(msg, SecurityConstants.INNER); } public void addOrder(Long goodsSkuId, Long memberId, BigDecimal lastBidAmount, @@ -1724,7 +1693,7 @@ List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList( Wrappers.<AuctionBidRecord>lambdaQuery() .eq(AuctionBidRecord::getAuctionSalesroomId, auctionSalesroomId) - .eq(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL)); + .ne(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL)); Set<Long> memberIdList = new HashSet<>(); if (CollUtils.isNotEmpty(auctionBidRecordList)) { memberIdList = auctionBidRecordList.stream().map(AuctionBidRecord::getMemberId) -- Gitblit v1.7.1