From 385fdb95f18c1f0b4e38f8a6e481176ac31ee987 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 17 一月 2022 15:48:08 +0800
Subject: [PATCH] 优化级联选择通道逻辑
---
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java | 4 +-
/dev/null | 44 ----------------------
src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java | 2
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java | 1
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java | 2
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java | 4 +
src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java | 6 ++-
src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java | 4 +-
src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java | 1
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 2
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java | 9 +++-
11 files changed, 22 insertions(+), 57 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
index 4cbe5fb..ad1fa51 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
@@ -59,6 +59,7 @@
Map<String, List<ParentPlatform>> parentPlatformMap = new HashMap<>();
if (event.getPlatformId() != null) {
parentPlatform = storager.queryParentPlatByServerGBId(event.getPlatformId());
+ if (!parentPlatform.isStatus())return;
String key = VideoManagerConstants.SIP_SUBSCRIBE_PREFIX + userSetup.getServerId() + "_Catalog_" + event.getPlatformId();
subscribe = redisCatchStorage.getSubscribe(key);
}else {
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java b/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
index 3bb964b..a48bfb5 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
@@ -17,7 +17,7 @@
* @param count
* @return
*/
- PageInfo<GbStream> getAll(Integer page, Integer count);
+ PageInfo<GbStream> getAll(Integer page, Integer count, String platFormId);
/**
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
index 35c262f..79e0b7a 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -51,9 +51,9 @@
private EventPublisher eventPublisher;
@Override
- public PageInfo<GbStream> getAll(Integer page, Integer count) {
+ public PageInfo<GbStream> getAll(Integer page, Integer count, String platFormId) {
PageHelper.startPage(page, count);
- List<GbStream> all = gbStreamMapper.selectAll();
+ List<GbStream> all = gbStreamMapper.selectAll(platFormId);
return new PageInfo<>(all);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
index 15bb0f5..ce6ac9e 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
@@ -37,8 +37,10 @@
@Delete("DELETE FROM gb_stream WHERE app=#{app} AND stream=#{stream}")
int del(String app, String stream);
- @Select("SELECT gs.*, pgs.platformId AS platformId, pgs.catalogId AS catalogId FROM gb_stream gs LEFT JOIN platform_gb_stream pgs ON gs.app = pgs.app AND gs.stream = pgs.stream")
- List<GbStream> selectAll();
+ @Select("SELECT gs.*, pgs.platformId AS platformId, pgs.catalogId AS catalogId FROM gb_stream gs " +
+ "LEFT JOIN platform_gb_stream pgs ON gs.app = pgs.app AND gs.stream = pgs.stream " +
+ "WHERE pgs.platformId is null OR pgs.platformId = #{platformId}")
+ List<GbStream> selectAll(String platformId);
@Select("SELECT * FROM gb_stream WHERE app=#{app} AND stream=#{stream}")
StreamProxyItem selectOne(String app, String stream);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java
index 03c66d4..59ecdbc 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java
@@ -24,7 +24,9 @@
@Delete("DELETE FROM platform_catalog WHERE platformId=#{platformId}")
int delByPlatformId(String platformId);
- @Select("SELECT *, (SELECT COUNT(1) from platform_catalog where parentId = pc.id AND platformId=#{platformId}) as childrenCount FROM platform_catalog pc WHERE parentId=#{parentId} AND platformId=#{platformId}")
+ @Select("SELECT pc.*, count(pc2.id) as childrenCount FROM platform_catalog pc " +
+ "left join platform_catalog pc2 on pc.id = pc2.parentId " +
+ "WHERE pc.parentId=#{parentId} AND pc.platformId=#{platformId} group by pc.id")
List<PlatformCatalog> selectByParentId(String platformId, String parentId);
@Select("SELECT *, (SELECT COUNT(1) from platform_catalog where parentId = pc.id) as childrenCount FROM platform_catalog pc WHERE pc.id=#{id}")
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
index a9e2c62..81f869c 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
@@ -83,7 +83,7 @@
"left join platform_gb_channel pgc on " +
"pp.serverGBId = pgc.platformId " +
"WHERE " +
- "pgc.channelId = #{channelId} " +
+ "pgc.channelId = #{channelId} pp.status = true " +
"AND pp.serverGBId IN" +
"<foreach collection='platforms' item='item' open='(' separator=',' close=')' > #{item}</foreach>" +
"</script> ")
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
index 248b37a..d9eafa0 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
@@ -52,8 +52,8 @@
"from gb_stream gs\n" +
" left join platform_gb_stream pgs\n" +
" on gs.app = pgs.app and gs.stream = pgs.stream\n" +
- "where pgs.platformId=#{platformId} and pgs.catalogId=#{catalogId}")
- List<PlatformCatalog> queryChannelInParentPlatformAndCatalogForCatlog(String platformId, String catalogId);
+ "where and pgs.platformId=#{platformId} and pgs.catalogId=#{catalogId}")
+ List<PlatformCatalog> queryChannelInParentPlatformAndCatalogForCatalog(String platformId, String catalogId);
@Delete("DELETE FROM platform_gb_stream WHERE catalogId=#{id}")
int delByCatalogId(String id);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
index e0b955f..369b659 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -639,7 +639,7 @@
@Override
public List<PlatformCatalog> queryStreamInParentPlatformAndCatalog(String platformId, String catalogId) {
- List<PlatformCatalog> catalogs = platformGbStreamMapper.queryChannelInParentPlatformAndCatalogForCatlog(platformId, catalogId);
+ List<PlatformCatalog> catalogs = platformGbStreamMapper.queryChannelInParentPlatformAndCatalogForCatalog(platformId, catalogId);
return catalogs;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java
index a2fcf15..981c3cc 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java
@@ -33,19 +33,22 @@
* 鏌ヨ鍥芥爣閫氶亾
* @param page 褰撳墠椤�
* @param count 姣忛〉鏉℃暟
+ * @param platformId 骞冲彴ID
* @return
*/
@ApiOperation("鏌ヨ鍥芥爣閫氶亾")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "褰撳墠椤�", required = true , dataTypeClass = Integer.class),
@ApiImplicitParam(name = "count", value = "姣忛〉鏉℃暟", required = true , dataTypeClass = Integer.class),
+ @ApiImplicitParam(name = "platformId", value = "骞冲彴ID", required = true , dataTypeClass = Integer.class),
})
@GetMapping(value = "/list")
@ResponseBody
- public PageInfo<GbStream> list(@RequestParam(required = false)Integer page,
- @RequestParam(required = false)Integer count){
+ public PageInfo<GbStream> list(@RequestParam(required = true)Integer page,
+ @RequestParam(required = true)Integer count,
+ @RequestParam(required = true)String platformId){
- return gbStreamService.getAll(page, count);
+ return gbStreamService.getAll(page, count, platformId);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
index 0dc172f..69ea973 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
@@ -307,6 +307,7 @@
List<PlatformCatalog> platformCatalogList = storager.getChildrenCatalogByPlatform(platformId, parentId);
// 鏌ヨ涓嬪睘鐨勫浗鏍囬�氶亾
List<PlatformCatalog> catalogsForChannel = storager.queryChannelInParentPlatformAndCatalog(platformId, parentId);
+ // 鏌ヨ涓嬪睘鐨勭洿鎾祦閫氶亾
List<PlatformCatalog> catalogsForStream = storager.queryStreamInParentPlatformAndCatalog(platformId, parentId);
platformCatalogList.addAll(catalogsForChannel);
platformCatalogList.addAll(catalogsForStream);
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platformGbStream/PlatformGbStreamController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platformGbStream/PlatformGbStreamController.java
deleted file mode 100644
index 0eeea8b..0000000
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platformGbStream/PlatformGbStreamController.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.genersoft.iot.vmp.vmanager.gb28181.platformGbStream;
-
-import com.genersoft.iot.vmp.gb28181.bean.GbStream;
-import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
-import com.genersoft.iot.vmp.service.IGbStreamService;
-import com.github.pagehelper.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-@Api(tags = "绾ц仈骞冲彴鍏宠仈瑙嗛娴�")
-@CrossOrigin
-@RestController
-@RequestMapping("/api/platform_gb_stream")
-public class PlatformGbStreamController {
-
- private final static Logger logger = LoggerFactory.getLogger(PlatformGbStreamController.class);
-
- @Autowired
- private IGbStreamService gbStreamService;
-
- @Autowired
- private IVideoManagerStorager storager;
-
- @ApiOperation("鍒嗛〉鏌ヨ绾ц仈骞冲彴鍏宠仈鐨勮棰戞祦")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "page", value = "褰撳墠椤�", dataTypeClass = Integer.class),
- @ApiImplicitParam(name = "count", value = "姣忛〉鏉℃暟", dataTypeClass = Integer.class),
- })
- @GetMapping(value = "/list")
- @ResponseBody
- public PageInfo<GbStream> list(@RequestParam(required = false)Integer page,
- @RequestParam(required = false)Integer count){
-
- return gbStreamService.getAll(page, count);
- }
-
-
-}
--
Gitblit v1.8.0