From 5008b953cbeb32d315471cb6fff357d7452359f0 Mon Sep 17 00:00:00 2001 From: yyb <1416014977@qq.com> Date: Fri, 30 Jan 2026 09:52:24 +0800 Subject: [PATCH] =?UTF-8?q?update=202miner=20=E5=8D=96=E5=AE=B6=E6=89=8B?= =?UTF-8?q?=E7=BB=AD=E8=B4=B9=E4=BD=BF=E7=94=A8=E4=B8=8B=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E8=B4=B9=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/m2pool/lease/task/OrderAndPayTask.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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);