Browse Source

feat(charging): 增加充电状态、停止充电结果和充电订单信息的推送接口

- 新增推送充电状态接口 /notification_equip_charge_status
- 新增推送停止充电结果接口 /notification_stop_charge_result
- 新增推送充电订单信息接口 /notification_charge_order_info
- 修改签名验证逻辑,拼接operatorID、data、timeStamp和seq进行验证
SheepHy 3 weeks ago
parent
commit
cd1a04f663

+ 26 - 0
src/main/java/com/zsElectric/boot/charging/controller/LinkDataController.java

@@ -33,5 +33,31 @@ public class LinkDataController {
         return chargingReceptionService.chargeResponse(requestDTO);
     }
 
+    /**
+     * 2.6 推送充电状态
+     * */
+    @Operation(summary = "推送充电状态")
+    @GetMapping("/notification_equip_charge_status")
+    public ResponseParmsEntity chargeStatusResponse(@RequestBody RequestParmsEntity requestDTO){
+        return chargingReceptionService.chargeStatusResponse(requestDTO);
+    }
+
+    /**
+     * 2.8 推送停止充电结果
+     * */
+    @Operation(summary = "推送停止充电结果")
+    @GetMapping("/notification_stop_charge_result")
+    public ResponseParmsEntity stopChargeResponse(@RequestBody RequestParmsEntity requestDTO){
+        return chargingReceptionService.stopChargeResponse(requestDTO);
+    }
+
+    /**
+     * 2.9 推送充电订单信息
+     * */
+    @Operation(summary = "推送充电订单信息")
+    @GetMapping("/notification_charge_order_info")
+    public ResponseParmsEntity chargeOrderResponse(@RequestBody RequestParmsEntity requestDTO){
+        return chargingReceptionService.chargeOrderResponse(requestDTO);
+    }
 
 }

+ 8 - 4
src/main/java/com/zsElectric/boot/charging/service/impl/ChargingReceptionServiceImpl.java

@@ -33,7 +33,8 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
         String encryptData;
         String genSign;
         try {
-            if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
+            String data = requestDTO.getOperatorID() + requestDTO.getData() + requestDTO.getTimeStamp() + requestDTO.getSeq();
+            if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
                 chargingStatusResponseVO = new Gson().fromJson(decryptData, ChargingStatusResponseVO.class);
@@ -68,7 +69,8 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
         String encryptData;
         String genSign;
         try {
-            if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
+            String data = requestDTO.getOperatorID() + requestDTO.getData() + requestDTO.getTimeStamp() + requestDTO.getSeq();
+            if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
                 equipChargeStatusResponseVO = new Gson().fromJson(decryptData, EquipChargeStatusResponseVO.class);
@@ -104,7 +106,8 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
         String encryptData;
         String genSign;
         try {
-            if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
+            String data = requestDTO.getOperatorID() + requestDTO.getData() + requestDTO.getTimeStamp() + requestDTO.getSeq();
+            if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
                 stopChargingResponseVO = new Gson().fromJson(decryptData, StopChargingResponseVO.class);
@@ -139,7 +142,8 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
         String encryptData;
         String genSign;
         try {
-            if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
+            String data = requestDTO.getOperatorID() + requestDTO.getData() + requestDTO.getTimeStamp() + requestDTO.getSeq();
+            if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
                 chargingOrderVO = new Gson().fromJson(decryptData, ChargingOrderVO.class);