From a9264a8bc04335d5d49a39841b039ba5a64d7717 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 22 一月 2024 16:34:58 +0800
Subject: [PATCH] 修复assist使用https时无法请求的bug

---
 src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java        |    6 ++++--
 src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java |    6 ++++--
 src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java                |    2 +-
 src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java               |   15 +++++++++------
 4 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java
index a86aa0e..c5be487 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java
@@ -78,11 +78,11 @@
             logger.warn("鏈惎鐢ˋssist鏈嶅姟");
             return null;
         }
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append(String.format("http://%s:%s/%s",  mediaServerItem.getIp(), mediaServerItem.getRecordAssistPort(), api));
+        StringBuilder stringBuffer = new StringBuilder();
+        stringBuffer.append(api);
         JSONObject responseJSON = null;
 
-        if (param != null && param.keySet().size() > 0) {
+        if (param != null && !param.keySet().isEmpty()) {
             stringBuffer.append("?");
             int index = 1;
             for (String key : param.keySet()){
@@ -97,6 +97,7 @@
         }
 
         String url = stringBuffer.toString();
+        logger.info("[璁块棶assist]锛� {}", url);
         Request request = new Request.Builder()
                 .get()
                 .url(url)
@@ -262,7 +263,8 @@
         return sendPost(mediaServerItem, urlStr, videoTaskInfoJSON, null, 30);
     }
 
-    public JSONObject queryTaskList(MediaServerItem mediaServerItem, String app, String stream, String callId,  String taskId, Boolean isEnd) {
+    public JSONObject queryTaskList(MediaServerItem mediaServerItem, String app, String stream, String callId,
+                                    String taskId, Boolean isEnd, String scheme) {
         Map<String, Object> param = new HashMap<>();
         if (!ObjectUtils.isEmpty(app)) {
             param.put("app", app);
@@ -279,7 +281,8 @@
         if (!ObjectUtils.isEmpty(isEnd)) {
             param.put("isEnd", isEnd);
         }
-
-        return sendGet(mediaServerItem, "api/record/file/download/task/list", param, null);
+        String urlStr = String.format("%s://%s:%s/api/record/file/download/task/list",
+                scheme, mediaServerItem.getIp(), mediaServerItem.getRecordAssistPort());;
+        return sendGet(mediaServerItem, urlStr, param, null);
     }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java b/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java
index cb195ec..b416f01 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java
@@ -39,7 +39,7 @@
     /**
      * 鏌ヨ鍚堝苟浠诲姟鍒楄〃
      */
-    JSONArray queryTask(String app, String stream, String callId, String taskId, String mediaServerId, Boolean isEnd);
+    JSONArray queryTask(String app, String stream, String callId, String taskId, String mediaServerId, Boolean isEnd, String scheme);
 
     /**
      * 鏀惰棌瑙嗛锛屾敹钘忕殑瑙嗛杩囨湡涓嶄細鍒犻櫎
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java
index 8e062f6..79ed65b 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java
@@ -142,7 +142,8 @@
     }
 
     @Override
-    public JSONArray queryTask(String app, String stream, String callId, String taskId, String mediaServerId, Boolean isEnd) {
+    public JSONArray queryTask(String app, String stream, String callId, String taskId, String mediaServerId,
+                               Boolean isEnd, String scheme) {
         MediaServerItem mediaServerItem = null;
         if (mediaServerId == null) {
             mediaServerItem = mediaServerService.getDefaultMediaServer();
@@ -152,7 +153,8 @@
         if (mediaServerItem == null) {
             throw new ControllerException(ErrorCode.ERROR100.getCode(), "鏈壘鍒板彲鐢ㄧ殑娴佸獟浣�");
         }
-        JSONObject result =  assistRESTfulUtils.queryTaskList(mediaServerItem, app, stream, callId, taskId, isEnd);
+
+        JSONObject result =  assistRESTfulUtils.queryTaskList(mediaServerItem, app, stream, callId, taskId, isEnd, scheme);
         if (result == null || result.getInteger("code") != 0) {
             throw new ControllerException(ErrorCode.ERROR100.getCode(), result == null ? "鏌ヨ浠诲姟鍒楄〃澶辫触" : result.getString("msg"));
         }
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java
index a358b2c..6f5f5fe 100755
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java
@@ -174,7 +174,7 @@
             throw new ControllerException(ErrorCode.ERROR100.getCode(), "鏈壘鍒板彲鐢ㄧ殑娴佸獟浣�");
         }else {
             if (remoteHost == null) {
-                remoteHost = request.getScheme() + "://" + request.getLocalAddr() + ":" + mediaServerItem.getRecordAssistPort();
+                remoteHost = request.getScheme() + "://" + mediaServerItem.getIp() + ":" + mediaServerItem.getRecordAssistPort();
             }
         }
         return cloudRecordService.addTask(app, stream, mediaServerItem, startTime, endTime, callId, remoteHost, mediaServerId != null);
@@ -187,6 +187,7 @@
     @Parameter(name = "mediaServerId", description = "娴佸獟浣揑D", required = false)
     @Parameter(name = "isEnd", description = "鏄惁缁撴潫", required = false)
     public JSONArray queryTaskList(
+            HttpServletRequest request,
             @RequestParam(required = false) String app,
             @RequestParam(required = false) String stream,
             @RequestParam(required = false) String callId,
@@ -197,7 +198,8 @@
        if (ObjectUtils.isEmpty(mediaServerId)) {
            mediaServerId = null;
        }
-       return cloudRecordService.queryTask(app, stream, callId, taskId, mediaServerId, isEnd);
+
+       return cloudRecordService.queryTask(app, stream, callId, taskId, mediaServerId, isEnd, request.getScheme());
     }
 
     @ResponseBody

--
Gitblit v1.8.0