From e0ca7fc7ac4bd51ebf43328948cfba28b3f15e8a Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 01 七月 2022 11:14:27 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
index 261fdb0..6ae4861 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -36,6 +36,7 @@
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -347,7 +348,22 @@
      *
      * @param c3Mac
      */
-    public String finishCharging(String c3Mac) {
+    @Transactional(rollbackFor = Exception.class)
+    public String finishCharging(String c3Mac, String openId) {
+        //鏌ヨ
+        if (openId.isEmpty()) {
+            throw new BusinessException("openId涓嶈兘涓虹┖");
+        }
+        //鏌ヨ璇ュ厖鐢垫々鏈�杩戠殑璁㈠崟
+        C3mOrder order = SpringContextHolder.getBean(C3mOrderService.class).getOne(Wrappers.lambdaQuery(C3mOrder.class)
+                .eq(C3mOrder::getC3Mac, c3Mac).eq(C3mOrder::getChargingStates, 0).last("limit 1"));
+
+        if (order == null) {
+            throw new BusinessException("鍏呯數妗╂病鏈夎繘琛屼腑鐨勮鍗�");
+        }
+        if (!openId.equals(order.getOrderId())) {
+            throw new BusinessException("涓嶈兘鎿嶄綔涓嶅睘浜庢偍鐨勮鍗�");
+        }
 
         C3FinishChargingReqInnerFrame c3FinishChargingReqInnerFrame =
                 new C3FinishChargingReqInnerFrame(c3Mac);
@@ -368,13 +384,18 @@
         //缁撴潫鍏呯數 鏇存敼璁㈠崟鐘舵��
         C3mOrder lastOrderByC3Mac = SpringContextHolder.getBean(C3mOrderService.class).getLastOrderByC3Mac(c3Mac);
         if (lastOrderByC3Mac != null) {
+            //璁剧疆璁㈠崟鐘舵�佷负宸插畬鎴�
             lastOrderByC3Mac.setOrderStatus(OrderStatus.COMPLETE.getStatus());
+
             BigDecimal actualChargingCapacity = BigDecimal.valueOf(lastOrderByC3Mac.getActualChargingCapacity());
             BigDecimal actualChargingCapacityHide = BigDecimal.valueOf(lastOrderByC3Mac.getActualChargingCapacityHide());
+            //璁剧疆瀹為檯鍏呯數鐢甸噺
             lastOrderByC3Mac.setActualChargingCapacity(actualChargingCapacity.add(actualChargingCapacityHide).doubleValue());
             //璁剧疆璁㈠崟缁撴潫鏃堕棿
             lastOrderByC3Mac.setStopChargingTimestamp(System.currentTimeMillis());
             lastOrderByC3Mac.setActualChargingCapacity(0.00);
+            //璁剧疆璁㈠崟鐘舵�佷负鍏呯數缁撴潫
+            lastOrderByC3Mac.setChargingStates(1);
             SpringContextHolder.getBean(C3mOrderService.class).updateById(lastOrderByC3Mac);
         }
         if (operationReportInnerFrame.isValidate()) {

--
Gitblit v1.9.3