Merge branch '2.6.9' into wvp-28181-2.0
| | |
| | | if (event.getDeviceChannels() != null) { |
| | | deviceChannelList.addAll(event.getDeviceChannels()); |
| | | } |
| | | if (event.getGbStreams() != null && event.getGbStreams().size() > 0){ |
| | | if (event.getGbStreams() != null && !event.getGbStreams().isEmpty()){ |
| | | for (GbStream gbStream : event.getGbStreams()) { |
| | | deviceChannelList.add( |
| | | gbStreamService.getDeviceChannelListByStreamWithStatus(gbStream, gbStream.getCatalogId(), parentPlatform)); |
| | | } |
| | | } |
| | | if (deviceChannelList.size() > 0) { |
| | | if (!deviceChannelList.isEmpty()) { |
| | | logger.info("[Catalog事件: {}]平台:{},影响通道{}个", event.getType(), event.getPlatformId(), deviceChannelList.size()); |
| | | try { |
| | | sipCommanderFroPlatform.sendNotifyForCatalogAddOrUpdate(event.getType(), parentPlatform, deviceChannelList, subscribe, null); |
| | |
| | | logger.error("[命令发送失败] 国标级联 Catalog通知: {}", e.getMessage()); |
| | | } |
| | | } |
| | | }else if (parentPlatformMap.keySet().size() > 0) { |
| | | }else if (!parentPlatformMap.keySet().isEmpty()) { |
| | | for (String gbId : parentPlatformMap.keySet()) { |
| | | List<ParentPlatform> parentPlatforms = parentPlatformMap.get(gbId); |
| | | if (parentPlatforms != null && parentPlatforms.size() > 0) { |
| | | if (parentPlatforms != null && !parentPlatforms.isEmpty()) { |
| | | for (ParentPlatform platform : parentPlatforms) { |
| | | SubscribeInfo subscribeInfo = subscribeHolder.getCatalogSubscribe(platform.getServerGBId()); |
| | | if (subscribeInfo == null) { |
| | |
| | | |
| | | @Override |
| | | public void sendNotifyForCatalogAddOrUpdate(String type, ParentPlatform parentPlatform, List<DeviceChannel> deviceChannels, SubscribeInfo subscribeInfo, Integer index) throws InvalidArgumentException, ParseException, NoSuchFieldException, SipException, IllegalAccessException { |
| | | if (parentPlatform == null || deviceChannels == null || deviceChannels.size() == 0 || subscribeInfo == null) { |
| | | if (parentPlatform == null || deviceChannels == null || deviceChannels.isEmpty() || subscribeInfo == null) { |
| | | return; |
| | | } |
| | | if (index == null) { |
| | |
| | | Integer finalIndex = index; |
| | | String catalogXmlContent = getCatalogXmlContentForCatalogAddOrUpdate(parentPlatform, channels, |
| | | deviceChannels.size(), type, subscribeInfo); |
| | | logger.info("[发送NOTIFY通知]类型: {},发送数量: {}", type, channels.size()); |
| | | sendNotify(parentPlatform, catalogXmlContent, subscribeInfo, eventResult -> { |
| | | logger.error("发送NOTIFY通知消息失败。错误:{} {}", eventResult.statusCode, eventResult.msg); |
| | | }, (eventResult -> { |
| | |
| | | .append("<CmdType>Catalog</CmdType>\r\n") |
| | | .append("<SN>" + (int) ((Math.random() * 9 + 1) * 100000) + "</SN>\r\n") |
| | | .append("<DeviceID>" + parentPlatform.getDeviceGBId() + "</DeviceID>\r\n") |
| | | .append("<SumNum>"+ channels.size() +"</SumNum>\r\n") |
| | | .append("<SumNum>"+ sumNum +"</SumNum>\r\n") |
| | | .append("<DeviceList Num=\"" + channels.size() + "\">\r\n"); |
| | | if (channels.size() > 0) { |
| | | if (!channels.isEmpty()) { |
| | | for (DeviceChannel channel : channels) { |
| | | if (parentPlatform.getServerGBId().equals(channel.getParentId())) { |
| | | channel.setParentId(parentPlatform.getDeviceGBId()); |
| | |
| | | } |
| | | if (parentPlatform.isAutoPushChannel()) { |
| | | if (subscribeHolder.getCatalogSubscribe(parentPlatform.getServerGBId()) == null) { |
| | | logger.info("[国标级联]:{}, 添加自动通道推送模拟订阅信息", parentPlatform.getServerGBId()); |
| | | addSimulatedSubscribeInfo(parentPlatform); |
| | | } |
| | | }else { |
| | |
| | | // 清除心跳任务 |
| | | dynamicTask.stop(keepaliveTaskKey); |
| | | } |
| | | // 停止目录订阅回复 |
| | | logger.info("[平台离线] {}, 停止订阅回复", parentPlatform.getServerGBId()); |
| | | subscribeHolder.removeAllSubscribe(parentPlatform.getServerGBId()); |
| | | // 停止订阅回复 |
| | | SubscribeInfo catalogSubscribe = subscribeHolder.getCatalogSubscribe(parentPlatform.getServerGBId()); |
| | | if (catalogSubscribe != null) { |
| | | if (catalogSubscribe.getExpires() > 0) { |
| | | logger.info("[平台离线] {}, 停止目录订阅回复", parentPlatform.getServerGBId()); |
| | | subscribeHolder.removeCatalogSubscribe(parentPlatform.getServerGBId()); |
| | | } |
| | | } |
| | | logger.info("[平台离线] {}, 停止移动位置订阅回复", parentPlatform.getServerGBId()); |
| | | subscribeHolder.removeMobilePositionSubscribe(parentPlatform.getServerGBId()); |
| | | // 发起定时自动重新注册 |
| | | if (!stopRegister) { |
| | | // 设置为60秒自动尝试重新注册 |