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/StreamPushServiceImpl.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
index be34fae..2a70754 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -6,23 +6,23 @@
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.conf.UserSetup;
 import com.genersoft.iot.vmp.gb28181.bean.GbStream;
+import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe;
 import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
 import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig;
-import com.genersoft.iot.vmp.media.zlm.dto.MediaItem;
-import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
-import com.genersoft.iot.vmp.media.zlm.dto.OriginType;
-import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
+import com.genersoft.iot.vmp.media.zlm.dto.*;
 import com.genersoft.iot.vmp.service.IMediaServerService;
 import com.genersoft.iot.vmp.service.IStreamPushService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.dao.GbStreamMapper;
+import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper;
 import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper;
 import com.genersoft.iot.vmp.storager.dao.StreamPushMapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import java.util.*;
 
@@ -34,6 +34,9 @@
 
     @Autowired
     private StreamPushMapper streamPushMapper;
+
+    @Autowired
+    private ParentPlatformMapper parentPlatformMapper;
 
     @Autowired
     private PlatformGbStreamMapper platformGbStreamMapper;
@@ -70,7 +73,6 @@
                     result.put(key, streamPushItem);
                 }
             }
-
         }
 
         return new ArrayList<>(result.values());
@@ -113,6 +115,19 @@
         stream.setStreamType("push");
         stream.setStatus(true);
         int add = gbStreamMapper.add(stream);
+        // 鏌ユ壘寮�鍚簡鍏ㄩ儴鐩存挱娴佸叡浜殑涓婄骇骞冲彴
+        List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
+        if (parentPlatforms.size() > 0) {
+            for (ParentPlatform parentPlatform : parentPlatforms) {
+                stream.setCatalogId(parentPlatform.getCatalogId());
+                stream.setPlatformId(parentPlatform.getServerGBId());
+                String streamId = stream.getStream();
+                StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(stream.getApp(), streamId, parentPlatform.getServerGBId());
+                if (streamProxyItems == null) {
+                    platformGbStreamMapper.add(stream);
+                }
+            }
+        }
         return add > 0;
     }
 
@@ -255,4 +270,30 @@
     public void clean() {
 
     }
+
+    @Override
+    public boolean saveToRandomGB() {
+        List<StreamPushItem> streamPushItems = streamPushMapper.selectAll();
+        long gbId = 100001;
+        for (StreamPushItem streamPushItem : streamPushItems) {
+            streamPushItem.setStreamType("push");
+            streamPushItem.setStatus(true);
+            streamPushItem.setGbId("34020000004111" + gbId);
+            gbId ++;
+        }
+        int  limitCount = 30;
+
+        if (streamPushItems.size() > limitCount) {
+            for (int i = 0; i < streamPushItems.size(); i += limitCount) {
+                int toIndex = i + limitCount;
+                if (i + limitCount > streamPushItems.size()) {
+                    toIndex = streamPushItems.size();
+                }
+                gbStreamMapper.batchAdd(streamPushItems.subList(i, toIndex));
+            }
+        }else {
+            gbStreamMapper.batchAdd(streamPushItems);
+        }
+        return true;
+    }
 }

--
Gitblit v1.8.0