From 1a9e49d9ff210e39f6297150db758906a4f02e6f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 19 八月 2022 17:11:51 +0800
Subject: [PATCH] 依赖包版本升级

---
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java |   54 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 37 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
index 94fe8df..4ad39a9 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
@@ -3,18 +3,14 @@
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.conf.security.SecurityUtils;
 import com.genersoft.iot.vmp.conf.security.dto.LoginUser;
-import com.genersoft.iot.vmp.media.zlm.dto.OnPublishHookParam;
 import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
-import com.genersoft.iot.vmp.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IStreamPushService;
+import com.genersoft.iot.vmp.service.IStreamProxyService;
 import com.genersoft.iot.vmp.service.IMediaService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
-import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +20,7 @@
 import javax.servlet.http.HttpServletRequest;
 
 
-@Api(tags = "濯掍綋娴佺浉鍏�")
+@Tag(name  = "濯掍綋娴佺浉鍏�")
 @Controller
 @CrossOrigin
 @RequestMapping(value = "/api/media")
@@ -37,6 +33,8 @@
 
     @Autowired
     private IMediaService mediaService;
+    @Autowired
+    private IStreamProxyService streamProxyService;
 
 
     /**
@@ -45,12 +43,12 @@
      * @param stream 娴乮d
      * @return
      */
-    @ApiOperation("鏍规嵁搴旂敤鍚嶅拰娴乮d鑾峰彇鎾斁鍦板潃")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "app", value = "搴旂敤鍚�", dataTypeClass = String.class),
-            @ApiImplicitParam(name = "stream", value = "娴乮d", dataTypeClass = String.class),
-            @ApiImplicitParam(name = "mediaServerId", value = "濯掍綋鏈嶅姟鍣╥d", dataTypeClass = String.class, required = false),
-    })
+    @Operation(summary = "鏍规嵁搴旂敤鍚嶅拰娴乮d鑾峰彇鎾斁鍦板潃")
+    @Parameter(name = "app", description = "搴旂敤鍚�", required = true)
+    @Parameter(name = "stream", description = "娴乮d", required = true)
+    @Parameter(name = "mediaServerId", description = "濯掍綋鏈嶅姟鍣╥d")
+    @Parameter(name = "callId", description = "鎺ㄦ祦鏃舵惡甯︾殑鑷畾涔夐壌鏉僆D")
+    @Parameter(name = "useSourceIpAsStreamIp", description = "鏄惁浣跨敤璇锋眰IP浣滀负杩斿洖鐨勫湴鍧�IP")
     @GetMapping(value = "/stream_info_by_app_and_stream")
     @ResponseBody
     public WVPResult<StreamInfo> getStreamInfoByAppAndStream(HttpServletRequest request, @RequestParam String app,
@@ -95,8 +93,30 @@
             result.setMsg("scccess");
             result.setData(streamInfo);
         }else {
-            result.setCode(-1);
-            result.setMsg("fail");
+            //鑾峰彇娴佸け璐ワ紝閲嶅惎鎷夋祦鍚庨噸璇曚竴娆�
+            streamProxyService.stop(app,stream);
+            boolean start = streamProxyService.start(app, stream);
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            if (useSourceIpAsStreamIp != null && useSourceIpAsStreamIp) {
+                String host = request.getHeader("Host");
+                String localAddr = host.split(":")[0];
+                logger.info("浣跨敤{}浣滀负杩斿洖娴佺殑ip", localAddr);
+                streamInfo = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, localAddr, authority);
+            }else {
+                streamInfo = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, authority);
+            }
+            if (streamInfo != null){
+                result.setCode(0);
+                result.setMsg("scccess");
+                result.setData(streamInfo);
+            }else {
+                result.setCode(-1);
+                result.setMsg("fail");
+            }
         }
         return result;
     }

--
Gitblit v1.8.0