Browse Source

feat(charging): 优化充电状态响应数据解析方式

- 引入 JsonNode 替代原有对象反序列化方式
- 更新数据库连接地址与认证信息
- 修改 Redis 数据库索引配置
- 调整充电状态数据解析逻辑以适配新结构
- 保留原反序列化代码作为注释供后续参考
wzq 1 week ago
parent
commit
45e156aa8a

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

@@ -1,5 +1,6 @@
 package com.zsElectric.boot.charging.service.impl;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.zsElectric.boot.charging.service.ChargingReceptionService;
 import com.zsElectric.boot.charging.vo.*;
@@ -42,11 +43,14 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
             if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
-                chargingStatusResponseVO = objectMapper.readValue(decryptData, ChargingStatusResponseVO.class);
+                JsonNode jsonNode = objectMapper.readTree(decryptData);
+//                equipChargeStatusResponseVO = objectMapper.readValue(decryptData, EquipChargeStatusResponseVO.class);
                 //todo 业务代码待处理
 
 
-                chargeResponseVO.setStartChargeSeq(chargingStatusResponseVO.getStartChargeSeq());
+
+                chargeResponseVO.setStartChargeSeq(jsonNode.get("StartChargeSeq").asText());
+//                chargeResponseVO.setStartChargeSeq(equipChargeStatusResponseVO.getStartChargeSeq());
                 chargeResponseVO.setSuccStat(STATUS_OK);
                 chargeResponseVO.setFailReason(FAIL_REASON_NONE);
                 encryptData = chargingUtil.encryptData(objectMapper.writeValueAsString(chargeResponseVO));
@@ -80,12 +84,14 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
             if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
-                equipChargeStatusResponseVO = objectMapper.readValue(decryptData, EquipChargeStatusResponseVO.class);
+                JsonNode jsonNode = objectMapper.readTree(decryptData);
+//                equipChargeStatusResponseVO = objectMapper.readValue(decryptData, EquipChargeStatusResponseVO.class);
                 //todo 业务代码待处理
 
 
 
-                chargeResponseVO.setStartChargeSeq(equipChargeStatusResponseVO.getStartChargeSeq());
+                chargeResponseVO.setStartChargeSeq(jsonNode.get("StartChargeSeq").asText());
+//                chargeResponseVO.setStartChargeSeq(equipChargeStatusResponseVO.getStartChargeSeq());
                 chargeResponseVO.setSuccStat(STATUS_OK);
                 chargeResponseVO.setFailReason(FAIL_REASON_NONE);
                 encryptData = chargingUtil.encryptData(objectMapper.writeValueAsString(chargeResponseVO));
@@ -120,11 +126,14 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
             if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
-                stopChargingResponseVO = objectMapper.readValue(decryptData, StopChargingResponseVO.class);
+                JsonNode jsonNode = objectMapper.readTree(decryptData);
+//                equipChargeStatusResponseVO = objectMapper.readValue(decryptData, EquipChargeStatusResponseVO.class);
                 //todo 业务代码待处理
 
 
-                chargeResponseVO.setStartChargeSeq(stopChargingResponseVO.getStartChargeSeq());
+
+                chargeResponseVO.setStartChargeSeq(jsonNode.get("StartChargeSeq").asText());
+//                chargeResponseVO.setStartChargeSeq(equipChargeStatusResponseVO.getStartChargeSeq());
                 chargeResponseVO.setSuccStat(STATUS_OK);
                 chargeResponseVO.setFailReason(FAIL_REASON_NONE);
                 encryptData = chargingUtil.encryptData(objectMapper.writeValueAsString(chargeResponseVO));
@@ -159,11 +168,14 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
             if(verify(data, ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
                 String decryptData = chargingUtil.decryptData(requestDTO.getData());
                 log.info("解密后的数据:{}", decryptData);
-                chargingOrderVO = objectMapper.readValue(decryptData, ChargingOrderVO.class);
+                JsonNode jsonNode = objectMapper.readTree(decryptData);
+//                equipChargeStatusResponseVO = objectMapper.readValue(decryptData, EquipChargeStatusResponseVO.class);
                 //todo 业务代码待处理
 
 
-                chargeResponseVO.setStartChargeSeq(chargingOrderVO.getStartChargeSeq());
+
+                chargeResponseVO.setStartChargeSeq(jsonNode.get("StartChargeSeq").asText());
+//                chargeResponseVO.setStartChargeSeq(equipChargeStatusResponseVO.getStartChargeSeq());
                 chargeResponseVO.setSuccStat(STATUS_OK);
                 chargeResponseVO.setFailReason(FAIL_REASON_NONE);
                 encryptData = chargingUtil.encryptData(objectMapper.writeValueAsString(chargeResponseVO));

+ 3 - 3
src/main/resources/application-dev.yml

@@ -5,12 +5,12 @@ spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://rm-bp15g68z8j527q9n9xo.mysql.rds.aliyuncs.com:3306/zs_electric?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://rm-2vc2zl1990od9qvg0eo.mysql.cn-chengdu.rds.aliyuncs.com:3306/zs_electric?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
     username: root
-    password: BXyzm3RKR2nA9vn5ZkeP!
+    password: 1KQaNI+vPz8^xfYcb%l6
   data:
     redis:
-      database: 0
+      database: 6
       host: 47.109.18.141
       port: 6379
       password: BXyzm3RKR2nA9vn5ZkeP