添加金仓数据库x86驱动,优化兼容接口通道列表查询。修复多个通道同时推送

This commit is contained in:
648540858 2024-01-04 17:26:47 +08:00
parent d91583b833
commit 6120e6bd7b
13 changed files with 30 additions and 17 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -153,6 +153,13 @@
<scope>system</scope> <scope>system</scope>
<systemPath>${basedir}/libs/jdbc-aarch/kingbase8-8.6.0.jar</systemPath> <systemPath>${basedir}/libs/jdbc-aarch/kingbase8-8.6.0.jar</systemPath>
</dependency> </dependency>
<dependency>
<groupId>com.kingbase</groupId>
<artifactId>kingbase8</artifactId>
<version>8.6.0</version>
<scope>system</scope>
<systemPath>${basedir}/libs/jdbc-x86/kingbase8-8.6.0.jar</systemPath>
</dependency>
<!--Mybatis分页插件 --> <!--Mybatis分页插件 -->
<dependency> <dependency>

View File

@ -598,7 +598,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
SIPRequest notifyRequest = headerProviderPlatformProvider.createNotifyRequest(parentPlatform, catalogXmlContent, subscribeInfo); SIPRequest notifyRequest = headerProviderPlatformProvider.createNotifyRequest(parentPlatform, catalogXmlContent, subscribeInfo);
sipSender.transmitRequest(parentPlatform.getDeviceIp(), notifyRequest); sipSender.transmitRequest(parentPlatform.getDeviceIp(), notifyRequest, errorEvent, okEvent);
} }
private String getCatalogXmlContentForCatalogAddOrUpdate(ParentPlatform parentPlatform, List<DeviceChannel> channels, int sumNum, String type, SubscribeInfo subscribeInfo) { private String getCatalogXmlContentForCatalogAddOrUpdate(ParentPlatform parentPlatform, List<DeviceChannel> channels, int sumNum, String type, SubscribeInfo subscribeInfo) {
@ -610,7 +610,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
.append("<CmdType>Catalog</CmdType>\r\n") .append("<CmdType>Catalog</CmdType>\r\n")
.append("<SN>" + (int) ((Math.random() * 9 + 1) * 100000) + "</SN>\r\n") .append("<SN>" + (int) ((Math.random() * 9 + 1) * 100000) + "</SN>\r\n")
.append("<DeviceID>" + parentPlatform.getDeviceGBId() + "</DeviceID>\r\n") .append("<DeviceID>" + parentPlatform.getDeviceGBId() + "</DeviceID>\r\n")
.append("<SumNum>1</SumNum>\r\n") .append("<SumNum>"+ channels.size() +"</SumNum>\r\n")
.append("<DeviceList Num=\"" + channels.size() + "\">\r\n"); .append("<DeviceList Num=\"" + channels.size() + "\">\r\n");
if (channels.size() > 0) { if (channels.size() > 0) {
for (DeviceChannel channel : channels) { for (DeviceChannel channel : channels) {

View File

@ -250,9 +250,6 @@ public class GbStreamServiceImpl implements IGbStreamService {
if (platform == null) { if (platform == null) {
return ; return ;
} }
if (ObjectUtils.isEmpty(catalogId)) {
catalogId = platform.getDeviceGBId();
}
if (platformGbStreamMapper.delByPlatformAndCatalogId(platformId, catalogId) > 0) { if (platformGbStreamMapper.delByPlatformAndCatalogId(platformId, catalogId) > 0) {
List<GbStream> gbStreams = platformGbStreamMapper.queryChannelInParentPlatformAndCatalog(platformId, catalogId); List<GbStream> gbStreams = platformGbStreamMapper.queryChannelInParentPlatformAndCatalog(platformId, catalogId);
List<DeviceChannel> deviceChannelList = new ArrayList<>(); List<DeviceChannel> deviceChannelList = new ArrayList<>();

View File

@ -103,6 +103,9 @@ public interface PlatformGbStreamMapper {
"</script>") "</script>")
void delByAppAndStreamsByPlatformId(@Param("gbStreams") List<GbStream> gbStreams, @Param("platformId") String platformId); void delByAppAndStreamsByPlatformId(@Param("gbStreams") List<GbStream> gbStreams, @Param("platformId") String platformId);
@Delete("DELETE from wvp_platform_gb_stream WHERE platform_id=#{platformId} and catalog_id=#{catalogId}") @Delete("<script> "+
"DELETE from wvp_platform_gb_stream WHERE platform_id=#{platformId}" +
" <if test='catalogId != null' > and catalog_id=#{catalogId}</if>" +
"</script>")
int delByPlatformAndCatalogId(@Param("platformId") String platformId, @Param("catalogId") String catalogId); int delByPlatformAndCatalogId(@Param("platformId") String platformId, @Param("catalogId") String catalogId);
} }

View File

@ -68,6 +68,7 @@ public class ApiDeviceController {
// if (logger.isDebugEnabled()) { // if (logger.isDebugEnabled()) {
// logger.debug("查询所有视频设备API调用"); // logger.debug("查询所有视频设备API调用");
// } // }
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
List<Device> devices; List<Device> devices;
if (start == null || limit ==null) { if (start == null || limit ==null) {
@ -80,7 +81,7 @@ public class ApiDeviceController {
} }
JSONArray deviceJSONList = new JSONArray(); JSONArray deviceJSONList = new JSONArray();
for (Device device : devices) { devices.stream().forEach(device -> {
JSONObject deviceJsonObject = new JSONObject(); JSONObject deviceJsonObject = new JSONObject();
deviceJsonObject.put("ID", device.getDeviceId()); deviceJsonObject.put("ID", device.getDeviceId());
deviceJsonObject.put("Name", device.getName()); deviceJsonObject.put("Name", device.getName());
@ -99,7 +100,7 @@ public class ApiDeviceController {
deviceJsonObject.put("UpdatedAt", ""); deviceJsonObject.put("UpdatedAt", "");
deviceJsonObject.put("CreatedAt", ""); deviceJsonObject.put("CreatedAt", "");
deviceJSONList.add(deviceJsonObject); deviceJSONList.add(deviceJsonObject);
} });
result.put("DeviceList",deviceJSONList); result.put("DeviceList",deviceJSONList);
return result; return result;
} }
@ -114,7 +115,6 @@ public class ApiDeviceController {
@RequestParam(required = false)String q, @RequestParam(required = false)String q,
@RequestParam(required = false)Boolean online ){ @RequestParam(required = false)Boolean online ){
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
List<DeviceChannelExtend> deviceChannels; List<DeviceChannelExtend> deviceChannels;
List<String> channelIds = null; List<String> channelIds = null;
@ -127,13 +127,19 @@ public class ApiDeviceController {
deviceChannels = allDeviceChannelList; deviceChannels = allDeviceChannelList;
result.put("ChannelCount", deviceChannels.size()); result.put("ChannelCount", deviceChannels.size());
}else { }else {
deviceChannels = storager.queryChannelsByDeviceIdWithStartAndLimit(serial,channelIds, null, null, online,start, limit); if (start > allDeviceChannelList.size()) {
int total = allDeviceChannelList.size(); deviceChannels = new ArrayList<>();
result.put("ChannelCount", total); }else {
if (start + limit < allDeviceChannelList.size()) {
deviceChannels = allDeviceChannelList.subList(start, start + limit);
}else {
deviceChannels = allDeviceChannelList.subList(start, allDeviceChannelList.size());
}
}
result.put("ChannelCount", allDeviceChannelList.size());
} }
JSONArray channleJSONList = new JSONArray(); JSONArray channleJSONList = new JSONArray();
for (DeviceChannelExtend deviceChannelExtend : deviceChannels) { deviceChannels.stream().forEach(deviceChannelExtend -> {
JSONObject deviceJOSNChannel = new JSONObject(); JSONObject deviceJOSNChannel = new JSONObject();
deviceJOSNChannel.put("ID", deviceChannelExtend.getChannelId()); deviceJOSNChannel.put("ID", deviceChannelExtend.getChannelId());
deviceJOSNChannel.put("DeviceID", deviceChannelExtend.getDeviceId()); deviceJOSNChannel.put("DeviceID", deviceChannelExtend.getDeviceId());
@ -166,7 +172,7 @@ public class ApiDeviceController {
deviceJOSNChannel.put("StreamID", deviceChannelExtend.getStreamId()); // StreamID 直播流ID, 有值表示正在直播 deviceJOSNChannel.put("StreamID", deviceChannelExtend.getStreamId()); // StreamID 直播流ID, 有值表示正在直播
deviceJOSNChannel.put("NumOutputs ", -1); // 直播在线人数 deviceJOSNChannel.put("NumOutputs ", -1); // 直播在线人数
channleJSONList.add(deviceJOSNChannel); channleJSONList.add(deviceJOSNChannel);
} });
result.put("ChannelList", channleJSONList); result.put("ChannelList", channleJSONList);
return result; return result;
} }

View File

@ -54,9 +54,9 @@ spring:
password: root123 password: root123
hikari: hikari:
connection-timeout: 20000 # 是客户端等待连接池连接的最大毫秒数 connection-timeout: 20000 # 是客户端等待连接池连接的最大毫秒数
initialSize: 10 # 连接池初始化连接数 initialSize: 50 # 连接池初始化连接数
maximum-pool-size: 200 # 连接池最大连接数 maximum-pool-size: 200 # 连接池最大连接数
minimum-idle: 5 # 连接池最小空闲连接数 minimum-idle: 10 # 连接池最小空闲连接数
idle-timeout: 300000 # 允许连接在连接池中空闲的最长时间(以毫秒为单位) idle-timeout: 300000 # 允许连接在连接池中空闲的最长时间(以毫秒为单位)
max-lifetime: 1200000 # 是池中连接关闭后的最长生命周期(以毫秒为单位) max-lifetime: 1200000 # 是池中连接关闭后的最长生命周期(以毫秒为单位)