From abb60593cb77e9e9b6e67e8276fc416c2aede43f Mon Sep 17 00:00:00 2001
From: lin <18010473990@163.com>
Date: 星期六, 08 一月 2022 17:35:00 +0800
Subject: [PATCH] 优化级联平台GPS订阅

---
 src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
index 19bf13a..8ec9474 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
@@ -105,23 +105,22 @@
             result.append("淇濆瓨鎴愬姛");
             if (param.isEnable()) {
                 JSONObject jsonObject = addStreamProxyToZlm(param);
-                if (jsonObject == null) {
+                if (jsonObject == null || jsonObject.getInteger("code") != 0) {
                     streamLive = false;
                     result.append(", 浣嗘槸鍚敤澶辫触锛岃妫�鏌ユ祦鍦板潃鏄惁鍙敤");
                     param.setEnable(false);
-                    videoManagerStorager.updateStreamProxy(param);
-                }else {
-                    Integer code = jsonObject.getInteger("code");
-                    if (code == 0) {
-                        streamLive = true;
-                        StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(
-                                mediaInfo, param.getApp(), param.getStream(), null);
-                        wvpResult.setData(streamInfo);
+                    // 鐩存帴绉婚櫎
+                    if (param.isEnable_remove_none_reader()) {
+                        del(param.getApp(), param.getStream());
                     }else {
-                        result.append(", 浣嗘槸鍚敤澶辫触锛岃妫�鏌ユ祦鍦板潃鏄惁鍙敤");
-                        param.setEnable(false);
                         videoManagerStorager.updateStreamProxy(param);
                     }
+
+                }else {
+                    streamLive = true;
+                    StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(
+                            mediaInfo, param.getApp(), param.getStream(), null);
+                    wvpResult.setData(streamInfo);
 
                 }
             }
@@ -131,7 +130,7 @@
         if ( !StringUtils.isEmpty(param.getPlatformGbId()) && streamLive) {
             List<GbStream> gbStreams = new ArrayList<>();
             gbStreams.add(param);
-            if (gbStreamService.addPlatformInfo(gbStreams, param.getPlatformGbId())){
+            if (gbStreamService.addPlatformInfo(gbStreams, param.getPlatformGbId(), param.getCatalogId())){
                 result.append(",  鍏宠仈鍥芥爣骞冲彴[ " + param.getPlatformGbId() + " ]鎴愬姛");
             }else {
                 result.append(",  鍏宠仈鍥芥爣骞冲彴[ " + param.getPlatformGbId() + " ]澶辫触");
@@ -142,6 +141,7 @@
         if (parentPlatforms.size() > 0) {
             for (ParentPlatform parentPlatform : parentPlatforms) {
                 param.setPlatformId(parentPlatform.getServerGBId());
+                param.setCatalogId(parentPlatform.getCatalogId());
                 String stream = param.getStream();
                 StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(param.getApp(), stream, parentPlatform.getServerGBId());
                 if (streamProxyItems == null) {
@@ -202,8 +202,10 @@
                 platformGbStreamMapper.delByAppAndStream(app, stream);
                 // TODO 濡傛灉鍏宠仈鐨勬帹娴侊紝 閭d箞鐘舵�佽缃负绂荤嚎
             }
+            redisCatchStorage.removeStream(streamProxyItem.getMediaServerId(), "PULL", app, stream);
         }
 
+
     }
 
     @Override

--
Gitblit v1.8.0