Commit 37e973949fa14d01d9ad030973a4974e2f4fef2d
1 parent
276f077d
优化兼容接口
Showing
8 changed files
with
48 additions
and
30 deletions
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
| @@ -99,7 +99,7 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService { | @@ -99,7 +99,7 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService { | ||
| 99 | HashMap<String, DeviceChannel> channelsInStore = new HashMap<>(); | 99 | HashMap<String, DeviceChannel> channelsInStore = new HashMap<>(); |
| 100 | Device device = deviceMapper.getDeviceByDeviceId(deviceId); | 100 | Device device = deviceMapper.getDeviceByDeviceId(deviceId); |
| 101 | if (channels != null && channels.size() > 0) { | 101 | if (channels != null && channels.size() > 0) { |
| 102 | - List<DeviceChannel> channelList = channelMapper.queryChannels(deviceId, null, null, null, null); | 102 | + List<DeviceChannel> channelList = channelMapper.queryChannels(deviceId, null, null, null, null,null); |
| 103 | if (channelList.size() == 0) { | 103 | if (channelList.size() == 0) { |
| 104 | for (DeviceChannel channel : channels) { | 104 | for (DeviceChannel channel : channels) { |
| 105 | channel.setDeviceId(deviceId); | 105 | channel.setDeviceId(deviceId); |
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
| @@ -408,7 +408,7 @@ public class DeviceServiceImpl implements IDeviceService { | @@ -408,7 +408,7 @@ public class DeviceServiceImpl implements IDeviceService { | ||
| 408 | if (parentId.length() < 14 ) { | 408 | if (parentId.length() < 14 ) { |
| 409 | return null; | 409 | return null; |
| 410 | } | 410 | } |
| 411 | - List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, parentId, null, null, null); | 411 | + List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, parentId, null, null, null,null); |
| 412 | List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(deviceChannels, parentId); | 412 | List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(deviceChannels, parentId); |
| 413 | return trees; | 413 | return trees; |
| 414 | } | 414 | } |
| @@ -453,7 +453,7 @@ public class DeviceServiceImpl implements IDeviceService { | @@ -453,7 +453,7 @@ public class DeviceServiceImpl implements IDeviceService { | ||
| 453 | if (parentId.length() < 14 ) { | 453 | if (parentId.length() < 14 ) { |
| 454 | return null; | 454 | return null; |
| 455 | } | 455 | } |
| 456 | - List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, parentId, null, null, null); | 456 | + List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, parentId, null, null, null,null); |
| 457 | return deviceChannels; | 457 | return deviceChannels; |
| 458 | } | 458 | } |
| 459 | 459 | ||
| @@ -517,7 +517,7 @@ public class DeviceServiceImpl implements IDeviceService { | @@ -517,7 +517,7 @@ public class DeviceServiceImpl implements IDeviceService { | ||
| 517 | } | 517 | } |
| 518 | }else { | 518 | }else { |
| 519 | if (haveChannel) { | 519 | if (haveChannel) { |
| 520 | - List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, null, null, null, null); | 520 | + List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, null, null, null, null,null); |
| 521 | if (deviceChannels != null && deviceChannels.size() > 0) { | 521 | if (deviceChannels != null && deviceChannels.size() > 0) { |
| 522 | result.addAll(deviceChannels); | 522 | result.addAll(deviceChannels); |
| 523 | } | 523 | } |
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java
| @@ -59,7 +59,7 @@ public interface IVideoManagerStorage { | @@ -59,7 +59,7 @@ public interface IVideoManagerStorage { | ||
| 59 | */ | 59 | */ |
| 60 | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, Boolean catalogUnderDevice, int page, int count); | 60 | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, Boolean catalogUnderDevice, int page, int count); |
| 61 | 61 | ||
| 62 | - public List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String query, Boolean hasSubChannel, Boolean online, int start, int limit); | 62 | + public List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String query, Boolean hasSubChannel, Boolean online, int start, int limit,List<String> channelIds); |
| 63 | 63 | ||
| 64 | 64 | ||
| 65 | /** | 65 | /** |
| @@ -68,7 +68,7 @@ public interface IVideoManagerStorage { | @@ -68,7 +68,7 @@ public interface IVideoManagerStorage { | ||
| 68 | * @param deviceId 设备ID | 68 | * @param deviceId 设备ID |
| 69 | * @return | 69 | * @return |
| 70 | */ | 70 | */ |
| 71 | - public List<DeviceChannel> queryChannelsByDeviceId(String deviceId); | 71 | + public List<DeviceChannel> queryChannelsByDeviceId(String deviceId,Boolean online,List<String> channelIds); |
| 72 | public List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId); | 72 | public List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId); |
| 73 | 73 | ||
| 74 | /** | 74 | /** |
| @@ -91,14 +91,14 @@ public interface IVideoManagerStorage { | @@ -91,14 +91,14 @@ public interface IVideoManagerStorage { | ||
| 91 | * @param count 每页数量 | 91 | * @param count 每页数量 |
| 92 | * @return List<Device> 设备对象数组 | 92 | * @return List<Device> 设备对象数组 |
| 93 | */ | 93 | */ |
| 94 | - public PageInfo<Device> queryVideoDeviceList(int page, int count); | 94 | + public PageInfo<Device> queryVideoDeviceList(int page, int count,Boolean online); |
| 95 | 95 | ||
| 96 | /** | 96 | /** |
| 97 | * 获取多个设备 | 97 | * 获取多个设备 |
| 98 | * | 98 | * |
| 99 | * @return List<Device> 设备对象数组 | 99 | * @return List<Device> 设备对象数组 |
| 100 | */ | 100 | */ |
| 101 | - public List<Device> queryVideoDeviceList(); | 101 | + public List<Device> queryVideoDeviceList(Boolean online); |
| 102 | 102 | ||
| 103 | 103 | ||
| 104 | 104 |
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
| @@ -76,9 +76,12 @@ public interface DeviceChannelMapper { | @@ -76,9 +76,12 @@ public interface DeviceChannelMapper { | ||
| 76 | " <if test='online == false' > AND dc.status=0</if>" + | 76 | " <if test='online == false' > AND dc.status=0</if>" + |
| 77 | " <if test='hasSubChannel == true' > AND dc.subCount > 0 </if>" + | 77 | " <if test='hasSubChannel == true' > AND dc.subCount > 0 </if>" + |
| 78 | " <if test='hasSubChannel == false' > AND dc.subCount = 0 </if>" + | 78 | " <if test='hasSubChannel == false' > AND dc.subCount = 0 </if>" + |
| 79 | + "<if test='channelIds != null'> AND dc.channelId in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" + | ||
| 80 | + "#{item} " + | ||
| 81 | + "</foreach> </if>" + | ||
| 79 | "ORDER BY dc.channelId " + | 82 | "ORDER BY dc.channelId " + |
| 80 | " </script>"}) | 83 | " </script>"}) |
| 81 | - List<DeviceChannel> queryChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online); | 84 | + List<DeviceChannel> queryChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online,List<String> channelIds); |
| 82 | 85 | ||
| 83 | @Select("SELECT * FROM device_channel WHERE deviceId=#{deviceId} AND channelId=#{channelId}") | 86 | @Select("SELECT * FROM device_channel WHERE deviceId=#{deviceId} AND channelId=#{channelId}") |
| 84 | DeviceChannel queryChannel(String deviceId, String channelId); | 87 | DeviceChannel queryChannel(String deviceId, String channelId); |
| @@ -254,11 +257,14 @@ public interface DeviceChannelMapper { | @@ -254,11 +257,14 @@ public interface DeviceChannelMapper { | ||
| 254 | " <if test='online == false' > AND dc1.status=0</if>" + | 257 | " <if test='online == false' > AND dc1.status=0</if>" + |
| 255 | " <if test='hasSubChannel == true' > AND dc1.subCount >0</if>" + | 258 | " <if test='hasSubChannel == true' > AND dc1.subCount >0</if>" + |
| 256 | " <if test='hasSubChannel == false' > AND dc1.subCount=0</if>" + | 259 | " <if test='hasSubChannel == false' > AND dc1.subCount=0</if>" + |
| 260 | + "<if test='channelIds != null'> AND dc1.channelId in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" + | ||
| 261 | + "#{item} " + | ||
| 262 | + "</foreach> </if>" + | ||
| 257 | "ORDER BY dc1.channelId ASC " + | 263 | "ORDER BY dc1.channelId ASC " + |
| 258 | "Limit #{limit} OFFSET #{start}" + | 264 | "Limit #{limit} OFFSET #{start}" + |
| 259 | " </script>"}) | 265 | " </script>"}) |
| 260 | List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String parentChannelId, String query, | 266 | List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String parentChannelId, String query, |
| 261 | - Boolean hasSubChannel, Boolean online, int start, int limit); | 267 | + Boolean hasSubChannel, Boolean online, int start, int limit,List<String> channelIds); |
| 262 | 268 | ||
| 263 | @Select("SELECT * FROM device_channel WHERE deviceId=#{deviceId} AND status=1") | 269 | @Select("SELECT * FROM device_channel WHERE deviceId=#{deviceId} AND status=1") |
| 264 | List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId); | 270 | List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId); |
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
| @@ -122,7 +122,9 @@ public interface DeviceMapper { | @@ -122,7 +122,9 @@ public interface DeviceMapper { | ||
| 122 | " </script>"}) | 122 | " </script>"}) |
| 123 | int update(Device device); | 123 | int update(Device device); |
| 124 | 124 | ||
| 125 | - @Select("SELECT " + | 125 | + @Select( |
| 126 | + " <script>" + | ||
| 127 | + "SELECT " + | ||
| 126 | "deviceId, " + | 128 | "deviceId, " + |
| 127 | "coalesce(custom_name, name) as name, " + | 129 | "coalesce(custom_name, name) as name, " + |
| 128 | "password, " + | 130 | "password, " + |
| @@ -150,8 +152,11 @@ public interface DeviceMapper { | @@ -150,8 +152,11 @@ public interface DeviceMapper { | ||
| 150 | "geoCoordSys," + | 152 | "geoCoordSys," + |
| 151 | "treeType," + | 153 | "treeType," + |
| 152 | "online," + | 154 | "online," + |
| 153 | - "(SELECT count(0) FROM device_channel WHERE deviceId=de.deviceId) as channelCount FROM device de") | ||
| 154 | - List<Device> getDevices(); | 155 | + "(SELECT count(0) FROM device_channel WHERE deviceId=de.deviceId) as channelCount FROM device de" + |
| 156 | + "<if test=\"online != null\"> where online=${online}</if>"+ | ||
| 157 | + " </script>" | ||
| 158 | + ) | ||
| 159 | + List<Device> getDevices(Boolean online); | ||
| 155 | 160 | ||
| 156 | @Delete("DELETE FROM device WHERE deviceId=#{deviceId}") | 161 | @Delete("DELETE FROM device WHERE deviceId=#{deviceId}") |
| 157 | int del(String deviceId); | 162 | int del(String deviceId); |
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
| @@ -231,31 +231,31 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { | @@ -231,31 +231,31 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { | ||
| 231 | PageHelper.startPage(page, count); | 231 | PageHelper.startPage(page, count); |
| 232 | List<DeviceChannel> all; | 232 | List<DeviceChannel> all; |
| 233 | if (catalogUnderDevice != null && catalogUnderDevice) { | 233 | if (catalogUnderDevice != null && catalogUnderDevice) { |
| 234 | - all = deviceChannelMapper.queryChannels(deviceId, deviceId, query, hasSubChannel, online); | 234 | + all = deviceChannelMapper.queryChannels(deviceId, deviceId, query, hasSubChannel, online,null); |
| 235 | // 海康设备的parentId是SIP id | 235 | // 海康设备的parentId是SIP id |
| 236 | - List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, sipConfig.getId(), query, hasSubChannel, online); | 236 | + List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, sipConfig.getId(), query, hasSubChannel, online,null); |
| 237 | all.addAll(deviceChannels); | 237 | all.addAll(deviceChannels); |
| 238 | }else { | 238 | }else { |
| 239 | - all = deviceChannelMapper.queryChannels(deviceId, null, query, hasSubChannel, online); | 239 | + all = deviceChannelMapper.queryChannels(deviceId, null, query, hasSubChannel, online,null); |
| 240 | } | 240 | } |
| 241 | return new PageInfo<>(all); | 241 | return new PageInfo<>(all); |
| 242 | } | 242 | } |
| 243 | 243 | ||
| 244 | @Override | 244 | @Override |
| 245 | - public List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String query, Boolean hasSubChannel, Boolean online, int start, int limit) { | ||
| 246 | - return deviceChannelMapper.queryChannelsByDeviceIdWithStartAndLimit(deviceId, null, query, hasSubChannel, online, start, limit); | 245 | + public List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String query, Boolean hasSubChannel, Boolean online, int start, int limit,List<String> channelIds) { |
| 246 | + return deviceChannelMapper.queryChannelsByDeviceIdWithStartAndLimit(deviceId, null, query, hasSubChannel, online, start, limit,channelIds); | ||
| 247 | } | 247 | } |
| 248 | 248 | ||
| 249 | 249 | ||
| 250 | @Override | 250 | @Override |
| 251 | - public List<DeviceChannel> queryChannelsByDeviceId(String deviceId) { | ||
| 252 | - return deviceChannelMapper.queryChannels(deviceId, null,null, null, null); | 251 | + public List<DeviceChannel> queryChannelsByDeviceId(String deviceId,Boolean online,List<String> channelIds) { |
| 252 | + return deviceChannelMapper.queryChannels(deviceId, null,null, null, online,channelIds); | ||
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | @Override | 255 | @Override |
| 256 | public PageInfo<DeviceChannel> querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online, int page, int count) { | 256 | public PageInfo<DeviceChannel> querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online, int page, int count) { |
| 257 | PageHelper.startPage(page, count); | 257 | PageHelper.startPage(page, count); |
| 258 | - List<DeviceChannel> all = deviceChannelMapper.queryChannels(deviceId, parentChannelId, query, hasSubChannel, online); | 258 | + List<DeviceChannel> all = deviceChannelMapper.queryChannels(deviceId, parentChannelId, query, hasSubChannel, online,null); |
| 259 | return new PageInfo<>(all); | 259 | return new PageInfo<>(all); |
| 260 | } | 260 | } |
| 261 | 261 | ||
| @@ -278,9 +278,9 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { | @@ -278,9 +278,9 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { | ||
| 278 | * @return PageInfo<Device> 分页设备对象数组 | 278 | * @return PageInfo<Device> 分页设备对象数组 |
| 279 | */ | 279 | */ |
| 280 | @Override | 280 | @Override |
| 281 | - public PageInfo<Device> queryVideoDeviceList(int page, int count) { | 281 | + public PageInfo<Device> queryVideoDeviceList(int page, int count,Boolean online) { |
| 282 | PageHelper.startPage(page, count); | 282 | PageHelper.startPage(page, count); |
| 283 | - List<Device> all = deviceMapper.getDevices(); | 283 | + List<Device> all = deviceMapper.getDevices(online); |
| 284 | return new PageInfo<>(all); | 284 | return new PageInfo<>(all); |
| 285 | } | 285 | } |
| 286 | 286 | ||
| @@ -290,9 +290,9 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { | @@ -290,9 +290,9 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { | ||
| 290 | * @return List<Device> 设备对象数组 | 290 | * @return List<Device> 设备对象数组 |
| 291 | */ | 291 | */ |
| 292 | @Override | 292 | @Override |
| 293 | - public List<Device> queryVideoDeviceList() { | 293 | + public List<Device> queryVideoDeviceList(Boolean online) { |
| 294 | 294 | ||
| 295 | - List<Device> deviceList = deviceMapper.getDevices(); | 295 | + List<Device> deviceList = deviceMapper.getDevices(online); |
| 296 | return deviceList; | 296 | return deviceList; |
| 297 | } | 297 | } |
| 298 | 298 |
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
| @@ -99,7 +99,7 @@ public class DeviceQuery { | @@ -99,7 +99,7 @@ public class DeviceQuery { | ||
| 99 | @GetMapping("/devices") | 99 | @GetMapping("/devices") |
| 100 | public PageInfo<Device> devices(int page, int count){ | 100 | public PageInfo<Device> devices(int page, int count){ |
| 101 | 101 | ||
| 102 | - return storager.queryVideoDeviceList(page, count); | 102 | + return storager.queryVideoDeviceList(page, count,null); |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | /** | 105 | /** |
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java
| @@ -10,8 +10,10 @@ import com.github.pagehelper.PageInfo; | @@ -10,8 +10,10 @@ import com.github.pagehelper.PageInfo; | ||
| 10 | import org.slf4j.Logger; | 10 | import org.slf4j.Logger; |
| 11 | import org.slf4j.LoggerFactory; | 11 | import org.slf4j.LoggerFactory; |
| 12 | import org.springframework.beans.factory.annotation.Autowired; | 12 | import org.springframework.beans.factory.annotation.Autowired; |
| 13 | +import org.springframework.util.StringUtils; | ||
| 13 | import org.springframework.web.bind.annotation.*; | 14 | import org.springframework.web.bind.annotation.*; |
| 14 | 15 | ||
| 16 | +import java.util.Arrays; | ||
| 15 | import java.util.List; | 17 | import java.util.List; |
| 16 | 18 | ||
| 17 | /** | 19 | /** |
| @@ -59,10 +61,10 @@ public class ApiDeviceController { | @@ -59,10 +61,10 @@ public class ApiDeviceController { | ||
| 59 | JSONObject result = new JSONObject(); | 61 | JSONObject result = new JSONObject(); |
| 60 | List<Device> devices; | 62 | List<Device> devices; |
| 61 | if (start == null || limit ==null) { | 63 | if (start == null || limit ==null) { |
| 62 | - devices = storager.queryVideoDeviceList(); | 64 | + devices = storager.queryVideoDeviceList(online); |
| 63 | result.put("DeviceCount", devices.size()); | 65 | result.put("DeviceCount", devices.size()); |
| 64 | }else { | 66 | }else { |
| 65 | - PageInfo<Device> deviceList = storager.queryVideoDeviceList(start/limit, limit); | 67 | + PageInfo<Device> deviceList = storager.queryVideoDeviceList(start/limit, limit,online); |
| 66 | result.put("DeviceCount", deviceList.getTotal()); | 68 | result.put("DeviceCount", deviceList.getTotal()); |
| 67 | devices = deviceList.getList(); | 69 | devices = deviceList.getList(); |
| 68 | } | 70 | } |
| @@ -114,12 +116,17 @@ public class ApiDeviceController { | @@ -114,12 +116,17 @@ public class ApiDeviceController { | ||
| 114 | return result; | 116 | return result; |
| 115 | } | 117 | } |
| 116 | List<DeviceChannel> deviceChannels; | 118 | List<DeviceChannel> deviceChannels; |
| 117 | - List<DeviceChannel> allDeviceChannelList = storager.queryChannelsByDeviceId(serial); | 119 | + List<String> channelIds = null; |
| 120 | + if (!StringUtils.isEmpty(code)) { | ||
| 121 | + String[] split = code.trim().split(","); | ||
| 122 | + channelIds = Arrays.asList(split); | ||
| 123 | + } | ||
| 124 | + List<DeviceChannel> allDeviceChannelList = storager.queryChannelsByDeviceId(serial,online,channelIds); | ||
| 118 | if (start == null || limit ==null) { | 125 | if (start == null || limit ==null) { |
| 119 | deviceChannels = allDeviceChannelList; | 126 | deviceChannels = allDeviceChannelList; |
| 120 | result.put("ChannelCount", deviceChannels.size()); | 127 | result.put("ChannelCount", deviceChannels.size()); |
| 121 | }else { | 128 | }else { |
| 122 | - deviceChannels = storager.queryChannelsByDeviceIdWithStartAndLimit(serial, null, null, null,start, limit); | 129 | + deviceChannels = storager.queryChannelsByDeviceIdWithStartAndLimit(serial, null, null, online,start, limit,channelIds); |
| 123 | int total = allDeviceChannelList.size(); | 130 | int total = allDeviceChannelList.size(); |
| 124 | result.put("ChannelCount", total); | 131 | result.put("ChannelCount", total); |
| 125 | } | 132 | } |