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

This commit is contained in:
648540858 2023-09-21 21:34:02 +08:00
parent 4ba0e3c13e
commit a34db2ee8b
4 changed files with 33 additions and 3 deletions

View File

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

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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);
}
}