From bad2110204732e41ed5bc6e48b6e27fe4b6a2249 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 05 二月 2025 10:34:34 +0800
Subject: [PATCH] 新增加互联互通扩展接口

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java             |   98 +++++++++---------
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Operator.java                             |   35 ++++++-
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java                   |   40 ++++++-
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/TCECKDUtil.java        |  101 -------------------
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java |    1 
 5 files changed, 118 insertions(+), 157 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Operator.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Operator.java
index 206524e..107fb20 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Operator.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Operator.java
@@ -62,11 +62,6 @@
 	@TableField("url")
 	private String url;
 	/**
-	 * 我方登录三方秘钥
-	 */
-	@TableField("ourOperatorSecret")
-	private String ourOperatorSecret;
-	/**
 	 * 各平台登录token
 	 */
 	@TableField("accessToken")
@@ -77,6 +72,36 @@
 	@TableField("tokenAvailableTime")
 	private LocalDateTime tokenAvailableTime;
 	/**
+	 * 我方运营商唯一码
+	 */
+	@TableField("ourOperatorId")
+	private String ourOperatorId;
+	/**
+	 * 我方运营商名称
+	 */
+	@TableField("ourName")
+	private String ourName;
+	/**
+	 * 我方运营商秘钥
+	 */
+	@TableField("ourOperatorSecret")
+	private String ourOperatorSecret;
+	/**
+	 * 我方数据加密秘钥
+	 */
+	@TableField("ourDataSecret")
+	private String ourDataSecret;
+	/**
+	 * 我方初始化向量
+	 */
+	@TableField("ourDataSecretIv")
+	private String ourDataSecretIv;
+	/**
+	 * 我方签名秘钥
+	 */
+	@TableField("ourSigSecret")
+	private String ourSigSecret;
+	/**
 	 * token
 	 */
 	@TableField(exist = false)
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
index 6294bf2..2689841 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -161,7 +161,7 @@
 		BaseResult baseResult = requestCheck(false, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		QueryTokenResult queryTokenResult = new QueryTokenResult();
@@ -171,9 +171,9 @@
 			queryTokenResult.setFailReason(1);
 			//参数加密
 			String jsonString = JSON.toJSONString(queryTokenResult);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		
@@ -185,9 +185,9 @@
 			queryTokenResult.setFailReason(2);
 			//参数加密
 			String jsonString = JSON.toJSONString(queryTokenResult);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		
@@ -202,9 +202,9 @@
 		queryTokenResult.setTokenAvailableTime(expires_in * 60);
 		//参数加密
 		String jsonString = JSON.toJSONString(queryTokenResult);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -222,7 +222,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -246,9 +246,9 @@
 		queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords()));
 		//参数加密
 		String jsonString = JSON.toJSONString(queryStationsInfoResult);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -493,7 +493,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -550,9 +550,9 @@
 		result.setStationStatusInfos(StationStatusInfos);
 		//参数加密
 		String jsonString = JSON.toJSONString(result);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -570,7 +570,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -620,9 +620,9 @@
 		result.setStationStats(stationStats);
 		//参数加密
 		String jsonString = JSON.toJSONString(result);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -637,7 +637,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -687,9 +687,9 @@
 		}
 		//参数加密
 		String jsonString = JSON.toJSONString(queryEquipAuthResult);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -705,7 +705,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -726,9 +726,9 @@
 			baseResult.setMsg("connectorID 参数无效");
 			//参数加密
 			String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
@@ -743,9 +743,9 @@
 			queryEquipBusinessPolicyResult.setSumPeriod(0);
 			//参数加密
 			String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		List<PolicyInfo> PolicyInfos = new ArrayList<>();
@@ -760,9 +760,9 @@
 		queryEquipBusinessPolicyResult.setPolicyInfos(PolicyInfos);
 		//参数加密
 		String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -820,7 +820,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -843,9 +843,9 @@
 			result.setStartChargeSeqStat(5);
 			//参数加密
 			String jsonString = JSON.toJSONString(result);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		//设备离线
@@ -855,9 +855,9 @@
 			result.setStartChargeSeqStat(5);
 			//参数加密
 			String jsonString = JSON.toJSONString(result);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		//调用充电接口
@@ -876,9 +876,9 @@
 			result.setStartChargeSeqStat(2);
 			//参数加密
 			String jsonString = JSON.toJSONString(result);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		result.setStartChargeSeqStat(1);
@@ -886,9 +886,9 @@
 		result.setFailReason(0);
 		//参数加密
 		String jsonString = JSON.toJSONString(result);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -948,7 +948,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -959,9 +959,9 @@
 		QueryEquipChargeStatusResult queryEquipChargeStatusResult = buildQueryEquipChargeStatusResult(queryEquipChargeStatus.getStartChargeSeq());
 		//参数加密
 		String jsonString = JSON.toJSONString(queryEquipChargeStatusResult);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -1123,7 +1123,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -1143,16 +1143,16 @@
 			queryStopChargeResult.setFailReason(3);
 			//参数加密
 			String jsonString = JSON.toJSONString(queryStopChargeResult);
-			String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+			String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 			baseResult.setData(encrypt);
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		//参数加密
 		String jsonString = JSON.toJSONString(queryStopChargeResult);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -1338,7 +1338,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -1352,9 +1352,9 @@
 		
 		//参数加密
 		String jsonString = JSON.toJSONString(queryTerminalCodeResult);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
@@ -1412,7 +1412,7 @@
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
 			baseResult.setData("");
-			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
@@ -1423,9 +1423,9 @@
 		QueryChargeOrderInfoResult result = buildQueryChargeOrderInfoResult(queryChargeOrderInfo);
 		//参数加密
 		String jsonString = JSON.toJSONString(result);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
-		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		return baseResult;
 	}
 	
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
index 397691b..5127805 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
@@ -35,17 +35,17 @@
 	
 	private static OperatorClient operatorClient = SpringUtils.getBean(OperatorClient.class);
 	
-	private static Map<Long, Integer> map = new HashMap<>();
+	public static Map<Long, Integer> map = new HashMap<>();
 	
 	
 	/**
 	 * 获取token
 	 */
 	public static String queryToken(Operator operator){
-		HttpRequest post = HttpUtil.createPost("");
+		HttpRequest post = HttpUtil.createPost(operator.getTestUrl() + InterfaceUrlEnum.QUERY_TOKEN.getUrl());
 		post.contentType("application/json;charset=utf-8");
 		JSONObject body = new JSONObject();
-		body.put("OperatorID", OperatorID);
+		body.put("OperatorID", operator.getOurOperatorId());
 		body.put("OperatorSecret", operator.getOurOperatorSecret());
 		post.body(body.toJSONString());
 		HttpResponse execute = post.execute();
@@ -241,14 +241,14 @@
 		post.contentType("application/json;charset=utf-8");
 		post.header("Authorization", "Bearer " + getToken(operator));
 		BaseRequest baseRequest = new BaseRequest();
-		baseRequest.setOperatorID(OperatorID);
+		baseRequest.setOperatorID(operator.getOurOperatorId());
 		baseRequest.setTimeStamp(timeStamp);
 		baseRequest.setSeq(String.format("%04d", integer));
 		String jsonString = JSON.toJSONString(o);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseRequest.setData(encrypt);
 		baseRequest.setOperator(operator);
-		baseRequest.setSig(buildSign(baseRequest));
+		baseRequest.setSig(ourBuildSign(baseRequest));
 		post.body(JSON.toJSONString(baseRequest));
 		//清空小于当前时间的map中的无效数据
 		for (Long k : map.keySet()) {
@@ -284,4 +284,32 @@
 		return sign;
 	}
 	
+	
+	
+	/**
+	 * 构建签名字符串
+	 * @param model
+	 * @return
+	 */
+	public static String ourBuildSign(BaseModel model){
+		Operator operator = model.getOperator();
+		//签名秘钥SigSecret
+		String key = operator.getOurSigSecret();
+		String sign = "";
+		switch (operator.getName()){
+			case "XinDianTu":
+				//进行字符串拼接、计算
+				String m = new StringBuilder(operator.getOurOperatorId()).append(model.getData()).append(model.getTimeStamp()).append(model.getSeq()).toString();
+				byte[] hmacMd5 = SignUtil.getHMacMD5Bytes(key.getBytes(), m.getBytes());
+				// 打印计算得到的签名Sig
+				sign = SignUtil.bytesToHexString(hmacMd5);
+				break;
+			case "KuaiDian":
+				sign = SignUtil.hmacSign(model.getData(), key);
+				break;
+		}
+		return sign;
+	}
+	
+	
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/TCECKDUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/TCECKDUtil.java
index 71d41df..faf6d99 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/TCECKDUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/TCECKDUtil.java
@@ -8,6 +8,7 @@
 import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.integration.drainage.AESUtil;
 import com.ruoyi.integration.drainage.SignUtil;
+import com.ruoyi.integration.drainage.TCECUtil;
 import com.ruoyi.integration.drainage.kuaidian.model.NotificationStationChangeResult;
 import com.ruoyi.integration.drainage.kuaidian.model.StationChange;
 import com.ruoyi.integration.drainage.model.*;
@@ -31,59 +32,7 @@
  * @Date 2025/1/21 11:48
  */
 @Slf4j
-public class TCECKDUtil {
-	/**
-	 * 运营商标识
-	 */
-	private static final String OperatorID = "";
-	
-	private static OperatorClient operatorClient = SpringUtils.getBean(OperatorClient.class);
-	
-	private static Map<Long, Integer> map = new HashMap<>();
-	
-	
-	/**
-	 * 获取token
-	 */
-	public static String queryToken(Operator operator){
-		HttpRequest post = HttpUtil.createPost("");
-		post.contentType("application/json;charset=utf-8");
-		JSONObject body = new JSONObject();
-		body.put("OperatorID", OperatorID);
-		body.put("OperatorSecret", operator.getOurOperatorSecret());
-		post.body(body.toJSONString());
-		HttpResponse execute = post.execute();
-		if(200 != execute.getStatus()){
-			log.error("获取三方token失败:" + execute.body());
-			return null;
-		}
-		JSONObject jsonObject = JSON.parseObject(execute.body());
-		Integer succStat = jsonObject.getInteger("SuccStat");
-		if(0 != succStat){
-			log.error("获取三方token失败:" + jsonObject.getString("FailReason"));
-			return null;
-		}
-		String token = jsonObject.getString("AccessToken");
-		Long tokenAvailableTime = LocalDateTime.now().toEpochSecond(ZoneOffset.UTC) + jsonObject.getLong("TokenAvailableTime");
-		LocalDateTime localDateTime = Instant.ofEpochSecond(tokenAvailableTime).atOffset(ZoneOffset.UTC).toLocalDateTime();
-		operator.setAccessToken(token);
-		operator.setTokenAvailableTime(localDateTime);
-		operatorClient.editOperator(operator);
-		return token;
-	}
-	
-	
-	/**
-	 * 获取token
-	 * @return
-	 */
-	public static String getToken(Operator operator){
-		if(null != operator.getTokenAvailableTime() && operator.getTokenAvailableTime().isBefore(LocalDateTime.now())){
-			return operator.getAccessToken();
-		}else{
-			return queryToken(operator);
-		}
-	}
+public class TCECKDUtil extends TCECUtil {
 	
 	
 	
@@ -97,7 +46,7 @@
 	 */
 	public static NotificationStationChangeResult notificationStationChange(Operator operator, Integer type, List<Integer> siteIds) {
 		StationChange stationChange = new StationChange();
-		stationChange.setOperatorId(OperatorID);
+		stationChange.setOperatorId(operator.getOurOperatorId());
 		stationChange.setType(type);
 		List<String> collect = siteIds.stream().map(String::valueOf).collect(Collectors.toList());
 		stationChange.setStationIds(collect);
@@ -111,49 +60,7 @@
 		return JSON.parseObject(execute.body(), NotificationStationChangeResult.class);
 	}
 	
+
 	
-	
-	/**
-	 * 构建请求参数和消息头
-	 * @param post
-	 * @param o
-	 */
-	public static void buildBody(HttpRequest post, Object o, Operator operator){
-		Long timeStamp = Long.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
-		Integer integer = map.get(timeStamp);
-		if(null == integer){
-			integer = 1;
-		}else{
-			integer++;
-		}
-		map.put(timeStamp, integer);
-		post.contentType("application/json;charset=utf-8");
-		post.header("Authorization", "Bearer " + getToken(operator));
-		BaseRequest baseRequest = new BaseRequest();
-		baseRequest.setOperatorID(OperatorID);
-		baseRequest.setTimeStamp(timeStamp);
-		baseRequest.setSeq(String.format("%04d", integer));
-		String jsonString = JSON.toJSONString(o);
-		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
-		baseRequest.setData(encrypt);
-		baseRequest.setOperator(operator);
-		baseRequest.setSig(buildSign(baseRequest));
-		post.body(JSON.toJSONString(baseRequest));
-		//清空小于当前时间的map中的无效数据
-		for (Long k : map.keySet()) {
-			if(k <= (timeStamp - 10)){
-				map.remove(k);
-			}
-		}
-	}
-	
-	
-	public static String buildSign(BaseModel model){
-		Operator operator = model.getOperator();
-		//签名秘钥SigSecret
-		String key = operator.getSigSecret();
-		String sign = SignUtil.hmacSign(model.getData(), key);
-		return sign;
-	}
 	
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java
index 1316226..a5efc56 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java
@@ -6,6 +6,7 @@
  * @Date 2025/1/21 14:38
  */
 public enum InterfaceUrlEnum {
+	QUERY_TOKEN("/query_token", "获取权限token"),
 	NOTIFICATION_STATION_STATUS("/notification_station_status", "设备状态变化推送"),
 	NOTIFICATION_STATION_CHANGE("/notification_station_change", "站点计费策略变更推送"),
 	NOTIFICATION_START_CHARGE_RESULT("/notification_start_charge_result", "推送启动充电结果"),

--
Gitblit v1.7.1