From 26cd7dbaf9394ff26f5229b18cfdb72c203a6bc3 Mon Sep 17 00:00:00 2001 From: gaofw189 <gaofw189@chinatelecom.cn> Date: 星期二, 10 一月 2023 15:55:56 +0800 Subject: [PATCH] 修复WVP作为下级平台接收DeviceStatus指令固定响应的问题 --- src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java | 35 +++++++++++++++++++++++------------ 1 files changed, 23 insertions(+), 12 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 2e96fbe..e5f4227 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 @@ -1,16 +1,19 @@ package com.genersoft.iot.vmp.web.gb28181; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import com.genersoft.iot.vmp.service.IDeviceService; +import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; /** @@ -25,7 +28,9 @@ private final static Logger logger = LoggerFactory.getLogger(ApiDeviceController.class); @Autowired - private IVideoManagerStorager storager; + private IVideoManagerStorage storager; + @Autowired + private IDeviceService deviceService; // @Autowired // private SIPCommander cmder; @@ -37,7 +42,7 @@ // private DeviceOffLineDetector offLineDetector; /** - * 鍒嗛〉鑾峰彇璁惧鍒楄〃 TODO 鐜板湪鐩存帴杩斿洖锛屽皻鏈疄鐜板垎椤� + * 鍒嗛〉鑾峰彇璁惧鍒楄〃 鐜板湪鐩存帴杩斿洖锛屽皻鏈疄鐜板垎椤� * @param start * @param limit * @param q @@ -56,10 +61,10 @@ JSONObject result = new JSONObject(); List<Device> devices; if (start == null || limit ==null) { - devices = storager.queryVideoDeviceList(); + devices = storager.queryVideoDeviceList(online); result.put("DeviceCount", devices.size()); }else { - PageInfo<Device> deviceList = storager.queryVideoDeviceList(start/limit, limit); + PageInfo<Device> deviceList = storager.queryVideoDeviceList(start/limit, limit,online); result.put("DeviceCount", deviceList.getTotal()); devices = deviceList.getList(); } @@ -91,6 +96,7 @@ @RequestMapping(value = "/channellist") public JSONObject channellist( String serial, + @RequestParam(required = false)String code, @RequestParam(required = false)String channel_type, @RequestParam(required = false)String dir_serial , @RequestParam(required = false)Integer start, @@ -110,12 +116,17 @@ return result; } List<DeviceChannel> deviceChannels; - List<DeviceChannel> allDeviceChannelList = storager.queryChannelsByDeviceId(serial); + List<String> channelIds = null; + if (!StringUtils.isEmpty(code)) { + String[] split = code.trim().split(","); + channelIds = Arrays.asList(split); + } + List<DeviceChannel> allDeviceChannelList = storager.queryChannelsByDeviceId(serial,online,channelIds); if (start == null || limit ==null) { deviceChannels = allDeviceChannelList; result.put("ChannelCount", deviceChannels.size()); }else { - deviceChannels = storager.queryChannelsByDeviceIdWithStartAndLimit(serial, null, null, null,start, limit); + deviceChannels = storager.queryChannelsByDeviceIdWithStartAndLimit(serial, null, null, online,start, limit,channelIds); int total = allDeviceChannelList.size(); result.put("ChannelCount", total); } @@ -127,11 +138,11 @@ deviceJOSNChannel.put("DeviceID", device.getDeviceId()); deviceJOSNChannel.put("DeviceName", device.getName()); deviceJOSNChannel.put("DeviceOnline", device.getOnline() == 1); - deviceJOSNChannel.put("Channel", 0); // TODO 鑷畾涔夊簭鍙� + deviceJOSNChannel.put("Channel", 0); // 鑷畾涔夊簭鍙� deviceJOSNChannel.put("Name", deviceChannel.getName()); deviceJOSNChannel.put("Custom", false); deviceJOSNChannel.put("CustomName", ""); - deviceJOSNChannel.put("SubCount", deviceChannel.getSubCount()); // TODO ? 瀛愯妭鐐规暟, SubCount > 0 琛ㄧず璇ラ�氶亾涓哄瓙鐩綍 + deviceJOSNChannel.put("SubCount", deviceChannel.getSubCount()); // 瀛愯妭鐐规暟, SubCount > 0 琛ㄧず璇ラ�氶亾涓哄瓙鐩綍 deviceJOSNChannel.put("SnapURL", ""); deviceJOSNChannel.put("Manufacturer ", deviceChannel.getManufacture()); deviceJOSNChannel.put("Model", deviceChannel.getModel()); @@ -145,7 +156,7 @@ // 1-IETF RFC3261, // 2-鍩轰簬鍙d护鐨勫弻鍚戣璇�, // 3-鍩轰簬鏁板瓧璇佷功鐨勫弻鍚戣璇� - deviceJOSNChannel.put("Status", deviceChannel.getStatus()); + deviceJOSNChannel.put("Status", deviceChannel.getStatus() == 1 ? "ON":"OFF"); deviceJOSNChannel.put("Longitude", deviceChannel.getLongitude()); deviceJOSNChannel.put("Latitude", deviceChannel.getLatitude()); deviceJOSNChannel.put("PTZType ", deviceChannel.getPTZType()); // 浜戝彴绫诲瀷, 0 - 鏈煡, 1 - 鐞冩満, 2 - 鍗婄悆, -- Gitblit v1.8.0