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);