From e04f830d706421a1af35e0395ee49faff38e8a46 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Wed, 25 Sep 2024 10:30:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=8D=95=E8=BD=A6=E5=85=85=E6=BB=A1?= =?UTF-8?q?=E8=87=AA=E5=81=9C=E9=80=80=E6=AC=BE=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../programlogic/DelayMerchantProgramLogic.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java index 173a60054..d16829707 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java @@ -517,12 +517,6 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { orderDetail.setFlatUsedElectricity(message.getConsumedEnergy()); } - // 更新数据库 - OrderTransactionDTO dto = new OrderTransactionDTO(); - dto.setOrderBasicInfo(orderBasicInfo); - dto.setOrderDetail(orderDetail); - transactionService.doUpdateOrder(dto); - // 充满自停需要退款 BigDecimal bigDecimal = new BigDecimal("5"); if (bigDecimal.compareTo(orderBasicInfo.getPayAmount()) == 0) { @@ -532,6 +526,12 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { // 订单退款 refundOrder(orderBasicInfo); } + + // 更新数据库 + OrderTransactionDTO dto = new OrderTransactionDTO(); + dto.setOrderBasicInfo(orderBasicInfo); + dto.setOrderDetail(orderDetail); + transactionService.doUpdateOrder(dto); } /** @@ -546,6 +546,11 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { BigDecimal flatElectricityPrice = orderDetail.getFlatElectricityPrice(); // x元/每度 BigDecimal flatServicePrice = orderDetail.getFlatServicePrice(); // x元/每度 + if (consumedEnergy == null || flatElectricityPrice == null) { + logger.info("计算电单车退款逻辑,耗电量或计费模板为空,不执行退款逻辑, orderCode:{}, 耗电量:{}, 每度电费:{}", orderBasicInfo.getOrderCode(), consumedEnergy, flatElectricityPrice); + return; + } + // 消费金额 BigDecimal consumeAmount = consumedEnergy.multiply(flatElectricityPrice);