From 58f63e3a124680d0b1f571f5d0a1e3ed308d43be Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 20 三月 2026 14:45:34 +0800
Subject: [PATCH] 质押合同页面重构
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/camera/impl/ApiPlayYdQlyService.java | 233 +++++++++++++++++++--------------------------------------
1 files changed, 78 insertions(+), 155 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/camera/impl/ApiPlayYdQlyService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/camera/impl/ApiPlayYdQlyService.java
index 33d8033..bfbe417 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/camera/impl/ApiPlayYdQlyService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/camera/impl/ApiPlayYdQlyService.java
@@ -5,6 +5,7 @@
import com.fzzy.igds.camera.data.*;
import com.fzzy.igds.camera.data.ydqly.YdQlyCamera;
import com.fzzy.igds.camera.data.ydqly.YdQlyDto;
+import com.fzzy.igds.camera.data.ydqly.YdQlyNode;
import com.fzzy.igds.camera.data.ydqly.YdQlyResp;
import com.fzzy.igds.constant.CameraPlayType;
import com.fzzy.igds.constant.Constant;
@@ -41,7 +42,6 @@
*/
private static final String URL_ACCESS_TOKEN = "https://open.qly.cmviot.cn/v3/open/api/token";
private static final String URL_PLAY_LIVE = "https://open.qly.cmviot.cn/v3/open/api/websdk/live";
-
private static final String URL_CAMERA_LIST = "https://open.qly.cmviot.cn/v3/open/api/node/tree";
@Resource
@@ -79,6 +79,12 @@
//鎺ュ彛鑾峰彇鎾斁鍦板潃
YdQlyResp resp = getPlayUrl(cameraMedia, apiCameraDto.getCameraId());
+ if("11503".equals(resp.getResultCode()) || "11504".equals(resp.getResultCode())){
+ delAccessToken();
+
+ resp = getPlayUrl(cameraMedia, apiCameraDto.getCameraId());
+ }
+
if(!"000000".equals(resp.getResultCode())){
return new ApiCameraResp(ApiCameraResp.CODE_ERROR, resp.getResultMsg());
}
@@ -101,17 +107,24 @@
//鏌ヨ搴撳尯娴佸獟浣撻厤缃紝鑾峰彇搴撳尯鑺傜偣
CameraMedia cameraMedia = cameraMediaService.getByDeptId(apiCameraDto.getDeptId(), apiCameraDto.getCompanyId());
if(null == cameraMedia || StringUtils.isEmpty(cameraMedia.getYdStoreId())){
- log.error("鑾峰彇鎽勫儚澶翠俊鎭け璐ワ紝搴撳尯鑺傜偣鏈厤缃紒");
+ log.error("鍚屾澶辫触锛屽簱鍖鸿妭鐐规湭閰嶇疆锛岃鍒板簱鍖洪厤缃�->娴佸獟浣撻厤缃紒");
return null;
}
- String str = getCameraList(cameraMedia);
- if(null== str){
- log.error("鑾峰彇鎽勫儚澶翠俊鎭け璐ワ紝搴撳尯鑺傜偣鏈厤缃紒");
+ //鎺ュ彛鑾峰彇鎾斁鍦板潃
+ YdQlyResp resp = getCameraList(cameraMedia);
+
+ if("11503".equals(resp.getResultCode()) || "11504".equals(resp.getResultCode())){
+ delAccessToken();
+
+ resp = getCameraList(cameraMedia);
+ }
+
+ if(!"000000".equals(resp.getResultCode())){
return null;
}
- YdQlyDto ydQlyDto = JSONObject.parseObject(str, YdQlyDto.class);
+ YdQlyDto ydQlyDto = JSONObject.parseObject(resp.getData(), YdQlyDto.class);
if(null== ydQlyDto || null == ydQlyDto.getDevice()){
log.error("鑾峰彇鎽勫儚澶翠俊鎭け璐ワ紝搴撳尯鑺傜偣鏈厤缃紒");
@@ -129,12 +142,21 @@
camera.setSn(dto.getDeviceId());
camera.setName(dto.getDeviceName());
camera.setType("01");
+ camera.setOrderNum(null);
camera.setPlayType(CameraPlayType.PLAY_TYPE_YD_QLY.getCode());
cameraService.pullUpdateCamera(camera);
}
return listCamera;
}
+ /**
+ * 娓呴櫎token
+ */
+ private void delAccessToken() {
+ //璇锋竻闄oken
+ String key = RedisConst.buildKey(ContextUtil.getCompanyId(), Constant.KEY_ACCESS_TOKEN_YD_QLY);
+ redisCache.deleteObject(key);
+ }
/**
* 鑾峰彇accessToken
@@ -247,7 +269,7 @@
String jsonString = JSONObject.toJSONString(herderParams);
// 4. RSA绛惧悕
- byte[] keyBytes = Base64.getDecoder().decode(PRIVATE_KEY);
+ byte[] keyBytes = Base64.getDecoder().decode(cameraMedia.getYdRsa());
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
PrivateKey priKey = KeyFactory.getInstance("RSA").generatePrivate(keySpec);
@@ -275,7 +297,7 @@
* @param cameraMedia
* @return
*/
- private String getCameraList(CameraMedia cameraMedia) {
+ private YdQlyResp getCameraList(CameraMedia cameraMedia) {
try {
String timestamp = String.valueOf(System.currentTimeMillis());
@@ -302,7 +324,7 @@
String jsonString = JSONObject.toJSONString(herderParams);
// 4. RSA绛惧悕
- byte[] keyBytes = Base64.getDecoder().decode(PRIVATE_KEY);
+ byte[] keyBytes = Base64.getDecoder().decode(cameraMedia.getYdRsa());
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
PrivateKey priKey = KeyFactory.getInstance("RSA").generatePrivate(keySpec);
@@ -318,43 +340,27 @@
String response = HttpUtils.doPost(URL_CAMERA_LIST, herderParams, requestBodyStr);
YdQlyResp ydQlyResp = JSONObject.parseObject(response, YdQlyResp.class);
- if(!"000000".equals(ydQlyResp.getResultCode())){
- return null;
- }
- return ydQlyResp.getData();
+ return ydQlyResp;
} catch (Exception e) {
return null;
}
}
-
- private static final String TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJwcm9mZXNzaW9uIjoxLCJhcHBpZCI6ImUwYTFhNDIwZjU1YTRmOWRiYTBkNjM4MmRmNTlkYjY2Iiwib3BlcmF0b3JUeXBlIjoxLCJvcGVyYXRvciI6ImUwYTFhNDIwZjU1YTRmOWRiYTBkNjM4MmRmNTlkYjY2IiwianRpIjoiMjE4Nzk0MzMzMTE4NDM1NzM4NyIsImlhdCI6MTc2NzYxMDM3Mywic3ViIjoiZTBhMWE0MjBmNTVhNGY5ZGJhMGQ2MzgyZGY1OWRiNjYiLCJleHAiOjE3NjgyMTUxNzN9.Tot-yYsNLbY9YH2AYgV_Fggb7PCNrUR0PDi0Ear1s5w";
- private static final String APP_ID = "e0a1a420f55a4f9dba0d6382df59db66";
- private static final String SECRET = "OuLsvFL9nqxeeltu";
- private static final String URL = "https://open.qly.cmviot.cn/v3/open/api/token";
- private static final String URL_PLAY = "https://open.qly.cmviot.cn/v3/open/api/websdk/live";
- private static final String URL_LIST = "https://open.qly.cmviot.cn/v3/open/api/node/tree";
- private static final String PRIVATE_KEY = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAI7iA0WASV8pekjHVcsYV3ycZR2/+XK7O6BZpybAw/cauEzHRKsrDknErFxdNFca1OlVbPljBOfXjIrhS1CpAWez3Ff2+XaAaFE3fFer9LTxQ5GMXJSIAGQ4ntq/7y57ucwdVjL9+4B4WT8Yfea1DLa/fv+I0Gm7haVQj75JVYhBAgMBAAECgYAfvBs16JRjSncaiwuHHFTyHFppDSZ+UQ+hQchaVx4vWAPvKaMa0WlPARu3OAxT/GWlnY+ipFeGlt1kSz3LIH5rERYd5sNPOFmK7Nzih1VK6r/y1XobM4cLqLrP2UW2c3V36A77xz1xpaa9CP5l6gFjYAdZ1vnGS7HyjolWvzjUAQJBAMB6OTwrHcxOUJiLRJSK697LMIziBi1p5cR4NdSoQjQ4/enUqzAalwi6ZODuGSYai5VKhH9xkxFASWMT8waTOxECQQC+CbWK4Igx8Uh5qPpBIiFuA6ReAuFoRDMvKlzPUi8FGFkvF/CDx5IUFvYUd7FFX4l6Wtu5vf+VF3OydmzFr5oxAkB96Xa3nZ0IodKnd7ONWLOkM1e3UcSowLXGKL1OOCPW9dFkvfKerUZQN172pctd2c+mAfFbTXjfuCZJ4isBCh+BAkA8+ZiKaujIPYbnolRJuc3IItsGXx47+kYCCDGnQ9NaaymSdrfxUIOKdqOWhaEXhUPzQlvmCRSMne29gUn9VA7BAkBLvhtfSuANFSDt942GAY0Q25bJBM01yrRjtTEVCnGDxztexksPKaWGnJxk0Zk0xp4PkJCZvVuxFZ1Dw7F9yg6X";
-
- public static void main(String[] args) {
-// String accessToken = getAccessTokenTest();
-// System.out.println("accessToken: " + accessToken);
-
-// String playUrl = getPlayUrlTest();
-// System.out.println("playUrl: " + playUrl);
-
- String cameraList = getCameraListTest();
- System.out.println("cameraList: " + cameraList);
- }
-
- private static String getCameraListTest() {
+ /**
+ * 鑾峰彇鐩戞帶鎵�鍦ㄨ妭鐐圭紪鐮�
+ * @param cameraMedia
+ * @return
+ */
+ public List<YdQlyNode> getNodeId(CameraMedia cameraMedia) {
try {
String timestamp = String.valueOf(System.currentTimeMillis());
JSONObject requestBody = new JSONObject();
requestBody.put("queryType", 0);
- requestBody.put("nodeId", "1346024619493187584");
+ if(StringUtils.isNotBlank(cameraMedia.getYdStoreId())){
+ requestBody.put("nodeId", cameraMedia.getYdStoreId());
+ }
String requestBodyStr = requestBody.toString();
@@ -362,16 +368,17 @@
String md5 = DigestUtils.md5Hex(String.valueOf(requestBody));
// 3. 鏋勫缓绛惧悕瀛楃涓�
- Map signParams = new LinkedHashMap();
- signParams.put("appid", APP_ID);
- signParams.put("md5", md5);
- signParams.put("timestamp", timestamp);
- signParams.put("token", TOKEN);
- signParams.put("version", "1.0.0");
- String jsonString = JSONObject.toJSONString(signParams);
+ LinkedHashMap<String, String> herderParams = new LinkedHashMap<>();
+
+ herderParams.put("appid", cameraMedia.getYdAppKey());
+ herderParams.put("md5", md5);
+ herderParams.put("timestamp", timestamp);
+ herderParams.put("token", getAccessToken(cameraMedia));
+ herderParams.put("version", "1.0.0");
+ String jsonString = JSONObject.toJSONString(herderParams);
// 4. RSA绛惧悕
- byte[] keyBytes = Base64.getDecoder().decode(PRIVATE_KEY);
+ byte[] keyBytes = Base64.getDecoder().decode(cameraMedia.getYdRsa());
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
PrivateKey priKey = KeyFactory.getInstance("RSA").generatePrivate(keySpec);
@@ -380,128 +387,44 @@
signature.update(jsonString.getBytes("UTF-8"));
String signatureString = Base64.getEncoder().encodeToString(signature.sign());
- LinkedHashMap<String, String> herderParams = new LinkedHashMap<>();
-
- herderParams.put("content-type", "application/json");
- herderParams.put("appid", APP_ID);
- herderParams.put("md5", md5);
- herderParams.put("timestamp", timestamp);
- herderParams.put("token", TOKEN);
- herderParams.put("version", "1.0.0");
herderParams.put("signature", signatureString);
+ herderParams.put("content-type", "application/json");
// 5. 鍙戦�佽姹�
- String response = HttpUtils.doPost(URL_LIST, herderParams, requestBodyStr);
+ String response = HttpUtils.doPost(URL_CAMERA_LIST, herderParams, requestBodyStr);
- return response;
+ YdQlyResp resp = JSONObject.parseObject(response, YdQlyResp.class);
+
+ if(!"000000".equals(resp.getResultCode())){
+ return null;
+ }
+
+ YdQlyDto ydQlyDto = JSONObject.parseObject(resp.getData(), YdQlyDto.class);
+ if(null == ydQlyDto || null == ydQlyDto.getNode() || ydQlyDto.getNode().isEmpty()){
+ return null;
+ }
+ return ydQlyDto.getNode();
} catch (Exception e) {
- e.printStackTrace();
return null;
}
}
- private static String getPlayUrlTest() {
- try {
+ /**
+ * 鑾峰彇鎵�鏈夎妭鐐�
+ * @param cameraMedia
+ */
+ public void getAllNodeId(CameraMedia cameraMedia) {
- String timestamp = String.valueOf(System.currentTimeMillis());
-
- JSONObject requestBody = new JSONObject();
- requestBody.put("deviceId", "gb_26236371771319266195");
-
- String requestBodyStr = requestBody.toString();
-
- // 2. 璁$畻璇锋眰浣揗D5
- String md5 = DigestUtils.md5Hex(String.valueOf(requestBody));
-
- // 3. 鏋勫缓绛惧悕瀛楃涓�
- Map signParams = new LinkedHashMap();
- signParams.put("appid", APP_ID);
- signParams.put("md5", md5);
- signParams.put("timestamp", timestamp);
- signParams.put("token", TOKEN);
- signParams.put("version", "1.0.0");
- String jsonString = JSONObject.toJSONString(signParams);
-
- // 4. RSA绛惧悕
- byte[] keyBytes = Base64.getDecoder().decode(PRIVATE_KEY);
- PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
- PrivateKey priKey = KeyFactory.getInstance("RSA").generatePrivate(keySpec);
-
- Signature signature = Signature.getInstance("SHA1WithRSA");
- signature.initSign(priKey);
- signature.update(jsonString.getBytes("UTF-8"));
- String signatureString = Base64.getEncoder().encodeToString(signature.sign());
-
- LinkedHashMap<String, String> herderParams = new LinkedHashMap<>();
-
- herderParams.put("content-type", "application/json");
- herderParams.put("appid", APP_ID);
- herderParams.put("md5", md5);
- herderParams.put("timestamp", timestamp);
- herderParams.put("token", TOKEN);
- herderParams.put("version", "1.0.0");
- herderParams.put("signature", signatureString);
-
- // 5. 鍙戦�佽姹�
- String response = HttpUtils.doPost(URL_PLAY, herderParams, requestBodyStr);
-
- return response;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- private static String getAccessTokenTest() {
- try {
-
- String timestamp = String.valueOf(System.currentTimeMillis());
-
- String sig = Hex.encodeHexString(MessageDigest.getInstance("MD5").digest(StringUtils.getBytes(APP_ID+SECRET,"UTF-8")));
-
- JSONObject requestBody = new JSONObject();
- requestBody.put("operatorType", 1);
- requestBody.put("sig", sig);
- String requestBodyStr = requestBody.toString();
-
- // 2. 璁$畻璇锋眰浣揗D5
- String md5 = DigestUtils.md5Hex(String.valueOf(requestBody));
-
- // 3. 鏋勫缓绛惧悕瀛楃涓�
- Map signParams = new LinkedHashMap();
- signParams.put("appid", APP_ID);
- signParams.put("md5", md5);
- signParams.put("timestamp", timestamp);
- signParams.put("version", "1.0.0");
- String jsonString = JSONObject.toJSONString(signParams);
-
- // 4. RSA绛惧悕
- byte[] keyBytes = Base64.getDecoder().decode(PRIVATE_KEY);
- PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
- PrivateKey priKey = KeyFactory.getInstance("RSA").generatePrivate(keySpec);
-
- Signature signature = Signature.getInstance("SHA1WithRSA");
- signature.initSign(priKey);
- signature.update(jsonString.getBytes("UTF-8"));
- String signatureString = Base64.getEncoder().encodeToString(signature.sign());
-
- LinkedHashMap<String, String> herderParams = new LinkedHashMap<>();
-
- herderParams.put("content-type", "application/json");
- herderParams.put("appid", APP_ID);
- herderParams.put("md5", md5);
- herderParams.put("timestamp", timestamp);
- herderParams.put("version", "1.0.0");
-
- herderParams.put("signature", signatureString);
-
- // 5. 鍙戦�佽姹�
- String response = HttpUtils.doPost(URL, herderParams, requestBodyStr);
-
- return response;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
+ List<YdQlyNode> nodeList = this.getNodeId(cameraMedia);
+ if(null != nodeList && !nodeList.isEmpty()){
+ for (YdQlyNode node : nodeList) {
+ if(node.getHasChild() == 1){
+ cameraMedia.setYdStoreId(node.getNodeId());
+ this.getAllNodeId(cameraMedia);
+ }else {
+ ContextUtil.nodeList.add(node);
+ }
+ }
}
}
}
--
Gitblit v1.9.3