diff --git a/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java b/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java index 3633bef..2a82dea 100644 --- a/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java +++ b/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java @@ -816,22 +816,25 @@ public class OrderAndPayTask { BigDecimal totalBlockAmount = BigDecimal.ZERO; BigDecimal totalRealAmount = BigDecimal.ZERO; BigDecimal totalNeedAmount = BigDecimal.ZERO; + BigDecimal feeRate = BigDecimal.ZERO; for (LeaseOrderItem item : orderItemList) { + BigDecimal settlePayRealAmount = item.getSettlePayRealAmount(); //理论支付金额 = 单价 * 数量 * 租期天数 BigDecimal itemAmount = item.getPrice().multiply(BigDecimal.valueOf(item.getNumbers())) .multiply(BigDecimal.valueOf(item.getLeaseTime())); totalAmount = totalAmount.add(itemAmount); totalBlockAmount = totalBlockAmount.add(itemAmount); //实际支付金额 = 累积的实际支付金额 - totalRealAmount = totalRealAmount.add(item.getSettlePayRealAmount()); - totalNeedAmount = totalNeedAmount.add(item.getSettlePayRealAmount()); + totalRealAmount = totalRealAmount.add(settlePayRealAmount); + totalNeedAmount = totalNeedAmount.add(settlePayRealAmount); if (!StringUtils.isEmpty(item.getUser())){ redisMapKeyFiled.put(combinationKey(item.getPool(),item.getUser(),item.getCoin(),item.getAlgorithm()),item.getMiner()); } + //同一个订单下 只会有一个店铺中的机器费率相同 + feeRate = item.getFeeRate(); } - - BigDecimal fee = totalRealAmount.multiply(leaseShop.getFeeRate()); + BigDecimal fee = totalRealAmount.multiply(feeRate); LeasePayRecordMessage build = LeasePayRecordMessage.builder() .queueId(orderInfo.getOrderNumber()) .fromAddress(firstItem.getFromAddress()) @@ -853,8 +856,7 @@ public class OrderAndPayTask { .status(1) .sellerEmail(leaseShop.getUserEmail()) .receivedAmount(totalRealAmount.subtract(fee)) - .feeRate(leaseShop.getFeeRate()) - .feeRate(fee) + .feeRate(feeRate) .build(); reocrdList.add(build);