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