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