| | |
| | | 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); |
| | | |
| | | // 创建待支付订单 |
| | |
| | | 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()); |
| | |
| | | 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(); |
| | |
| | | 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); |
| | | |
| | | // 创建待支付订单 |
| | |
| | | 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( |
| | |
| | | return null; |
| | | }).filter(Objects::nonNull).collect(Collectors.toList()); |
| | | // 远程调用订单服务修改订单状态 |
| | | orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID, |
| | | orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.REFUNDED, |
| | | SecurityConstants.INNER); |
| | | } |
| | | } |