瀏覽代碼

增加根据国标编号添加国标级联通道的接口

648540858 2 年之前
父節點
當前提交
a34db2ee8b

+ 2 - 0
src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java

@@ -69,4 +69,6 @@ public interface IGbStreamService {
      * @param catalogId
      */
     void delAllPlatformInfo(String platformId, String catalogId);
+
+    List<GbStream> getGbChannelWithGbid(String gbId);
 }

+ 5 - 0
src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java

@@ -263,4 +263,9 @@ public class GbStreamServiceImpl implements IGbStreamService {
             eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.DEL);
         }
     }
+
+    @Override
+    public List<GbStream> getGbChannelWithGbid(String gbId) {
+        return gbStreamMapper.selectByGBId(gbId);
+    }
 }

+ 4 - 2
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java

@@ -341,14 +341,16 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
         StreamProxyItem streamProxyItem = videoManagerStorager.queryStreamProxy(app, stream);
         if (streamProxyItem != null) {
             gbStreamService.sendCatalogMsg(streamProxyItem, CatalogEvent.DEL);
-            videoManagerStorager.deleteStreamProxy(app, stream);
+
             JSONObject jsonObject = removeStreamProxyFromZlm(streamProxyItem);
             if (jsonObject != null && jsonObject.getInteger("code") == 0) {
                 // 如果关联了国标那么移除关联
+                int i = platformGbStreamMapper.delByAppAndStream(app, stream);
                 gbStreamMapper.del(app, stream);
-                platformGbStreamMapper.delByAppAndStream(app, stream);
+                System.out.println();
                 // TODO 如果关联的推流, 那么状态设置为离线
             }
+            videoManagerStorager.deleteStreamProxy(app, stream);
             redisCatchStorage.removeStream(streamProxyItem.getMediaServerId(), "PULL", app, stream);
         }
 

+ 22 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java

@@ -1,8 +1,12 @@
 package com.genersoft.iot.vmp.vmanager.gb28181.gbStream;
 
+import com.genersoft.iot.vmp.conf.exception.ControllerException;
 import com.genersoft.iot.vmp.gb28181.bean.GbStream;
+import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.service.IGbStreamService;
+import com.genersoft.iot.vmp.service.IPlatformService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
+import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import com.genersoft.iot.vmp.vmanager.gb28181.gbStream.bean.GbStreamParam;
 import com.github.pagehelper.PageInfo;
 import io.swagger.v3.oas.annotations.Operation;
@@ -14,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Tag(name  = "视频流关联到级联平台")
@@ -28,7 +33,7 @@ public class GbStreamController {
     private IGbStreamService gbStreamService;
 
     @Autowired
-    private IVideoManagerStorage storager;
+    private IPlatformService platformService;
 
 
     /**
@@ -107,4 +112,20 @@ public class GbStreamController {
             gbStreamService.addPlatformInfo(gbStreamParam.getGbStreams(), gbStreamParam.getPlatformId(), gbStreamParam.getCatalogId());
         }
     }
+
+    /**
+     * 保存国标关联
+     * @param gbId
+     * @return
+     */
+    @Operation(summary = "保存国标关联")
+    @GetMapping(value = "/addWithGbid")
+    @ResponseBody
+    public void add(String gbId, String platformGbId, @RequestParam(required = false) String catalogGbId){
+        List<GbStream> gbStreams = gbStreamService.getGbChannelWithGbid(gbId);
+        if (gbStreams.isEmpty()) {
+            throw new ControllerException(ErrorCode.ERROR100.getCode(), "gbId的信息未找到");
+        }
+        gbStreamService.addPlatformInfo(gbStreams, platformGbId, catalogGbId);
+    }
 }