From 1f3e9dc85399290910cde7149806323305544e0d Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期六, 20 七月 2024 19:17:23 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 74 +++++++++++++++++++++++++----------- 1 files changed, 51 insertions(+), 23 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 fa8ca17..987e1c0 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 @@ -317,12 +317,29 @@ id); List<AuctionBidRecord> auctionBidRecordList = new ArrayList<>(); if (StringUtils.isNotEmpty(auctionBidRecords)) { - // 中标 - for (int i = 0; i < auctionGoods.getAuctionStock(); i++) { - AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i); - auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); - auctionBidRecordList.add(auctionBidRecord); + if (auctionBidRecords.size() >= auctionGoods.getAuctionStock()) { + // 中标 + for (int i = 0; i < auctionGoods.getAuctionStock(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + auctionBidRecordList.add(auctionBidRecord); + } + } else { + // 中标 + for (int i = 0; i < auctionGoods.getAuctionStock(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + auctionBidRecordList.add(auctionBidRecord); + } + // 退回剩余库存 + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(auctionGoods.getGoodsSkuId()); + goodsStockUpdDTO.setAuctionStock( + auctionGoods.getAuctionStock() - auctionBidRecordList.size()); + goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), + SecurityConstants.INNER); } + auctionBidRecordService.updateBatchById(auctionBidRecordList); // 创建待支付订单 @@ -330,11 +347,12 @@ ConfigEnum.MEMBER_POINTS_MONEY.getKey()).getData(); CustomConfig pointsConfig = sysUserClient.getconfig( ConfigEnum.MEMBER_POINTS_POINTS.getKey()).getData(); - double ratio = - Double.parseDouble( - pointsConfig.getConfigValue()) / Double.parseDouble( - moneyConfig.getConfigValue()); for (AuctionBidRecord auctionBidRecord : auctionBidRecordList) { + BigDecimal lastBidAmount = auctionBidRecord.getLastBidAmount(); + BigDecimal divide = lastBidAmount.divide( + new BigDecimal(moneyConfig.getConfigValue()), 0, RoundingMode.DOWN); + int points = divide.multiply( + new BigDecimal(pointsConfig.getConfigValue())).intValue(); OrderDTO orderDTO = new OrderDTO(); orderDTO.setAuctionType(AuctionOrderTypeEnum.REGULAR_ITEMS); orderDTO.setGoodsQuantity(auctionGoods.getAuctionStock()); @@ -344,8 +362,7 @@ orderDTO.setTotalAmount(auctionBidRecord.getLastBidAmount()); orderDTO.setOrderFrom(OrderFromEnum.AUCTION_ORDERS); orderDTO.setOrderTime(LocalDateTime.now()); - orderDTO.setPoints(auctionBidRecord.getLastBidAmount() - .multiply(BigDecimal.valueOf(ratio)).intValue()); + orderDTO.setPoints(points); orderDTO.setBound(auctionGoods.getBond()); MemberAddress data = memberClient.getMemberAddressOne( auctionBidRecord.getMemberId(), SecurityConstants.INNER).getData(); @@ -692,12 +709,29 @@ id); List<AuctionBidRecord> auctionBidRecordList = new ArrayList<>(); if (StringUtils.isNotEmpty(auctionBidRecords)) { - // 中标 - for (int i = 0; i < auctionGoods.getAuctionStock(); i++) { - AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i); - auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); - auctionBidRecordList.add(auctionBidRecord); + if (auctionBidRecords.size() >= auctionGoods.getAuctionStock()) { + // 中标 + for (int i = 0; i < auctionGoods.getAuctionStock(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + auctionBidRecordList.add(auctionBidRecord); + } + } else { + // 中标 + for (int i = 0; i < auctionGoods.getAuctionStock(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecords.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + auctionBidRecordList.add(auctionBidRecord); + } + // 退回剩余库存 + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(auctionGoods.getGoodsSkuId()); + goodsStockUpdDTO.setAuctionStock( + auctionGoods.getAuctionStock() - auctionBidRecords.size()); + goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), + SecurityConstants.INNER); } + auctionBidRecordService.updateBatchById(auctionBidRecordList); // 创建待支付订单 @@ -705,12 +739,6 @@ ConfigEnum.MEMBER_POINTS_MONEY.getKey()).getData(); CustomConfig pointsConfig = sysUserClient.getconfig( ConfigEnum.MEMBER_POINTS_POINTS.getKey()).getData(); - BigDecimal ratio = - BigDecimal.valueOf(Double.parseDouble( - pointsConfig.getConfigValue())) - .divide(BigDecimal.valueOf(Double.parseDouble( - moneyConfig.getConfigValue())), 0, RoundingMode.DOWN); - for (AuctionBidRecord auctionBidRecord : auctionBidRecordList) { BigDecimal lastBidAmount = auctionBidRecord.getLastBidAmount(); BigDecimal divide = lastBidAmount.divide( @@ -798,7 +826,7 @@ return null; }).filter(Objects::nonNull).collect(Collectors.toList()); // 远程调用订单服务修改订单状态 - orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID, + orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.REFUNDED, SecurityConstants.INNER); } } -- Gitblit v1.7.1