src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
@@ -69,4 +69,6 @@ * @param catalogId */ void delAllPlatformInfo(String platformId, String catalogId); List<GbStream> getGbChannelWithGbid(String gbId); } src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -263,4 +263,9 @@ eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.DEL); } } @Override public List<GbStream> getGbChannelWithGbid(String gbId) { return gbStreamMapper.selectByGBId(gbId); } } src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
@@ -341,14 +341,16 @@ 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); } 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.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @Tag(name = "视频流关联到级联平台") @@ -28,7 +33,7 @@ private IGbStreamService gbStreamService; @Autowired private IVideoManagerStorage storager; private IPlatformService platformService; /** @@ -107,4 +112,20 @@ 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); } }