From 335916f1f15eb9d0b34dea38cacee2300eac0606 Mon Sep 17 00:00:00 2001
From: 李防 <liguofang0703@126.com>
Date: 星期一, 07 三月 2022 14:20:27 +0800
Subject: [PATCH] InviteRequestProcessor类中,channelid从invite消息的header subject获取,不再从第一行request line获取。原因是和第三方平台对接时,发送的invite消息第一行为国标平台编码而不是设备通道编码,导致报错通道不存在,返回404。

---
 src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java
index 3094283..2e96fbe 100644
--- a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java
+++ b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java
@@ -73,7 +73,7 @@
             deviceJsonObject.put("ChannelCount", device.getChannelCount());
             deviceJsonObject.put("RecvStreamIP", "");
             deviceJsonObject.put("CatalogInterval", 3600); // 閫氶亾鐩綍鎶撳彇鍛ㄦ湡
-            deviceJsonObject.put("SubscribeInterval", 0); // 璁㈤槄鍛ㄦ湡(绉�), 0 琛ㄧず鍚庡彴涓嶅懆鏈熻闃�
+            deviceJsonObject.put("SubscribeInterval", device.getSubscribeCycleForCatalog()); // 璁㈤槄鍛ㄦ湡(绉�), 0 琛ㄧず鍚庡彴涓嶅懆鏈熻闃�
             deviceJsonObject.put("Online", device.getOnline() == 1);
             deviceJsonObject.put("Password", "");
             deviceJsonObject.put("MediaTransport", device.getTransport());
@@ -110,13 +110,14 @@
             return result;
         }
         List<DeviceChannel> deviceChannels;
+        List<DeviceChannel> allDeviceChannelList = storager.queryChannelsByDeviceId(serial);
         if (start == null || limit ==null) {
-            deviceChannels = storager.queryChannelsByDeviceId(serial);
+            deviceChannels = allDeviceChannelList;
             result.put("ChannelCount", deviceChannels.size());
         }else {
-            PageInfo<DeviceChannel> pageResult = storager.queryChannelsByDeviceId(serial, null, null, null,start/limit, limit);
-            result.put("ChannelCount", pageResult.getTotal());
-            deviceChannels = pageResult.getList();
+            deviceChannels = storager.queryChannelsByDeviceIdWithStartAndLimit(serial, null, null, null,start, limit);
+            int total = allDeviceChannelList.size();
+            result.put("ChannelCount", total);
         }
 
         JSONArray channleJSONList = new JSONArray();

--
Gitblit v1.8.0