Commit 7241e0d2d21e408877cf2e1c62a19f17a82a9ac9
1 parent
a4c93cf6
修复兼容接口查询通道列表查询
Showing
5 changed files
with
29 additions
and
6 deletions
pom.xml
| @@ -224,7 +224,7 @@ | @@ -224,7 +224,7 @@ | ||
| 224 | </dependencies> | 224 | </dependencies> |
| 225 | 225 | ||
| 226 | 226 | ||
| 227 | - | 227 | + |
| 228 | <build> | 228 | <build> |
| 229 | <finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName> | 229 | <finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName> |
| 230 | <plugins> | 230 | <plugins> |
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
| @@ -89,6 +89,8 @@ public interface IVideoManagerStorager { | @@ -89,6 +89,8 @@ public interface IVideoManagerStorager { | ||
| 89 | * @return | 89 | * @return |
| 90 | */ | 90 | */ |
| 91 | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count); | 91 | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count); |
| 92 | + | ||
| 93 | + public List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String query, Boolean hasSubChannel, Boolean online, int start, int limit); | ||
| 92 | 94 | ||
| 93 | /** | 95 | /** |
| 94 | * 获取某个设备的通道列表 | 96 | * 获取某个设备的通道列表 |
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
| @@ -168,4 +168,20 @@ public interface DeviceChannelMapper { | @@ -168,4 +168,20 @@ public interface DeviceChannelMapper { | ||
| 168 | "</foreach>" + | 168 | "</foreach>" + |
| 169 | "</script>"}) | 169 | "</script>"}) |
| 170 | void batchUpdate(List<DeviceChannel> updateChannels); | 170 | void batchUpdate(List<DeviceChannel> updateChannels); |
| 171 | + | ||
| 172 | + @Select(value = {" <script>" + | ||
| 173 | + "SELECT * FROM ( "+ | ||
| 174 | + " SELECT * , (SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount FROM device_channel dc " + | ||
| 175 | + " WHERE dc.deviceId=#{deviceId} " + | ||
| 176 | + " <if test='query != null'> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " + | ||
| 177 | + " <if test='parentChannelId != null'> AND dc.parentId=#{parentChannelId} </if> " + | ||
| 178 | + " <if test='online == true' > AND dc.status=1</if>" + | ||
| 179 | + " <if test='online == false' > AND dc.status=0</if>) dcr" + | ||
| 180 | + " WHERE 1=1 " + | ||
| 181 | + " <if test='hasSubChannel == true' > AND subCount >0</if>" + | ||
| 182 | + " <if test='hasSubChannel == false' > AND subCount=0</if>" + | ||
| 183 | + " ORDER BY channelId ASC" + | ||
| 184 | + " LIMIT #{limit} OFFSET #{start}" + | ||
| 185 | + " </script>"}) | ||
| 186 | + List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online, int start, int limit); | ||
| 171 | } | 187 | } |
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
| @@ -259,6 +259,11 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | @@ -259,6 +259,11 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | ||
| 259 | } | 259 | } |
| 260 | 260 | ||
| 261 | @Override | 261 | @Override |
| 262 | + public List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String query, Boolean hasSubChannel, Boolean online, int start, int limit) { | ||
| 263 | + return deviceChannelMapper.queryChannelsByDeviceIdWithStartAndLimit(deviceId, null, query, hasSubChannel, online, start, limit); | ||
| 264 | + } | ||
| 265 | + | ||
| 266 | + @Override | ||
| 262 | public List<DeviceChannel> queryChannelsByDeviceId(String deviceId) { | 267 | public List<DeviceChannel> queryChannelsByDeviceId(String deviceId) { |
| 263 | return deviceChannelMapper.queryChannels(deviceId, null,null, null, null); | 268 | return deviceChannelMapper.queryChannels(deviceId, null,null, null, null); |
| 264 | } | 269 | } |
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java
| @@ -110,14 +110,14 @@ public class ApiDeviceController { | @@ -110,14 +110,14 @@ public class ApiDeviceController { | ||
| 110 | return result; | 110 | return result; |
| 111 | } | 111 | } |
| 112 | List<DeviceChannel> deviceChannels; | 112 | List<DeviceChannel> deviceChannels; |
| 113 | + List<DeviceChannel> allDeviceChannelList = storager.queryChannelsByDeviceId(serial); | ||
| 113 | if (start == null || limit ==null) { | 114 | if (start == null || limit ==null) { |
| 114 | - deviceChannels = storager.queryChannelsByDeviceId(serial); | 115 | + deviceChannels = allDeviceChannelList; |
| 115 | result.put("ChannelCount", deviceChannels.size()); | 116 | result.put("ChannelCount", deviceChannels.size()); |
| 116 | }else { | 117 | }else { |
| 117 | - start ++; | ||
| 118 | - PageInfo pageResult = storager.queryChannelsByDeviceId(serial, null, null, null,start, limit); | ||
| 119 | - result.put("ChannelCount", pageResult.getList().size()); | ||
| 120 | - deviceChannels = pageResult.getList(); | 118 | + deviceChannels = storager.queryChannelsByDeviceIdWithStartAndLimit(serial, null, null, null,start, limit); |
| 119 | + int total = allDeviceChannelList.size(); | ||
| 120 | + result.put("ChannelCount", total); | ||
| 121 | } | 121 | } |
| 122 | 122 | ||
| 123 | JSONArray channleJSONList = new JSONArray(); | 123 | JSONArray channleJSONList = new JSONArray(); |