Ver Fonte

订单结算时强制更新订单状态

skyline há 9 meses atrás
pai
commit
bfcc939853

+ 13 - 3
service/src/main/java/com/kym/service/platform/impl/PlatformNotifyServiceImpl.java

@@ -315,10 +315,20 @@ public class PlatformNotifyServiceImpl implements PlatformNotifyService {
         // EN+平台推送重试策略是当天失败第二天再推送一次,仅此一次。EN+订单页面可以多次手动推送,所以这里要先判断订单状态,避免重复处理。
         if (chargeOrder.getChargeStatus() != ChargeOrder.CHARGE_STATUS_已结束 || chargeOrder.getOrderStatus() != ChargeOrder.ORDER_STATUS_成功) {
             // 更新订单信息
-            chargeOrder.setStartTime(LocalDateTime.parse(data.getString("StartTime"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).setEndTime(LocalDateTime.parse(data.getString("EndTime"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).setTotalPower(data.getDoubleValue("TotalPower")).setElecMoney((int) Math.round(data.getDouble("TotalElecMoney") * 100)).setServiceMoney((int) Math.round(data.getDoubleValue("TotalSeviceMoney") * 100)) // 这里文档service单词错误,按文档填写
-                    .setTotalMoney((int) Math.round(data.getDoubleValue("TotalMoney") * 100)).setStopReason(data.getIntValue("StopReason")).setSumPeriod(data.getIntValue("SumPeriod")).setChargeDetail(data.getString("ChargeDetails"))
+            chargeOrder.setStartTime(LocalDateTime.parse(data.getString("StartTime"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+                    .setEndTime(LocalDateTime.parse(data.getString("EndTime"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+                    .setTotalPower(data.getDoubleValue("TotalPower"))
+                    .setElecMoney((int) Math.round(data.getDouble("TotalElecMoney") * 100))
+                    .setServiceMoney((int) Math.round(data.getDoubleValue("TotalSeviceMoney") * 100)) // 这里文档service单词错误,按文档填写
+                    .setTotalMoney((int) Math.round(data.getDoubleValue("TotalMoney") * 100))
+                    .setStopReason(data.getIntValue("StopReason"))
+                    .setSumPeriod(data.getIntValue("SumPeriod"))
+                    .setChargeDetail(data.getString("ChargeDetails"))
                     // 实付金额初始化为订单总金额
-                    .setPayAmount(chargeOrder.getTotalMoney());
+                    .setPayAmount(chargeOrder.getTotalMoney())
+                    // 强制更新订单状态,防止订单手动结算重复扣费
+                    .setChargeStatus(ChargeOrder.CHARGE_STATUS_已结束)
+                    .setOrderStatus(ChargeOrder.ORDER_STATUS_成功);
 
             // 结束时间
             var endTime = LocalDateTime.parse(data.getString("EndTime"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));