Parcourir la source

feat(charging): 新增充电业务

- 在接口及互联互通配置开发环境和生产环境配置文件中添加了互联互通接口路径/dev/v1/linkData/**
- 在knife4j接口文档配置中增加了路径
-充电控制器包扫描 修改充电业务控制器ChargingBusinessController中的多个接口方法签名,添加throws Exception声明
- 更新充电业务服务实现类ChargingBusinessServiceImpl中的请求地址,增加测试域名前缀
- 调整ChargingUtil工具类中加密方法,将decrypt改为encrypt处理请求数据
- 更新TokenManager中获取token的请求地址,增加测试域名前缀并调整加密方式
SheepHy il y a 3 semaines
Parent
commit
d8ae58fc50

+ 7 - 8
src/main/java/com/zsElectric/boot/charging/controller/ChargingBusinessController.java

@@ -17,12 +17,11 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
-
-@Tag(name = "充电业务相关接口")
+@Slf4j
 @RestController
-@RequestMapping("/dev/v1/linkData")
 @RequiredArgsConstructor
-@Slf4j
+@Tag(name = "充电业务相关接口")
+@RequestMapping("/dev/v1/linkData")
 public class ChargingBusinessController {
 
     private final ChargingBusinessService chargingBusinessService;
@@ -52,7 +51,7 @@ public class ChargingBusinessController {
      */
     @Operation(summary = "查询业务策略信息")
     @GetMapping("/queryEquipAuth")
-    public Result<EquipmentAuthResponseVO> queryEquipAuth(String EquipAuthSeq, String ConnectorID){
+    public Result<EquipmentAuthResponseVO> queryEquipAuth(String EquipAuthSeq, String ConnectorID) throws Exception {
         return Result.success(chargingBusinessService.queryEquipAuth(EquipAuthSeq, ConnectorID));
     }
 
@@ -67,9 +66,9 @@ public class ChargingBusinessController {
      */
     @Operation(summary = "查询充电站信息")
     @GetMapping("/queryStationsInfo")
-    public Result<QueryStationsInfoVO> queryStationsInfo(@RequestParam("LastQueryTime") @Schema(description = "最后一次查询时间") String LastQueryTime,
+    public Result<QueryStationsInfoVO> queryStationsInfo(@RequestParam(value = "LastQueryTime", required = false) @Schema(description = "最后一次查询时间") String LastQueryTime,
                                                          @RequestParam(value = "PageNo",defaultValue = "1") @Schema(description = "页码") Integer PageNo,
-                                                         @RequestParam(value = "PageSize", defaultValue = "10") @Schema(description = "页大小") Integer PageSize){
+                                                         @RequestParam(value = "PageSize", defaultValue = "10") @Schema(description = "页大小") Integer PageSize) throws Exception {
         return Result.success(chargingBusinessService.queryStationsInfo(LastQueryTime, PageNo, PageSize));
     }
 
@@ -82,7 +81,7 @@ public class ChargingBusinessController {
      */
     @Operation(summary = "设备接口状态查询")
     @GetMapping("/queryStationStatus")
-     public Result<QueryStationStatusVO> queryStationStatus(List<String> stationIDs){
+     public Result<QueryStationStatusVO> queryStationStatus(List<String> stationIDs) throws Exception {
         return Result.success(chargingBusinessService.queryStationStatus(stationIDs));
      }
 }

+ 3 - 3
src/main/java/com/zsElectric/boot/charging/service/ChargingBusinessService.java

@@ -27,7 +27,7 @@ public interface ChargingBusinessService {
      * @return 返回值描述,如无返回值则为void 返回值为类则包含{@link EquipmentAuthResponseVO}
      *
      */
-    EquipmentAuthResponseVO queryEquipAuth(String EquipAuthSeq, String ConnectorID);
+    EquipmentAuthResponseVO queryEquipAuth(String EquipAuthSeq, String ConnectorID) throws Exception;
 
     /**
      * <p>查询充电站信息</p>
@@ -38,7 +38,7 @@ public interface ChargingBusinessService {
      * @return 充电站信息列表
      *
      */
-    QueryStationsInfoVO queryStationsInfo(String LastQueryTime, Integer PageNo, Integer PageSize);
+    QueryStationsInfoVO queryStationsInfo(String LastQueryTime, Integer PageNo, Integer PageSize) throws Exception;
 
     /**
      * <p>设备接口状态查询</p>
@@ -47,5 +47,5 @@ public interface ChargingBusinessService {
      * @return 充电站状态列表
      *
      */
-    QueryStationStatusVO queryStationStatus(List<String> stationIDs);
+    QueryStationStatusVO queryStationStatus(List<String> stationIDs) throws Exception;
 }

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

@@ -27,12 +27,12 @@ public class ChargingBusinessServiceImpl implements ChargingBusinessService {
     private final ChargingUtil chargingUtil;
 
     @Override
-    public ChargingPricePolicyVO queryEquipBusinessPolicy(String equipBizSeq, String connectorID){
+    public ChargingPricePolicyVO queryEquipBusinessPolicy(String equipBizSeq, String connectorID) throws Exception {
         Map<String, Object> queryTokenParms = new HashMap<>();
         queryTokenParms.put("equipBizSeq", equipBizSeq);
         queryTokenParms.put("connectorID", connectorID);
         log.info("查询设备价格策略请求参数:{}", queryTokenParms);
-        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.QUERY_EQUIP_BUSINESS_POLICY, queryTokenParms, false);
+        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.TEST_DOMAIN + ConnectivityConstants.QUERY_EQUIP_BUSINESS_POLICY, queryTokenParms, false);
         log.info("查询设备价格策略返回结果:{}", jsonObject);
         JsonObject responseDecode = chargingUtil.responseDecode(jsonObject);
         log.info("查询设备价格策略返回结果解密后:{}", responseDecode);
@@ -40,12 +40,12 @@ public class ChargingBusinessServiceImpl implements ChargingBusinessService {
     }
 
     @Override
-    public EquipmentAuthResponseVO queryEquipAuth(String EquipAuthSeq, String ConnectorID) {
+    public EquipmentAuthResponseVO queryEquipAuth(String EquipAuthSeq, String ConnectorID) throws Exception {
         Map<String, Object> queryTokenParms = new HashMap<>();
         queryTokenParms.put("EquipAuthSeq", EquipAuthSeq);
         queryTokenParms.put("ConnectorID", ConnectorID);
         log.info("查询设备认证请求参数:{}", queryTokenParms);
-        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.QUERY_EQUIP_AUTH, queryTokenParms, false);
+        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.TEST_DOMAIN + ConnectivityConstants.QUERY_EQUIP_AUTH, queryTokenParms, false);
         log.info("查询设备认证返回结果:{}", jsonObject);
         JsonObject responseDecode = chargingUtil.responseDecode(jsonObject);
         log.info("查询设备认证返回结果解密后:{}", responseDecode);
@@ -53,13 +53,13 @@ public class ChargingBusinessServiceImpl implements ChargingBusinessService {
     }
 
     @Override
-    public QueryStationsInfoVO queryStationsInfo(String LastQueryTime, Integer PageNo, Integer PageSize) {
+    public QueryStationsInfoVO queryStationsInfo(String LastQueryTime, Integer PageNo, Integer PageSize) throws Exception {
         Map<String, Object> queryParms = new HashMap<>();
         queryParms.put("LastQueryTime", LastQueryTime);
         queryParms.put("PageNo", PageNo);
         queryParms.put("PageSize", PageSize);
         log.info("查询充电站信息请求参数:{}", queryParms);
-        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.QUERY_STATIONS_INFO, queryParms, true);
+        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.TEST_DOMAIN + ConnectivityConstants.QUERY_STATIONS_INFO, queryParms, true);
         log.info("查询充电站信息返回结果:{}", jsonObject);
         JsonObject responseDecode = chargingUtil.responseDecode(jsonObject);
         log.info("查询充电站信息返回结果解密后:{}", responseDecode);
@@ -67,11 +67,11 @@ public class ChargingBusinessServiceImpl implements ChargingBusinessService {
     }
 
     @Override
-    public QueryStationStatusVO queryStationStatus(List<String> stationIDs) {
+    public QueryStationStatusVO queryStationStatus(List<String> stationIDs) throws Exception {
         Map<String, Object> queryParms = new HashMap<>();
         queryParms.put("StationIDs", stationIDs);
         log.info("设备接口状态查询请求参数:{}", queryParms);
-        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.QUERY_STATION_STATUS, queryParms, true);
+        JsonObject jsonObject = chargingUtil.chargingRequest(ConnectivityConstants.TEST_DOMAIN + ConnectivityConstants.QUERY_STATION_STATUS, queryParms, true);
         log.info("设备接口状态查询返回结果:{}", jsonObject);
         JsonObject responseDecode = chargingUtil.responseDecode(jsonObject);
         log.info("设备接口状态查询返回结果解密后:{}", responseDecode);

+ 2 - 2
src/main/java/com/zsElectric/boot/common/util/electric/ChargingUtil.java

@@ -32,7 +32,7 @@ public class ChargingUtil {
      * @param tokenRequired
      * @return
      */
-    public JsonObject chargingRequest(String url, Map<String,Object> queryParms,boolean tokenRequired) {
+    public JsonObject chargingRequest(String url, Map<String,Object> queryParms,boolean tokenRequired) throws Exception {
         Map<String, String> headers = new HashMap<>();
         if(tokenRequired){
             headers.put("Authorization", "Bearer " + tokenManager.getValidAccessToken());
@@ -43,7 +43,7 @@ public class ChargingUtil {
 
             requestParms
                     .setOperatorID(ConnectivityConstants.OPERATOR_ID)
-                    .setData(AESCryptoUtil.decrypt(queryParms.toString(),ConnectivityConstants.DATA_SECRET,ConnectivityConstants.DATA_SECRET_IV))
+                    .setData(AESCryptoUtil.encrypt(queryParms.toString(),ConnectivityConstants.DATA_SECRET,ConnectivityConstants.DATA_SECRET_IV))
                     .setTimeStamp(result.getTimestamp())
                     .setSeq(result.getSequence())
                     .setSig(HmacMD5Util.genSign(requestParms.getOperatorID(),requestParms.getData(),requestParms.getTimeStamp(),requestParms.getSeq(),ConnectivityConstants.SIG_SECRET));

+ 2 - 2
src/main/java/com/zsElectric/boot/common/util/electric/TokenManager.java

@@ -163,12 +163,12 @@ public class TokenManager {
 
             requestParms
                     .setOperatorID(ConnectivityConstants.OPERATOR_ID)
-                    .setData(AESCryptoUtil.decrypt(queryTokenParms.toString(), ConnectivityConstants.DATA_SECRET, ConnectivityConstants.DATA_SECRET_IV))
+                    .setData(AESCryptoUtil.encrypt(queryTokenParms.toString(), ConnectivityConstants.DATA_SECRET, ConnectivityConstants.DATA_SECRET_IV))
                     .setTimeStamp(result.getTimestamp())
                     .setSeq(result.getSequence())
                     .setSig(HmacMD5Util.genSign(requestParms.getOperatorID(), requestParms.getData(), requestParms.getTimeStamp(), requestParms.getSeq(), ConnectivityConstants.SIG_SECRET));
 
-            JsonObject response = okHttpUtil.doPostForm(ConnectivityConstants.QUERY_TOKEN, BeanUtil.beanToMap(requestParms), null);
+            JsonObject response = okHttpUtil.doPostForm(ConnectivityConstants.TEST_DOMAIN + ConnectivityConstants.QUERY_TOKEN, BeanUtil.beanToMap(requestParms), null);
 
             if (Objects.isNull(response)) {
                 log.error("调用第三方接口获取Token失败");

+ 2 - 0
src/main/resources/application-dev.yml

@@ -87,6 +87,7 @@ security:
     - /api/v1/auth/logout # 开放退出登录
     - /api/v1/auth/wx/miniapp/code-login # 微信小程序code登陆
     - /ws/** # WebSocket接口
+    - /dev/v1/linkData/** #互联互通
   # 非安全端点路径,完全绕过 Spring Security 的安全控制
   unsecured-urls:
     - ${springdoc.swagger-ui.path}
@@ -168,6 +169,7 @@ springdoc:
         - com.zsElectric.boot.system.controller
         - com.zsElectric.boot.platform.file.controller
         - com.zsElectric.boot.platform.codegen.controller
+        - com.zsElectric.boot.charging.controller
   default-flat-param-object: true
 
 # knife4j 接口文档配置

+ 2 - 0
src/main/resources/application-prod.yml

@@ -85,6 +85,7 @@ security:
     - /api/v1/auth/refresh-token  # 刷新令牌接口
     - //api/v1/auth/wx/miniapp/code-login # 微信小程序code登陆
     - /ws/**                      # WebSocket接口
+    - /dev/v1/linkData/** #互联互通
   # 非安全端点路径,完全绕过 Spring Security 的过滤器
   unsecured-urls:
     - ${springdoc.swagger-ui.path}
@@ -157,6 +158,7 @@ springdoc:
         - com.zsElectric.boot.system.controller
         - com.zsElectric.boot.platform.file.controller
         - com.zsElectric.boot.platform.codegen.controller
+        - com.zsElectric.boot.charging.controller
   default-flat-param-object: true
 
 # knife4j 接口文档配置