临时提交
parent
31dcde7cc1
commit
e0686dd426
|
@ -1,5 +1,6 @@
|
||||||
package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.cmd;
|
package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.cmd;
|
||||||
|
|
||||||
|
import com.genersoft.iot.vmp.common.CommonGbChannel;
|
||||||
import com.genersoft.iot.vmp.conf.SipConfig;
|
import com.genersoft.iot.vmp.conf.SipConfig;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
||||||
|
@ -9,6 +10,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform;
|
||||||
import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
|
import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
|
||||||
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
|
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
|
||||||
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.QueryMessageHandler;
|
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.QueryMessageHandler;
|
||||||
|
import com.genersoft.iot.vmp.service.IPlatformChannelService;
|
||||||
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
|
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
|
||||||
import gov.nist.javax.sip.message.SIPRequest;
|
import gov.nist.javax.sip.message.SIPRequest;
|
||||||
import org.dom4j.Element;
|
import org.dom4j.Element;
|
||||||
|
@ -43,7 +45,7 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem
|
||||||
private SIPCommanderFroPlatform cmderFroPlatform;
|
private SIPCommanderFroPlatform cmderFroPlatform;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SipConfig config;
|
private IPlatformChannelService platformChannelService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EventPublisher publisher;
|
private EventPublisher publisher;
|
||||||
|
@ -74,33 +76,11 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem
|
||||||
Element snElement = rootElement.element("SN");
|
Element snElement = rootElement.element("SN");
|
||||||
String sn = snElement.getText();
|
String sn = snElement.getText();
|
||||||
// 准备回复通道信息
|
// 准备回复通道信息
|
||||||
List<DeviceChannel> deviceChannelInPlatforms = storager.queryChannelWithCatalog(parentPlatform.getServerGBId());
|
List<CommonGbChannel> commonGbChannelList = platformChannelService.queryChannelList(parentPlatform);
|
||||||
// 查询关联的直播通道
|
|
||||||
List<DeviceChannel> gbStreams = storager.queryGbStreamListInPlatform(parentPlatform.getServerGBId());
|
|
||||||
// 回复目录信息
|
|
||||||
List<DeviceChannel> catalogs = storager.queryCatalogInPlatform(parentPlatform.getServerGBId());
|
|
||||||
|
|
||||||
List<DeviceChannel> allChannels = new ArrayList<>();
|
|
||||||
|
|
||||||
// 回复平台
|
|
||||||
// DeviceChannel deviceChannel = getChannelForPlatform(parentPlatform);
|
|
||||||
// allChannels.add(deviceChannel);
|
|
||||||
|
|
||||||
// 回复目录
|
|
||||||
if (catalogs.size() > 0) {
|
|
||||||
allChannels.addAll(catalogs);
|
|
||||||
}
|
|
||||||
// 回复级联的通道
|
|
||||||
if (deviceChannelInPlatforms.size() > 0) {
|
|
||||||
allChannels.addAll(deviceChannelInPlatforms);
|
|
||||||
}
|
|
||||||
// 回复直播的通道
|
|
||||||
if (gbStreams.size() > 0) {
|
|
||||||
allChannels.addAll(gbStreams);
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
if (allChannels.size() > 0) {
|
if (commonGbChannelList.size() > 0) {
|
||||||
cmderFroPlatform.catalogQuery(allChannels, parentPlatform, sn, fromHeader.getTag());
|
cmderFroPlatform.catalogQuery(commonGbChannelList, parentPlatform, sn, fromHeader.getTag());
|
||||||
}else {
|
}else {
|
||||||
// 回复无通道
|
// 回复无通道
|
||||||
cmderFroPlatform.catalogQuery(null, parentPlatform, sn, fromHeader.getTag(), 0);
|
cmderFroPlatform.catalogQuery(null, parentPlatform, sn, fromHeader.getTag(), 0);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.genersoft.iot.vmp.service;
|
package com.genersoft.iot.vmp.service;
|
||||||
|
|
||||||
|
import com.genersoft.iot.vmp.common.CommonGbChannel;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
|
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -24,4 +25,9 @@ public interface IPlatformChannelService {
|
||||||
* 在一个给定的范围内查出分享了这个通道的上级平台
|
* 在一个给定的范围内查出分享了这个通道的上级平台
|
||||||
*/
|
*/
|
||||||
List<ParentPlatform> querySharePlatformListByChannelId(int commonGbId, List<String> platforms);
|
List<ParentPlatform> querySharePlatformListByChannelId(int commonGbId, List<String> platforms);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询关联了上级平台的所有通道
|
||||||
|
*/
|
||||||
|
List<CommonGbChannel> queryChannelList(ParentPlatform platform);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.TransactionDefinition;
|
import org.springframework.transaction.TransactionDefinition;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -123,4 +124,30 @@ public class PlatformChannelServiceImpl implements IPlatformChannelService {
|
||||||
public List<ParentPlatform> querySharePlatformListByChannelId(int commonGbId, List<String> platforms) {
|
public List<ParentPlatform> querySharePlatformListByChannelId(int commonGbId, List<String> platforms) {
|
||||||
return platformChannelMapper.querySharePlatformListByChannelId();
|
return platformChannelMapper.querySharePlatformListByChannelId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CommonGbChannel> queryChannelList(ParentPlatform platform) {
|
||||||
|
List<CommonGbChannel> result = new ArrayList<>();
|
||||||
|
if (platform.isShareAllChannel()) {
|
||||||
|
// 获取所有通道
|
||||||
|
List<CommonGbChannel> allChannelList = commonGbChannelMapper.getAll();
|
||||||
|
if (!allChannelList.isEmpty()) {
|
||||||
|
result.addAll(allChannelList);
|
||||||
|
// 获取所有分组
|
||||||
|
|
||||||
|
// 获取所有地区
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
// 查询所有关联了的国标通道
|
||||||
|
if (platform.isShareGroup()) {
|
||||||
|
// 获取相关分组
|
||||||
|
}
|
||||||
|
if (platform.isShareRegion()) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -600,4 +600,10 @@ public interface CommonChannelMapper {
|
||||||
"<foreach collection='commonChannelIdList' item='item' open='(' separator=',' close=')' > #{item}</foreach>" +
|
"<foreach collection='commonChannelIdList' item='item' open='(' separator=',' close=')' > #{item}</foreach>" +
|
||||||
"</script>")
|
"</script>")
|
||||||
void deleteByIdList(List<Integer> commonChannelIdList);
|
void deleteByIdList(List<Integer> commonChannelIdList);
|
||||||
|
|
||||||
|
@Select("<script> "+
|
||||||
|
"SELECT * FROM wvp_common_channel" +
|
||||||
|
"</script>")
|
||||||
|
List<CommonGbChannel> getAll();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue