浏览代码

临时提交

648540858 1 年之前
父节点
当前提交
6bd0cdd37b
共有 70 个文件被更改,包括 603 次插入436 次删除
  1. 1 1
      src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java
  2. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/AlarmController.java
  3. 18 0
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/CommonChannelController.java
  4. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceConfig.java
  5. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceControl.java
  6. 3 3
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceQuery.java
  7. 3 3
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/GBRecordController.java
  8. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/MobilePositionController.java
  9. 3 3
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlatformController.java
  10. 4 4
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlayController.java
  11. 3 3
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlaybackController.java
  12. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/controller/PtzController.java
  13. 43 333
      src/main/java/com/genersoft/iot/vmp/gb28181/dao/CommonGBChannelMapper.java
  14. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/event/device/RequestTimeoutEventImpl.java
  15. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/ICloudRecordService.java
  16. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceAlarmService.java
  17. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceChannelService.java
  18. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceService.java
  19. 2 0
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IGbChannelService.java
  20. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IInviteStreamService.java
  21. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IPlatformChannelService.java
  22. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IPlatformService.java
  23. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/IPlayService.java
  24. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceAlarmServiceImpl.java
  25. 3 3
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceChannelServiceImpl.java
  26. 4 5
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java
  27. 9 0
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/GbChannelServiceImpl.java
  28. 2 5
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/InviteStreamServiceImpl.java
  29. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformChannelServiceImpl.java
  30. 4 4
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformServiceImpl.java
  31. 5 5
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlayServiceImpl.java
  32. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/RegionServiceImpl.java
  33. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
  34. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/task/SipRunner.java
  35. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java
  36. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java
  37. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
  38. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
  39. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java
  40. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
  41. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
  42. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/SubscribeRequestProcessor.java
  43. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/info/InfoRequestProcessor.java
  44. 2 2
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java
  45. 3 3
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/BroadcastNotifyMessageHandler.java
  46. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java
  47. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java
  48. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java
  49. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/BroadcastResponseMessageHandler.java
  50. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
  51. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java
  52. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java
  53. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/MobilePositionResponseMessageHandler.java
  54. 1 1
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/RegisterResponseProcessor.java
  55. 1 1
      src/main/java/com/genersoft/iot/vmp/media/event/mediaServer/MediaServerStatusEventListener.java
  56. 1 1
      src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java
  57. 1 1
      src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java
  58. 3 0
      src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
  59. 2 2
      src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
  60. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java
  61. 2 1
      src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
  62. 1 1
      src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiControlController.java
  63. 2 2
      src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java
  64. 4 4
      src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java
  65. 2 0
      web_src/index.html
  66. 0 1
      web_src/package.json
  67. 191 0
      web_src/src/components/common/RegionTree.vue
  68. 224 0
      web_src/src/components/region.vue
  69. 6 0
      web_src/src/layout/UiHeader.vue
  70. 6 0
      web_src/src/router/index.js

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java

@@ -3,7 +3,7 @@ package com.genersoft.iot.vmp.conf;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
-import com.genersoft.iot.vmp.service.IPlatformService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import lombok.extern.slf4j.Slf4j;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/gb28181/controller/AlarmController.java

@@ -7,8 +7,8 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
-import com.genersoft.iot.vmp.service.IDeviceAlarmService;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceAlarmService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;

+ 18 - 0
src/main/java/com/genersoft/iot/vmp/gb28181/controller/CommonChannelController.java

@@ -8,6 +8,7 @@ import com.genersoft.iot.vmp.gb28181.bean.NetworkIdentificationType;
 import com.genersoft.iot.vmp.gb28181.service.IGbChannelService;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
+import com.genersoft.iot.vmp.vmanager.bean.PageInfo;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -15,6 +16,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -86,4 +88,20 @@ public class CommonChannelController {
         channelService.add(channel);
         return channel;
     }
+
+    @Operation(summary = "获取通道列表", security = @SecurityRequirement(name = JwtUtils.HEADER))
+    @Parameter(name = "page", description = "当前页", required = true)
+    @Parameter(name = "count", description = "每页查询数量", required = true)
+    @Parameter(name = "query", description = "查询内容")
+    @Parameter(name = "online", description = "是否在线")
+    @ResponseBody
+    @PostMapping("/list")
+    public PageInfo<CommonGBChannel> queryList(int page, int count,
+                                               @RequestParam(required = false) String query,
+                                               @RequestParam(required = false) Boolean online){
+        if (ObjectUtils.isEmpty(query)){
+            query = null;
+        }
+        return channelService.queryList(page, count, query, online);
+    }
 }

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceConfig.java

@@ -14,7 +14,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import io.swagger.v3.oas.annotations.Operation;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceControl.java

@@ -14,7 +14,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;

+ 3 - 3
src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceQuery.java

@@ -13,9 +13,9 @@ import com.genersoft.iot.vmp.gb28181.task.impl.MobilePositionSubscribeTask;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;

+ 3 - 3
src/main/java/com/genersoft/iot/vmp/gb28181/controller/GBRecordController.java

@@ -10,9 +10,9 @@ import com.genersoft.iot.vmp.gb28181.bean.RecordInfo;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/gb28181/controller/MobilePositionController.java

@@ -7,8 +7,8 @@ import com.genersoft.iot.vmp.gb28181.bean.MobilePosition;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import com.github.pagehelper.util.StringUtil;

+ 3 - 3
src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlatformController.java

@@ -15,9 +15,9 @@ import com.genersoft.iot.vmp.gb28181.bean.SubscribeHolder;
 import com.genersoft.iot.vmp.gb28181.controller.bean.ChannelReduce;
 import com.genersoft.iot.vmp.gb28181.controller.bean.UpdateChannelParam;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IPlatformChannelService;
-import com.genersoft.iot.vmp.service.IPlatformService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;

+ 4 - 4
src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlayController.java

@@ -15,10 +15,10 @@ import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;

+ 3 - 3
src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlaybackController.java

@@ -12,9 +12,9 @@ import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/controller/PtzController.java

@@ -7,7 +7,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import io.swagger.v3.oas.annotations.Operation;

+ 43 - 333
src/main/java/com/genersoft/iot/vmp/gb28181/dao/CommonGBChannelMapper.java

@@ -1,6 +1,7 @@
 package com.genersoft.iot.vmp.gb28181.dao;
 
 import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
+import com.genersoft.iot.vmp.gb28181.dao.provider.ChannelProvider;
 import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Repository;
 
@@ -10,50 +11,8 @@ import java.util.List;
 @Repository
 public interface CommonGBChannelMapper {
 
-    @Select("select\n" +
-            "    id as gb_id,\n" +
-            "    id as gb_id,\n" +
-            "    device_db_id as gb_device_db_id,\n" +
-            "    stream_push_id,\n" +
-            "    stream_proxy_id,\n" +
-            "    create_time,\n" +
-            "    update_time,\n" +
-            "    coalesce(gb_device_id, device_id) as gb_device_id,\n" +
-            "    coalesce(gb_name, name) as gb_name,\n" +
-            "    coalesce(gb_manufacturer, manufacturer) as gb_manufacturer,\n" +
-            "    coalesce(gb_model, model) as gb_model,\n" +
-            "    coalesce(gb_owner, owner) as gb_owner,\n" +
-            "    coalesce(gb_civil_code, civil_code) as gb_civil_code,\n" +
-            "    coalesce(gb_block, block) as gb_block,\n" +
-            "    coalesce(gb_address, address) as gb_address,\n" +
-            "    coalesce(gb_parental, parental) as gb_parental,\n" +
-            "    coalesce(gb_parent_id, parent_id) as gb_parent_id,\n" +
-            "    coalesce(gb_safety_way, safety_way) as gb_safety_way,\n" +
-            "    coalesce(gb_register_way, register_way) as gb_register_way,\n" +
-            "    coalesce(gb_cert_num, cert_num) as gb_cert_num,\n" +
-            "    coalesce(gb_certifiable, certifiable) as gb_certifiable,\n" +
-            "    coalesce(gb_err_code, err_code) as gb_err_code,\n" +
-            "    coalesce(gb_end_time, end_time) as gb_end_time,\n" +
-            "    coalesce(gb_secrecy, secrecy) as gb_secrecy,\n" +
-            "    coalesce(gb_ip_address, ip_address) as gb_ip_address,\n" +
-            "    coalesce(gb_port, port) as gb_port,\n" +
-            "    coalesce(gb_password, password) as gb_password,\n" +
-            "    coalesce(gb_status, status) as gb_status,\n" +
-            "    coalesce(gb_longitude, longitude) as gb_longitude,\n" +
-            "    coalesce(gb_latitude, latitude) as gb_latitude,\n" +
-            "    coalesce(gb_ptz_type, ptz_type) as gb_ptz_type,\n" +
-            "    coalesce(gb_position_type, position_type) as gb_position_type,\n" +
-            "    coalesce(gb_room_type, room_type) as gb_room_type,\n" +
-            "    coalesce(gb_use_type, use_type) as gb_use_type,\n" +
-            "    coalesce(gb_supply_light_type, supply_light_type) as gb_supply_light_type,\n" +
-            "    coalesce(gb_direction_type, direction_type) as gb_direction_type,\n" +
-            "    coalesce(gb_resolution, resolution) as gb_resolution,\n" +
-            "    coalesce(gb_business_group_id, business_group_id) as gb_business_group_id,\n" +
-            "    coalesce(gb_download_speed, download_speed) as gb_download_speed,\n" +
-            "    coalesce(gb_svc_space_support_mod, svc_space_support_mod) as gb_svc_space_support_mod,\n" +
-            "    coalesce(gb_svc_time_support_mode,svc_time_support_mode) as gb_svc_time_support_mode\n" +
-            "from wvp_device_channel\n" +
-            "where gb_device_id = #{gbDeviceId} or device_id = #{gbDeviceId}")
+
+    @SelectProvider(type = ChannelProvider.class, method = "queryByDeviceId")
     CommonGBChannel queryByDeviceId(@Param("gbDeviceId") String gbDeviceId);
 
     @Insert(" <script>" +
@@ -140,49 +99,7 @@ public interface CommonGBChannelMapper {
     @Options(useGeneratedKeys = true, keyProperty = "gbId", keyColumn = "id")
     int insert(CommonGBChannel commonGBChannel);
 
-    @Select(" select\n" +
-            "    id as gb_id,\n" +
-            "    device_db_id as gb_device_db_id,\n" +
-            "    stream_push_id,\n" +
-            "    stream_proxy_id,\n" +
-            "    create_time,\n" +
-            "    update_time,\n" +
-            "    coalesce(gb_device_id, device_id) as gb_device_id,\n" +
-            "    coalesce(gb_name, name) as gb_name,\n" +
-            "    coalesce(gb_manufacturer, manufacturer) as gb_manufacturer,\n" +
-            "    coalesce(gb_model, model) as gb_model,\n" +
-            "    coalesce(gb_owner, owner) as gb_owner,\n" +
-            "    coalesce(gb_civil_code, civil_code) as gb_civil_code,\n" +
-            "    coalesce(gb_block, block) as gb_block,\n" +
-            "    coalesce(gb_address, address) as gb_address,\n" +
-            "    coalesce(gb_parental, parental) as gb_parental,\n" +
-            "    coalesce(gb_parent_id, parent_id) as gb_parent_id,\n" +
-            "    coalesce(gb_safety_way, safety_way) as gb_safety_way,\n" +
-            "    coalesce(gb_register_way, register_way) as gb_register_way,\n" +
-            "    coalesce(gb_cert_num, cert_num) as gb_cert_num,\n" +
-            "    coalesce(gb_certifiable, certifiable) as gb_certifiable,\n" +
-            "    coalesce(gb_err_code, err_code) as gb_err_code,\n" +
-            "    coalesce(gb_end_time, end_time) as gb_end_time,\n" +
-            "    coalesce(gb_secrecy, secrecy) as gb_secrecy,\n" +
-            "    coalesce(gb_ip_address, ip_address) as gb_ip_address,\n" +
-            "    coalesce(gb_port, port) as gb_port,\n" +
-            "    coalesce(gb_password, password) as gb_password,\n" +
-            "    coalesce(gb_status, status) as gb_status,\n" +
-            "    coalesce(gb_longitude, longitude) as gb_longitude,\n" +
-            "    coalesce(gb_latitude, latitude) as gb_latitude,\n" +
-            "    coalesce(gb_ptz_type, ptz_type) as gb_ptz_type,\n" +
-            "    coalesce(gb_position_type, position_type) as gb_position_type,\n" +
-            "    coalesce(gb_room_type, room_type) as gb_room_type,\n" +
-            "    coalesce(gb_use_type, use_type) as gb_use_type,\n" +
-            "    coalesce(gb_supply_light_type, supply_light_type) as gb_supply_light_type,\n" +
-            "    coalesce(gb_direction_type, direction_type) as gb_direction_type,\n" +
-            "    coalesce(gb_resolution, resolution) as gb_resolution,\n" +
-            "    coalesce(gb_business_group_id, business_group_id) as gb_business_group_id,\n" +
-            "    coalesce(gb_download_speed, download_speed) as gb_download_speed,\n" +
-            "    coalesce(gb_svc_space_support_mod, svc_space_support_mod) as gb_svc_space_support_mod,\n" +
-            "    coalesce(gb_svc_time_support_mode, svc_time_support_mode) as gb_svc_time_support_mode\n" +
-            " from wvp_device_channel" +
-            " where id = #{gbId}")
+    @SelectProvider(type = ChannelProvider.class, method = "queryById")
     CommonGBChannel queryById(@Param("gbId") int gbId);
 
     @Delete(value = {"delete from wvp_device_channel where id = #{gbId} "})
@@ -191,74 +108,38 @@ public interface CommonGBChannelMapper {
     @Update(value = {" <script>" +
             "UPDATE wvp_device_channel " +
             "SET update_time=#{updateTime}" +
-            "<if test='gbDeviceId != null'>, gb_device_id = #{gbDeviceId}</if>" +
-            "<if test='gbDeviceId  == null'>, gb_device_id = null</if>" +
-            "<if test='gbName != null'>,  gb_name = #{gbName}</if>" +
-            "<if test='gbName == null'>, gb_name = null</if>" +
-            "<if test='gbManufacturer != null'>,  gb_manufacturer = #{gbManufacturer}</if>" +
-            "<if test='gbManufacturer == null'>, gb_manufacturer = null</if>" +
-            "<if test='gbModel != null'>,  gb_model = #{gbModel}</if>" +
-            "<if test='gbModel  == null'>,   gb_model = null</if>" +
-            "<if test='gbOwner != null' >, gb_owner = #{gbOwner}</if>" +
-            "<if test='gbOwner  == null'>, gb_owner = null</if>" +
-            "<if test='gbCivilCode != null' >, gb_civil_code = #{gbCivilCode}</if>" +
-            "<if test='gbCivilCode == null'>, gb_civil_code = null</if>" +
-            "<if test='gbBlock != null' >, gb_block = #{gbBlock}</if>" +
-            "<if test='gbBlock  == null'>, gb_block = null</if>" +
-            "<if test='gbAddress != null' >, gb_address = #{gbAddress}</if>" +
-            "<if test='gbAddress  == null'>, gb_address = null</if>" +
-            "<if test='gbParental != null' >, gb_parental = #{gbParental}</if>" +
-            "<if test='gbParental  == null'>, gb_parental = null</if>" +
-            "<if test='gbParentId != null' >, gb_parent_id = #{gbParentId}</if>" +
-            "<if test='gbParentId  == null'>, gb_parent_id = null</if>" +
-            "<if test='gbSafetyWay != null' >, gb_safety_way = #{gbSafetyWay}</if>" +
-            "<if test='gbSafetyWay  == null'>, gb_safety_way = null</if>" +
-            "<if test='gbRegisterWay != null' >, gb_register_way = #{gbRegisterWay}</if>" +
-            "<if test='gbRegisterWay  == null'>, gb_register_way = null</if>" +
-            "<if test='gbCertNum != null' >, gb_cert_num = #{gbCertNum}</if>" +
-            "<if test='gbCertNum  == null'>, gb_cert_num = null</if>" +
-            "<if test='gbCertifiable != null' >, gb_certifiable = #{gbCertifiable}</if>" +
-            "<if test='gbCertifiable  == null'>, gb_certifiable = null</if>" +
-            "<if test='gbErrCode != null' >, gb_err_code = #{gbErrCode}</if>" +
-            "<if test='gbErrCode  == null'>, gb_err_code = null</if>" +
-            "<if test='gbEndTime != null' >, gb_end_time = #{gbEndTime}</if>" +
-            "<if test='gbEndTime  == null'>, gb_end_time = null</if>" +
-            "<if test='gbSecrecy != null' >, gb_secrecy = #{gbSecrecy}</if>" +
-            "<if test='gbSecrecy  == null'>, gb_secrecy = null</if>" +
-            "<if test='gbIpAddress != null' >, gb_ip_address = #{gbIpAddress}</if>" +
-            "<if test='gbIpAddress  == null'>, gb_ip_address = null</if>" +
-            "<if test='gbPort != null' >, gb_ip_address = #{gbPort}</if>" +
-            "<if test='gbPort  == null'>, gb_port = null</if>" +
-            "<if test='gbPassword != null' >, gb_password = #{gbPassword}</if>" +
-            "<if test='gbPassword  == null'>, gb_password = null</if>" +
-            "<if test='gbStatus != null' >, gb_status = #{gbStatus}</if>" +
-            "<if test='gbStatus  == null'>, gb_status = null</if>" +
-            "<if test='gbLongitude != null' >, gb_longitude = #{gbLongitude}</if>" +
-            "<if test='gbLongitude  == null'>, gb_longitude = null</if>" +
-            "<if test='gbLatitude != null' >, gb_latitude = #{gbLatitude}</if>" +
-            "<if test='gbLatitude  == null'>, gb_latitude = null</if>" +
-            "<if test='gbPtzType != null' >, gb_ptz_type = #{gbPtzType}</if>" +
-            "<if test='gbPtzType  == null'>, gb_ptz_type = null</if>" +
-            "<if test='gbPositionType != null' >, gb_position_type = #{gbPositionType}</if>" +
-            "<if test='gbPositionType  == null'>, gb_position_type = null</if>" +
-            "<if test='gbRoomType != null' >, gb_room_type = #{gbRoomType}</if>" +
-            "<if test='gbRoomType  == null'>, gb_room_type = null</if>" +
-            "<if test='gbUseType != null' >, gb_use_type = #{gbUseType}</if>" +
-            "<if test='gbUseType  == null'>, gb_use_type = null</if>" +
-            "<if test='gbSupplyLightType != null' >, gb_supply_light_type = #{gbSupplyLightType}</if>" +
-            "<if test='gbSupplyLightType  == null'>, gb_supply_light_type = null</if>" +
-            "<if test='gbDirectionType != null' >, gb_direction_type = #{gbDirectionType}</if>" +
-            "<if test='gbDirectionType  == null'>, gb_direction_type = null</if>" +
-            "<if test='gbResolution != null' >, gb_resolution = #{gbResolution}</if>" +
-            "<if test='gbResolution  == null'>, gb_resolution = null</if>" +
-            "<if test='gbBusinessGroupId != null' >, gb_business_group_id = #{gbBusinessGroupId}</if>" +
-            "<if test='gbBusinessGroupId  == null'>, gb_business_group_id = null</if>" +
-            "<if test='gbDownloadSpeed != null' >, gb_download_speed = #{gbDownloadSpeed}</if>" +
-            "<if test='gbDownloadSpeed  == null'>, gb_download_speed = null</if>" +
-            "<if test='gbSvcSpaceSupportMod != null' >, gb_svc_space_support_mod = #{gbSvcSpaceSupportMod}</if>" +
-            "<if test='gbSvcSpaceSupportMod  == null'>, gb_svc_space_support_mod = null</if>" +
-            "<if test='gbSvcTimeSupportMode != null' >, gb_svc_time_support_mode = #{gbSvcTimeSupportMode}</if>" +
-            "<if test='gbSvcTimeSupportMode  == null'>, gb_svc_time_support_mode = null</if>" +
+            ", gb_device_id = #{gbDeviceId}" +
+            ", gb_name = #{gbName}" +
+            ", gb_manufacturer = #{gbManufacturer}" +
+            ", gb_model = #{gbModel}" +
+            ", gb_owner = #{gbOwner}" +
+            ", gb_civil_code = #{gbCivilCode}" +
+            ", gb_block = #{gbBlock}" +
+            ", gb_address = #{gbAddress}" +
+            ", gb_parental = #{gbParental}" +
+            ", gb_safety_way = #{gbSafetyWay}" +
+            ", gb_register_way = #{gbRegisterWay}" +
+            ", gb_cert_num = #{gbCertNum}" +
+            ", gb_certifiable = #{gbCertifiable}" +
+            ", gb_err_code = #{gbErrCode}" +
+            ", gb_end_time = #{gbEndTime}" +
+            ", gb_ip_address = #{gbIpAddress}" +
+            ", gb_port = #{gbPort}" +
+            ", gb_password = #{gbPassword}" +
+            ", gb_status = #{gbStatus}" +
+            ", gb_longitude = #{gbLongitude}" +
+            ", gb_latitude = #{gbLatitude}" +
+            ", gb_ptz_type = #{gbPtzType}" +
+            ", gb_position_type = #{gbPositionType}" +
+            ", gb_room_type = #{gbRoomType}" +
+            ", gb_use_type = #{gbUseType}" +
+            ", gb_supply_light_type = #{gbSupplyLightType}" +
+            ", gb_direction_type = #{gbDirectionType}" +
+            ", gb_resolution = #{gbResolution}" +
+            ", gb_business_group_id = #{gbBusinessGroupId}" +
+            ", gb_download_speed = #{gbDownloadSpeed}" +
+            ", gb_svc_space_support_mod = #{gbSvcSpaceSupportMod}" +
+            ", gb_svc_time_support_mode = #{gbSvcTimeSupportMode}" +
             "WHERE id = #{gbId}"+
             " </script>"})
     int update(CommonGBChannel commonGBChannel);
@@ -277,52 +158,7 @@ public interface CommonGBChannelMapper {
             "</script>")
     int updateStatusForListById(List<CommonGBChannel> commonGBChannels, @Param("status") int status);
 
-    @Select(value = {" <script>" +
-            " select\n" +
-            "    id as gb_id,\n" +
-            "    device_db_id as gb_device_db_id,\n" +
-            "    stream_push_id,\n" +
-            "    stream_proxy_id,\n" +
-            "    create_time,\n" +
-            "    update_time,\n" +
-            "    coalesce(gb_device_id, device_id) as gb_device_id,\n" +
-            "    coalesce(gb_name, name) as gb_name,\n" +
-            "    coalesce(gb_manufacturer, manufacturer) as gb_manufacturer,\n" +
-            "    coalesce(gb_model, model) as gb_model,\n" +
-            "    coalesce(gb_owner, owner) as gb_owner,\n" +
-            "    coalesce(gb_civil_code, civil_code) as gb_civil_code,\n" +
-            "    coalesce(gb_block, block) as gb_block,\n" +
-            "    coalesce(gb_address, address) as gb_address,\n" +
-            "    coalesce(gb_parental, parental) as gb_parental,\n" +
-            "    coalesce(gb_parent_id, parent_id) as gb_parent_id,\n" +
-            "    coalesce(gb_safety_way, safety_way) as gb_safety_way,\n" +
-            "    coalesce(gb_register_way, register_way) as gb_register_way,\n" +
-            "    coalesce(gb_cert_num, cert_num) as gb_cert_num,\n" +
-            "    coalesce(gb_certifiable, certifiable) as gb_certifiable,\n" +
-            "    coalesce(gb_err_code, err_code) as gb_err_code,\n" +
-            "    coalesce(gb_end_time, end_time) as gb_end_time,\n" +
-            "    coalesce(gb_secrecy, secrecy) as gb_secrecy,\n" +
-            "    coalesce(gb_ip_address, ip_address) as gb_ip_address,\n" +
-            "    coalesce(gb_port, port) as gb_port,\n" +
-            "    coalesce(gb_password, password) as gb_password,\n" +
-            "    coalesce(gb_status, status) as gb_status,\n" +
-            "    coalesce(gb_longitude, longitude) as gb_longitude,\n" +
-            "    coalesce(gb_latitude, latitude) as gb_latitude,\n" +
-            "    coalesce(gb_ptz_type, ptz_type) as gb_ptz_type,\n" +
-            "    coalesce(gb_position_type, position_type) as gb_position_type,\n" +
-            "    coalesce(gb_room_type, room_type) as gb_room_type,\n" +
-            "    coalesce(gb_use_type, use_type) as gb_use_type,\n" +
-            "    coalesce(gb_supply_light_type, supply_light_type) as gb_supply_light_type,\n" +
-            "    coalesce(gb_direction_type, direction_type) as gb_direction_type,\n" +
-            "    coalesce(gb_resolution, resolution) as gb_resolution,\n" +
-            "    coalesce(gb_business_group_id, business_group_id) as gb_business_group_id,\n" +
-            "    coalesce(gb_download_speed, download_speed) as gb_download_speed,\n" +
-            "    coalesce(gb_svc_space_support_mod, svc_space_support_mod) as gb_svc_space_support_mod,\n" +
-            "    coalesce(gb_svc_time_support_mode,svc_time_support_mode) as gb_svc_time_support_mode\n" +
-            " from wvp_device_channel" +
-            " where gb_status=#{status} and id in " +
-            " <foreach collection='commonGBChannelList'  item='item'  open='(' separator=',' close=')' > #{item.gbId}</foreach>" +
-            "</script>"})
+    @SelectProvider(type = ChannelProvider.class, method = "queryInListByStatus")
     List<CommonGBChannel> queryInListByStatus(List<CommonGBChannel> commonGBChannelList, @Param("status") int status);
 
 
@@ -451,52 +287,7 @@ public interface CommonGBChannelMapper {
     void reset(@Param("id") int id, @Param("gbDeviceDbId") int gbDeviceDbId, @Param("updateTime") String updateTime);
 
 
-    @Select(value = {" <script>" +
-            " select\n" +
-            "    id as gb_id,\n" +
-            "    device_db_id as gb_device_db_id,\n" +
-            "    stream_push_id,\n" +
-            "    stream_proxy_id,\n" +
-            "    create_time,\n" +
-            "    update_time,\n" +
-            "    coalesce(gb_device_id, device_id) as gb_device_id,\n" +
-            "    coalesce(gb_name, name) as gb_name,\n" +
-            "    coalesce(gb_manufacturer, manufacturer) as gb_manufacturer,\n" +
-            "    coalesce(gb_model, model) as gb_model,\n" +
-            "    coalesce(gb_owner, owner) as gb_owner,\n" +
-            "    coalesce(gb_civil_code, civil_code) as gb_civil_code,\n" +
-            "    coalesce(gb_block, block) as gb_block,\n" +
-            "    coalesce(gb_address, address) as gb_address,\n" +
-            "    coalesce(gb_parental, parental) as gb_parental,\n" +
-            "    coalesce(gb_parent_id, parent_id) as gb_parent_id,\n" +
-            "    coalesce(gb_safety_way, safety_way) as gb_safety_way,\n" +
-            "    coalesce(gb_register_way, register_way) as gb_register_way,\n" +
-            "    coalesce(gb_cert_num, cert_num) as gb_cert_num,\n" +
-            "    coalesce(gb_certifiable, certifiable) as gb_certifiable,\n" +
-            "    coalesce(gb_err_code, err_code) as gb_err_code,\n" +
-            "    coalesce(gb_end_time, end_time) as gb_end_time,\n" +
-            "    coalesce(gb_secrecy, secrecy) as gb_secrecy,\n" +
-            "    coalesce(gb_ip_address, ip_address) as gb_ip_address,\n" +
-            "    coalesce(gb_port, port) as gb_port,\n" +
-            "    coalesce(gb_password, password) as gb_password,\n" +
-            "    coalesce(gb_status, status) as gb_status,\n" +
-            "    coalesce(gb_longitude, longitude) as gb_longitude,\n" +
-            "    coalesce(gb_latitude, latitude) as gb_latitude,\n" +
-            "    coalesce(gb_ptz_type, ptz_type) as gb_ptz_type,\n" +
-            "    coalesce(gb_position_type, position_type) as gb_position_type,\n" +
-            "    coalesce(gb_room_type, room_type) as gb_room_type,\n" +
-            "    coalesce(gb_use_type, use_type) as gb_use_type,\n" +
-            "    coalesce(gb_supply_light_type, supply_light_type) as gb_supply_light_type,\n" +
-            "    coalesce(gb_direction_type, direction_type) as gb_direction_type,\n" +
-            "    coalesce(gb_resolution, resolution) as gb_resolution,\n" +
-            "    coalesce(gb_business_group_id, business_group_id) as gb_business_group_id,\n" +
-            "    coalesce(gb_download_speed, download_speed) as gb_download_speed,\n" +
-            "    coalesce(gb_svc_space_support_mod, svc_space_support_mod) as gb_svc_space_support_mod,\n" +
-            "    coalesce(gb_svc_time_support_mode,svc_time_support_mode) as gb_svc_time_support_mode\n" +
-            " from wvp_device_channel" +
-            " where 1 = 1 and id in " +
-            " <foreach collection='commonGBChannelList'  item='item'  open='(' separator=',' close=')' > #{item.gbId}</foreach>" +
-            "</script>"})
+    @SelectProvider(type = ChannelProvider.class, method = "queryByIds")
     List<CommonGBChannel> queryByIds(List<CommonGBChannel> commonGBChannelList);
 
     @Delete(value = {" <script>" +
@@ -506,93 +297,12 @@ public interface CommonGBChannelMapper {
             "</script>"})
     void batchDelete(List<CommonGBChannel> channelListInDb);
 
-    @Select(value = {"select\n" +
-            "    id as gb_id,\n" +
-            "    device_db_id as gb_device_db_id,\n" +
-            "    stream_push_id,\n" +
-            "    stream_proxy_id,\n" +
-            "    create_time,\n" +
-            "    update_time,\n" +
-            "    coalesce(gb_device_id, device_id) as gb_device_id,\n" +
-            "    coalesce(gb_name, name) as gb_name,\n" +
-            "    coalesce(gb_manufacturer, manufacturer) as gb_manufacturer,\n" +
-            "    coalesce(gb_model, model) as gb_model,\n" +
-            "    coalesce(gb_owner, owner) as gb_owner,\n" +
-            "    coalesce(gb_civil_code, civil_code) as gb_civil_code,\n" +
-            "    coalesce(gb_block, block) as gb_block,\n" +
-            "    coalesce(gb_address, address) as gb_address,\n" +
-            "    coalesce(gb_parental, parental) as gb_parental,\n" +
-            "    coalesce(gb_parent_id, parent_id) as gb_parent_id,\n" +
-            "    coalesce(gb_safety_way, safety_way) as gb_safety_way,\n" +
-            "    coalesce(gb_register_way, register_way) as gb_register_way,\n" +
-            "    coalesce(gb_cert_num, cert_num) as gb_cert_num,\n" +
-            "    coalesce(gb_certifiable, certifiable) as gb_certifiable,\n" +
-            "    coalesce(gb_err_code, err_code) as gb_err_code,\n" +
-            "    coalesce(gb_end_time, end_time) as gb_end_time,\n" +
-            "    coalesce(gb_secrecy, secrecy) as gb_secrecy,\n" +
-            "    coalesce(gb_ip_address, ip_address) as gb_ip_address,\n" +
-            "    coalesce(gb_port, port) as gb_port,\n" +
-            "    coalesce(gb_password, password) as gb_password,\n" +
-            "    coalesce(gb_status, status) as gb_status,\n" +
-            "    coalesce(gb_longitude, longitude) as gb_longitude,\n" +
-            "    coalesce(gb_latitude, latitude) as gb_latitude,\n" +
-            "    coalesce(gb_ptz_type, ptz_type) as gb_ptz_type,\n" +
-            "    coalesce(gb_position_type, position_type) as gb_position_type,\n" +
-            "    coalesce(gb_room_type, room_type) as gb_room_type,\n" +
-            "    coalesce(gb_use_type, use_type) as gb_use_type,\n" +
-            "    coalesce(gb_supply_light_type, supply_light_type) as gb_supply_light_type,\n" +
-            "    coalesce(gb_direction_type, direction_type) as gb_direction_type,\n" +
-            "    coalesce(gb_resolution, resolution) as gb_resolution,\n" +
-            "    coalesce(gb_business_group_id, business_group_id) as gb_business_group_id,\n" +
-            "    coalesce(gb_download_speed, download_speed) as gb_download_speed,\n" +
-            "    coalesce(gb_svc_space_support_mod, svc_space_support_mod) as gb_svc_space_support_mod,\n" +
-            "    coalesce(gb_svc_time_support_mode,svc_time_support_mode) as gb_svc_time_support_mode\n" +
-            "from wvp_device_channel \n" +
-            "where stream_push_id = #{streamPushId}"})
+    @SelectProvider(type = ChannelProvider.class, method = "queryByStreamPushId")
     CommonGBChannel queryByStreamPushId(@Param("streamPushId") Integer streamPushId);
 
-    @Select(value = {"select\n" +
-            "    id as gb_id,\n" +
-            "    device_db_id as gb_device_db_id,\n" +
-            "    stream_push_id,\n" +
-            "    stream_proxy_id,\n" +
-            "    create_time,\n" +
-            "    update_time,\n" +
-            "    coalesce(gb_device_id, device_id) as gb_device_id,\n" +
-            "    coalesce(gb_name, name) as gb_name,\n" +
-            "    coalesce(gb_manufacturer, manufacturer) as gb_manufacturer,\n" +
-            "    coalesce(gb_model, model) as gb_model,\n" +
-            "    coalesce(gb_owner, owner) as gb_owner,\n" +
-            "    coalesce(gb_civil_code, civil_code) as gb_civil_code,\n" +
-            "    coalesce(gb_block, block) as gb_block,\n" +
-            "    coalesce(gb_address, address) as gb_address,\n" +
-            "    coalesce(gb_parental, parental) as gb_parental,\n" +
-            "    coalesce(gb_parent_id, parent_id) as gb_parent_id,\n" +
-            "    coalesce(gb_safety_way, safety_way) as gb_safety_way,\n" +
-            "    coalesce(gb_register_way, register_way) as gb_register_way,\n" +
-            "    coalesce(gb_cert_num, cert_num) as gb_cert_num,\n" +
-            "    coalesce(gb_certifiable, certifiable) as gb_certifiable,\n" +
-            "    coalesce(gb_err_code, err_code) as gb_err_code,\n" +
-            "    coalesce(gb_end_time, end_time) as gb_end_time,\n" +
-            "    coalesce(gb_secrecy, secrecy) as gb_secrecy,\n" +
-            "    coalesce(gb_ip_address, ip_address) as gb_ip_address,\n" +
-            "    coalesce(gb_port, port) as gb_port,\n" +
-            "    coalesce(gb_password, password) as gb_password,\n" +
-            "    coalesce(gb_status, status) as gb_status,\n" +
-            "    coalesce(gb_longitude, longitude) as gb_longitude,\n" +
-            "    coalesce(gb_latitude, latitude) as gb_latitude,\n" +
-            "    coalesce(gb_ptz_type, ptz_type) as gb_ptz_type,\n" +
-            "    coalesce(gb_position_type, position_type) as gb_position_type,\n" +
-            "    coalesce(gb_room_type, room_type) as gb_room_type,\n" +
-            "    coalesce(gb_use_type, use_type) as gb_use_type,\n" +
-            "    coalesce(gb_supply_light_type, supply_light_type) as gb_supply_light_type,\n" +
-            "    coalesce(gb_direction_type, direction_type) as gb_direction_type,\n" +
-            "    coalesce(gb_resolution, resolution) as gb_resolution,\n" +
-            "    coalesce(gb_business_group_id, business_group_id) as gb_business_group_id,\n" +
-            "    coalesce(gb_download_speed, download_speed) as gb_download_speed,\n" +
-            "    coalesce(gb_svc_space_support_mod, svc_space_support_mod) as gb_svc_space_support_mod,\n" +
-            "    coalesce(gb_svc_time_support_mode,svc_time_support_mode) as gb_svc_time_support_mode\n" +
-            "from wvp_device_channel \n" +
-            "where stream_proxy_id = #{streamProxyId}"})
+    @SelectProvider(type = ChannelProvider.class, method = "queryByStreamProxyId")
     CommonGBChannel queryByStreamProxyId(@Param("streamProxyId") Integer streamProxyId);
+
+    @SelectProvider(type = ChannelProvider.class, method = "queryList")
+    List<CommonGBChannel> queryList(String query, Boolean online);
 }

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/event/device/RequestTimeoutEventImpl.java

@@ -1,7 +1,7 @@
 package com.genersoft.iot.vmp.gb28181.event.device;
 
 import com.genersoft.iot.vmp.gb28181.bean.Device;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationListener;
 import org.springframework.stereotype.Component;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/ICloudRecordService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.alibaba.fastjson2.JSONArray;
 import com.genersoft.iot.vmp.media.bean.MediaServer;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IDeviceAlarmService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceAlarmService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
 import com.github.pagehelper.PageInfo;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceChannelService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.genersoft.iot.vmp.common.CommonCallback;
 import com.genersoft.iot.vmp.gb28181.bean.Device;

+ 2 - 0
src/main/java/com/genersoft/iot/vmp/gb28181/service/IGbChannelService.java

@@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
 import com.genersoft.iot.vmp.gb28181.bean.DeviceType;
 import com.genersoft.iot.vmp.gb28181.bean.IndustryCodeType;
 import com.genersoft.iot.vmp.gb28181.bean.NetworkIdentificationType;
+import com.genersoft.iot.vmp.vmanager.bean.PageInfo;
 
 import java.util.List;
 
@@ -43,4 +44,5 @@ public interface IGbChannelService {
 
     void reset(int id);
 
+    PageInfo<CommonGBChannel> queryList(int page, int count, String query, Boolean online);
 }

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/IInviteStreamService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.genersoft.iot.vmp.common.InviteInfo;
 import com.genersoft.iot.vmp.common.InviteSessionType;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IPlatformChannelService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/IPlatformChannelService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.genersoft.iot.vmp.gb28181.controller.bean.ChannelReduce;
 

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IPlatformService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/IPlatformService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IPlayService.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/IPlayService.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service;
+package com.genersoft.iot.vmp.gb28181.service;
 
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.conf.exception.ServiceException;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceAlarmServiceImpl.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceAlarmServiceImpl.java

@@ -1,8 +1,8 @@
-package com.genersoft.iot.vmp.service.impl;
+package com.genersoft.iot.vmp.gb28181.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
-import com.genersoft.iot.vmp.service.IDeviceAlarmService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceAlarmService;
 import com.genersoft.iot.vmp.gb28181.dao.DeviceAlarmMapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;

+ 3 - 3
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceChannelServiceImpl.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service.impl;
+package com.genersoft.iot.vmp.gb28181.service.impl;
 
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
@@ -15,8 +15,8 @@ import com.genersoft.iot.vmp.gb28181.dao.DeviceMobilePositionMapper;
 import com.genersoft.iot.vmp.gb28181.dao.PlatformChannelMapper;
 import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;

+ 4 - 5
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service.impl;
+package com.genersoft.iot.vmp.gb28181.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.genersoft.iot.vmp.common.CommonCallback;
@@ -20,9 +20,9 @@ import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.cmd.CatalogResponseMessageHandler;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
@@ -34,7 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 

+ 9 - 0
src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/GbChannelServiceImpl.java

@@ -8,6 +8,8 @@ import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
 import com.genersoft.iot.vmp.gb28181.service.IGbChannelService;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
+import com.genersoft.iot.vmp.vmanager.bean.PageInfo;
+import com.github.pagehelper.PageHelper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -315,4 +317,11 @@ public class GbChannelServiceImpl implements IGbChannelService {
         // 这个多加一个参数,为了防止将非国标的通道通过此方法清空内容,导致意外发生
         commonGBChannelMapper.reset(id, channel.getGbDeviceDbId(), DateUtil.getNow());
     }
+
+    @Override
+    public PageInfo<CommonGBChannel> queryList(int page, int count, String query, Boolean online) {
+        PageHelper.startPage(page, count);
+        List<CommonGBChannel> all = commonGBChannelMapper.queryList(query, online);
+        return new PageInfo<>(all);
+    }
 }

+ 2 - 5
src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/InviteStreamServiceImpl.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service.impl;
+package com.genersoft.iot.vmp.gb28181.service.impl;
 
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.dynamic.datasource.annotation.DS;
@@ -12,11 +12,8 @@ import com.genersoft.iot.vmp.gb28181.dao.DeviceChannelMapper;
 import com.genersoft.iot.vmp.gb28181.dao.DeviceMapper;
 import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent;
 import com.genersoft.iot.vmp.media.event.media.MediaDepartureEvent;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.service.bean.ErrorCallback;
-import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.redis.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformChannelServiceImpl.java

@@ -1,10 +1,10 @@
-package com.genersoft.iot.vmp.service.impl;
+package com.genersoft.iot.vmp.gb28181.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.genersoft.iot.vmp.gb28181.bean.*;
 import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
-import com.genersoft.iot.vmp.service.IPlatformChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformChannelService;
 import com.genersoft.iot.vmp.gb28181.dao.DeviceChannelMapper;
 import com.genersoft.iot.vmp.gb28181.dao.ParentPlatformMapper;
 import com.genersoft.iot.vmp.gb28181.dao.PlatformCatalogMapper;

+ 4 - 4
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformServiceImpl.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service.impl;
+package com.genersoft.iot.vmp.gb28181.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.genersoft.iot.vmp.common.InviteInfo;
@@ -19,9 +19,9 @@ import com.genersoft.iot.vmp.media.event.hook.HookSubscribe;
 import com.genersoft.iot.vmp.media.event.media.MediaDepartureEvent;
 import com.genersoft.iot.vmp.media.event.mediaServer.MediaSendRtpStoppedEvent;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
-import com.genersoft.iot.vmp.service.IPlatformService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.*;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.dao.GbStreamMapper;

+ 5 - 5
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java → src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlayServiceImpl.java

@@ -1,4 +1,4 @@
-package com.genersoft.iot.vmp.service.impl;
+package com.genersoft.iot.vmp.gb28181.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.genersoft.iot.vmp.common.*;
@@ -26,10 +26,10 @@ import com.genersoft.iot.vmp.media.event.media.MediaDepartureEvent;
 import com.genersoft.iot.vmp.media.event.media.MediaNotFoundEvent;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
 import com.genersoft.iot.vmp.media.zlm.SendRtpPortManager;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
 import com.genersoft.iot.vmp.service.bean.ErrorCallback;
 import com.genersoft.iot.vmp.service.bean.InviteErrorCode;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/RegionServiceImpl.java

@@ -55,7 +55,7 @@ public class RegionServiceImpl implements IRegionService {
     @Override
     public PageInfo<Region> query(String query, int page, int count) {
         PageHelper.startPage(page, count);
-        List<Region> regionList =  regionMapper.query(query);
+        List<Region> regionList =  regionMapper.query(query, null);
         return new PageInfo<>(regionList);
     }
 

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java

@@ -4,7 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.CatalogData;
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
 import com.genersoft.iot.vmp.gb28181.bean.SyncStatus;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/gb28181/task/SipRunner.java

@@ -7,8 +7,8 @@ import com.genersoft.iot.vmp.gb28181.session.SSRCFactory;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IPlatformService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java

@@ -11,8 +11,8 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.redisMsg.IRedisRpcService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java

@@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.common.InviteSessionType;
 import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
 import com.genersoft.iot.vmp.gb28181.bean.*;
+import com.genersoft.iot.vmp.gb28181.service.*;
 import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager;
 import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
@@ -15,7 +16,6 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorP
 import com.genersoft.iot.vmp.media.bean.MediaInfo;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.*;
 import com.genersoft.iot.vmp.service.redisMsg.IRedisRpcService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java

@@ -27,7 +27,7 @@ import com.genersoft.iot.vmp.media.event.hook.HookType;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
 import com.genersoft.iot.vmp.media.zlm.SendRtpPortManager;
 import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.ErrorCallback;
 import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
 import com.genersoft.iot.vmp.service.bean.MessageForPushChannel;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java

@@ -9,7 +9,7 @@ import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java

@@ -10,7 +10,7 @@ import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.service.IMobilePositionService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java

@@ -9,7 +9,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorP
 import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
 import com.genersoft.iot.vmp.gb28181.utils.XmlUtil;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import gov.nist.javax.sip.message.SIPRequest;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java

@@ -12,7 +12,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import gov.nist.javax.sip.RequestEventExt;
 import gov.nist.javax.sip.address.AddressImpl;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/SubscribeRequestProcessor.java

@@ -10,7 +10,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
 import com.genersoft.iot.vmp.gb28181.utils.XmlUtil;
-import com.genersoft.iot.vmp.service.IPlatformService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import gov.nist.javax.sip.message.SIPRequest;
 import gov.nist.javax.sip.message.SIPResponse;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/info/InfoRequestProcessor.java

@@ -10,8 +10,8 @@ import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import gov.nist.javax.sip.message.SIPRequest;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java

@@ -11,8 +11,8 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessag
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.NotifyMessageHandler;
 import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
 import com.genersoft.iot.vmp.gb28181.utils.XmlUtil;
-import com.genersoft.iot.vmp.service.IDeviceAlarmService;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceAlarmService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;

+ 3 - 3
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/BroadcastNotifyMessageHandler.java

@@ -9,9 +9,9 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessag
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.NotifyMessageHandler;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IPlatformService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import gov.nist.javax.sip.message.SIPRequest;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java

@@ -10,7 +10,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorP
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.NotifyMessageHandler;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import gov.nist.javax.sip.message.SIPRequest;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java

@@ -16,7 +16,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.
 import com.genersoft.iot.vmp.media.event.hook.Hook;
 import com.genersoft.iot.vmp.media.event.hook.HookSubscribe;
 import com.genersoft.iot.vmp.media.event.hook.HookType;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import gov.nist.javax.sip.message.SIPRequest;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java

@@ -8,7 +8,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessag
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.NotifyMessageHandler;
 import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/BroadcastResponseMessageHandler.java

@@ -9,7 +9,7 @@ import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import gov.nist.javax.sip.message.SIPRequest;
 import lombok.extern.slf4j.Slf4j;
 import org.dom4j.Element;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java

@@ -6,7 +6,7 @@ import com.genersoft.iot.vmp.gb28181.session.CatalogDataCatch;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import gov.nist.javax.sip.message.SIPRequest;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java

@@ -7,7 +7,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import gov.nist.javax.sip.message.SIPRequest;
 import lombok.extern.slf4j.Slf4j;
 import org.dom4j.DocumentException;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java

@@ -9,7 +9,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorP
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
 import com.genersoft.iot.vmp.gb28181.utils.XmlUtil;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import gov.nist.javax.sip.message.SIPRequest;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/MobilePositionResponseMessageHandler.java

@@ -11,7 +11,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessag
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
 import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import gov.nist.javax.sip.message.SIPRequest;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/RegisterResponseProcessor.java

@@ -6,7 +6,7 @@ import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
 import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract;
-import com.genersoft.iot.vmp.service.IPlatformService;
+import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo;
 import gov.nist.javax.sip.message.SIPResponse;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/media/event/mediaServer/MediaServerStatusEventListener.java

@@ -1,6 +1,6 @@
 package com.genersoft.iot.vmp.media.event.mediaServer;
 
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.event.EventListener;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java

@@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.media.service.IMediaServerService;
 import com.genersoft.iot.vmp.media.zlm.SendRtpPortManager;
 import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
 import com.genersoft.iot.vmp.media.zlm.dto.hook.OriginType;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
 import com.genersoft.iot.vmp.service.bean.SSRCInfo;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java

@@ -10,7 +10,7 @@ import com.genersoft.iot.vmp.media.event.media.MediaRecordMp4Event;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
 import com.genersoft.iot.vmp.media.zlm.AssistRESTfulUtils;
 import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
-import com.genersoft.iot.vmp.service.ICloudRecordService;
+import com.genersoft.iot.vmp.gb28181.service.ICloudRecordService;
 import com.genersoft.iot.vmp.service.bean.CloudRecordItem;
 import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;

+ 3 - 0
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java

@@ -7,6 +7,9 @@ import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
 import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
 import com.genersoft.iot.vmp.gb28181.bean.*;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
 import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java

@@ -8,8 +8,8 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java

@@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.conf.exception.ControllerException;
 import com.genersoft.iot.vmp.conf.security.JwtUtils;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.ICloudRecordService;
+import com.genersoft.iot.vmp.gb28181.service.ICloudRecordService;
 import com.genersoft.iot.vmp.service.bean.CloudRecordItem;
 import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
 import com.genersoft.iot.vmp.utils.DateUtil;

+ 2 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java

@@ -9,9 +9,10 @@ import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.conf.VersionInfo;
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
 import com.genersoft.iot.vmp.conf.security.JwtUtils;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
-import com.genersoft.iot.vmp.service.*;
 import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.streamProxy.service.IStreamProxyService;

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiControlController.java

@@ -3,7 +3,7 @@ package com.genersoft.iot.vmp.web.gb28181;
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java

@@ -8,8 +8,8 @@ import com.genersoft.iot.vmp.gb28181.bean.PresetQuerySipReq;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.DeferredResultEx;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;

+ 4 - 4
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java

@@ -10,10 +10,10 @@ import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
-import com.genersoft.iot.vmp.service.IDeviceChannelService;
-import com.genersoft.iot.vmp.service.IDeviceService;
-import com.genersoft.iot.vmp.service.IInviteStreamService;
-import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
+import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
+import com.genersoft.iot.vmp.gb28181.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import lombok.extern.slf4j.Slf4j;

+ 2 - 0
web_src/index.html

@@ -14,6 +14,8 @@
     <script type="text/javascript" src="./static/js/liveplayer-lib.min.js"></script>
     <script type="text/javascript" src="./static/js/ZLMRTCClient.js"></script>
     <script type="text/javascript" src="./static/js/config.js"></script>
+    <script type="text/javascript" src="./static/js/jquery-3.7.1.min.js"></script>
+
     <div id="app"></div>
 
   </body>

+ 0 - 1
web_src/package.json

@@ -26,7 +26,6 @@
     "vue-clipboards": "^1.3.0",
     "vue-contextmenujs": "^1.3.13",
     "vue-cookies": "^1.8.3",
-    "vue-giant-tree": "^0.1.5",
     "vue-router": "^3.1.6",
     "vue-ztree-2.0": "^1.0.4"
   },

+ 191 - 0
web_src/src/components/common/RegionTree.vue

@@ -0,0 +1,191 @@
+<template>
+  <div id="DeviceTree" style="width: 100%;height: 100%; background-color: #FFFFFF; overflow: auto">
+    <el-container>
+      <el-header>设备列表</el-header>
+      <el-main style="background-color: #ffffff;">
+        <div class="device-tree-main-box">
+          <tree :nodes="nodes" @onClick="onClick"
+                @onCheck="onCheck"
+                @onCreated="handleCreated"></tree>
+        </div>
+      </el-main>
+    </el-container>
+  </div>
+</template>
+
+<script>
+import tree from "vue-giant-tree";
+
+export default {
+    name: 'DeviceTree',
+    components: {
+      tree
+    },
+    data() {
+      return {
+        nodes: [
+          { id:1, pid:0, name:"随意勾选 1", open:true},
+          { id:11, pid:1, name:"随意勾选 1-1", open:true},
+          { id:111, pid:11, name:"随意勾选 1-1-1"},
+          { id:112, pid:11, name:"随意勾选 1-1-2"},
+          { id:12, pid:1, name:"随意勾选 1-2", open:true},
+          { id:121, pid:12, name:"随意勾选 1-2-1"},
+          { id:122, pid:12, name:"随意勾选 1-2-2"},
+          { id:2, pid:0, name:"随意勾选 2", checked:true, open:true},
+          { id:21, pid:2, name:"随意勾选 2-1"},
+          { id:22, pid:2, name:"随意勾选 2-2", open:true},
+          { id:221, pid:22, name:"随意勾选 2-2-1", checked:true},
+          { id:222, pid:22, name:"随意勾选 2-2-2"},
+          { id:23, pid:2, name:"随意勾选 2-3"}
+        ]
+      }
+    },
+    props: ['device', 'onlyCatalog', 'clickEvent', 'contextMenuEvent'],
+    methods: {
+      onClick(evt, treeId, treeNode) {
+
+      },
+      onCheck(evt, treeId, treeNode) {
+
+      },
+      handleCreated(ztreeObj) {
+
+      },
+      handleNodeClick(data,node,element) {
+        let deviceNode = this.$refs.gdTree.getNode(data.userData.deviceId)
+        if(typeof (this.clickEvent) == "function") {
+          this.clickEvent(deviceNode.data.userData, data.userData, data.type === 2)
+        }
+      },
+      handleContextMenu(event,data,node,element) {
+        console.log("右键点击事件")
+        let deviceNode = this.$refs.gdTree.getNode(data.userData.deviceId)
+        if(typeof (this.contextMenuEvent) == "function") {
+          this.contextMenuEvent(deviceNode.data.userData, event, data.userData, data.type === 2)
+        }
+      },
+      loadNode: function(node, resolve){
+        console.log(this.device)
+        if (node.level === 0) {
+          if (this.device) {
+            let node = {
+              name: this.device.name || this.device.deviceId,
+              isLeaf: false,
+              id: this.device.deviceId,
+              type: this.device.online,
+              online: this.device.online === 1,
+              userData: this.device
+            }
+            resolve([node])
+          }else {
+            this.deviceService.getAllDeviceList((data)=>{
+              console.log(data)
+              if (data.length > 0) {
+                let nodeList = []
+                for (let i = 0; i < data.length; i++) {
+                  console.log(data[i].name)
+                  let node = {
+                    name: data[i].name || data[i].deviceId,
+                    isLeaf: false,
+                    id: data[i].deviceId,
+                    type: data[i].online,
+                    online: data[i].online === 1,
+                    userData: data[i]
+                  }
+                  nodeList.push(node);
+                }
+                resolve(nodeList)
+              }else {
+                resolve([])
+              }
+            }, (list)=>{
+              console.log("设备加载完成")
+            }, (error)=>{
+
+            })
+          }
+        }else {
+          let channelArray = []
+
+          this.deviceService.getTree(node.data.userData.deviceId, node.data.id, this.onlyCatalog, catalogData =>{
+            console.log(catalogData)
+            channelArray = channelArray.concat(catalogData)
+            this.channelDataHandler(channelArray, resolve)
+          },(endCatalogData) => {
+
+          })
+        }
+
+      },
+      channelDataHandler: function (data, resolve) {
+        if (data.length > 0) {
+          let nodeList = []
+          for (let i = 0; i <data.length; i++) {
+            let item = data[i];
+            let type = 3;
+            if (item.id.length <= 10) {
+              type = 2;
+            }else {
+              if (item.id.length > 14) {
+                let channelType = item.id.substring(10, 13)
+                console.log("channelType: " + channelType)
+                if (channelType === '215' || channelType === '216') {
+                  type = 2;
+                }
+                console.log(type)
+                if (item.basicData.ptzType === 1 ) { // 1-球机;2-半球;3-固定枪机;4-遥控枪机
+                  type = 4;
+                }else if (item.basicData.ptzType === 2) {
+                  type = 5;
+                }else if (item.basicData.ptzType === 3 || item.basicData.ptzType === 4) {
+                  type = 6;
+                }
+              }else {
+                if (item.basicData.subCount > 0 || item.basicData.parental === 1) {
+                  type = 2;
+                }
+              }
+            }
+            let node = {
+              name: item.name || item.basicData.channelId,
+              isLeaf: type !== 2,
+              id: item.id,
+              deviceId: item.deviceId,
+              type: type,
+              online: item.basicData.status === 1,
+              hasGPS: item.basicData.longitude*item.basicData.latitude !== 0,
+              userData: item.basicData
+            }
+            nodeList.push(node);
+          }
+          resolve(nodeList)
+        }else {
+          resolve([])
+        }
+      },
+      reset: function (){
+        this.$forceUpdate();
+      }
+    },
+    destroyed() {
+      // if (this.jessibuca) {
+      //   this.jessibuca.destroy();
+      // }
+      // this.playing = false;
+      // this.loaded = false;
+      // this.performance = "";
+    },
+}
+</script>
+
+<style>
+.device-tree-main-box{
+  text-align: left;
+}
+.device-online{
+  color: #252525;
+}
+.device-offline{
+  color: #727272;
+}
+</style>

+ 224 - 0
web_src/src/components/region.vue

@@ -0,0 +1,224 @@
+<template>
+  <div id="region" style="width: 100%">
+    <el-container v-if="!editId" v-loading="loading" style="height: 82vh;">
+      <el-aside width="auto" style="height: 82vh; background-color: #ffffff; overflow: auto">
+        <RegionTree ref="regionTree" :edit="true" :clickEvent="treeNodeClickEvent"></RegionTree>
+      </el-aside>
+      <el-main style="padding: 5px;">
+        <el-table ref="channelListTable" :data="channelList" :height="winHeight" style="width: 100%"
+                  header-row-class-name="table-header">
+          <el-table-column prop="gbName" label="名称" min-width="180">
+          </el-table-column>
+          <el-table-column prop="gbDeviceId" label="编号" min-width="180">
+          </el-table-column>
+          <el-table-column prop="gbManufacturer" label="厂家" min-width="100">
+          </el-table-column>
+          <el-table-column label="状态" min-width="100">
+            <template slot-scope="scope">
+              <div slot="reference" class="name-wrapper">
+                <el-tag size="medium" v-if="scope.row.gbStatus === 'ON'">在线</el-tag>
+                <el-tag size="medium" type="info" v-if="scope.row.status !== 'ON'">离线</el-tag>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" min-width="340" fixed="right">
+            <template slot-scope="scope">
+              <el-button size="medium" icon="el-icon-video-play" type="text" @click="add(scope.row)">
+                添加
+              </el-button>
+              <el-divider direction="vertical"></el-divider>
+              <el-button size="medium" type="text" icon="el-icon-edit" @click="remove(scope.row)">
+                移除
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination
+          style="float: right"
+          @size-change="handleSizeChange"
+          @current-change="currentChange"
+          :current-page="currentPage"
+          :page-size="count"
+          :page-sizes="[15, 25, 35, 50]"
+          layout="total, sizes, prev, pager, next"
+          :total="total">
+        </el-pagination>
+      </el-main>
+    </el-container>
+
+  </div>
+</template>
+
+<script>
+import uiHeader from '../layout/UiHeader.vue'
+import DeviceService from "./service/DeviceService";
+import RegionTree from "./common/RegionTree.vue";
+
+export default {
+  name: 'channelList',
+  components: {
+    uiHeader,
+    RegionTree,
+  },
+  data() {
+    return {
+      channelList: [],
+      searchSrt: "",
+      channelType: "",
+      online: "",
+      winHeight: window.innerHeight - 200,
+      currentPage: 1,
+      count: 15,
+      total: 0,
+      loading: false,
+      loadSnap: {},
+    };
+  },
+
+  mounted() {
+    this.initData();
+
+  },
+  destroyed() {},
+  methods: {
+    initData: function () {
+      if (typeof (this.parentChannelId) == "undefined" || this.parentChannelId == 0) {
+        this.channelList();
+      } else {
+        this.showSubchannels();
+      }
+    },
+    initParam: function () {
+      this.deviceId = this.$route.params.deviceId;
+      this.parentChannelId = this.$route.params.parentChannelId;
+      this.currentPage = 1;
+      this.count = 15;
+      if (this.parentChannelId == "" || this.parentChannelId == 0) {
+        this.beforeUrl = "/deviceList"
+      }
+
+    },
+    currentChange: function (val) {
+      this.currentPage = val;
+      this.initData();
+    },
+    handleSizeChange: function (val) {
+      this.count = val;
+      this.channelList();
+    },
+    channelList: function () {
+      let that = this;
+      if (typeof (this.$route.params.deviceId) == "undefined") return;
+      this.$axios({
+        method: 'get',
+        url: `/api/device/query/devices/${this.$route.params.deviceId}/channels`,
+        params: {
+          page: that.currentPage,
+          count: that.count,
+          query: that.searchSrt,
+          online: that.online,
+          channelType: that.channelType
+        }
+      }).then(function (res) {
+        if (res.data.code === 0) {
+          that.total = res.data.data.total;
+          that.deviceChannelList = res.data.data.list;
+          that.deviceChannelList.forEach(e => {
+            e.ptzType = e.ptzType + "";
+            that.$set(e, "location", "");
+            if (e.longitude && e.latitude) {
+              that.$set(e, "location", e.longitude + "," + e.latitude);
+            }
+          });
+          // 防止出现表格错位
+          that.$nextTick(() => {
+            that.$refs.channelListTable.doLayout();
+          })
+        }
+
+      }).catch(function (error) {
+        console.log(error);
+      });
+    },
+    add: function (row) {
+    },
+    remove: function (row) {
+    },
+    getSnap: function (row) {
+      let baseUrl = window.baseUrl ? window.baseUrl : "";
+      return ((process.env.NODE_ENV === 'development') ? process.env.BASE_API : baseUrl) + '/api/device/query/snap/' + this.deviceId + '/' + row.deviceId;
+    },
+    search: function () {
+      this.currentPage = 1;
+      this.total = 0;
+      this.initData();
+    },
+    refresh: function () {
+      this.initData();
+    },
+    treeNodeClickEvent: function (device, data, isCatalog) {
+      console.log(device)
+      if (!!!data.channelId) {
+        this.parentChannelId = device.deviceId;
+      } else {
+        this.parentChannelId = data.channelId;
+      }
+      this.initData();
+    },
+  }
+};
+</script>
+
+<style>
+.videoList {
+  display: flex;
+  flex-wrap: wrap;
+  align-content: flex-start;
+}
+
+.video-item {
+  position: relative;
+  width: 15rem;
+  height: 10rem;
+  margin-right: 1rem;
+  background-color: #000000;
+}
+
+.video-item-img {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  margin: auto;
+  width: 100%;
+  height: 100%;
+}
+
+.video-item-img:after {
+  content: "";
+  display: inline-block;
+  position: absolute;
+  z-index: 2;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  margin: auto;
+  width: 3rem;
+  height: 3rem;
+  background-image: url("../assets/loading.png");
+  background-size: cover;
+  background-color: #000000;
+}
+
+.video-item-title {
+  position: absolute;
+  bottom: 0;
+  color: #000000;
+  background-color: #ffffff;
+  line-height: 1.5rem;
+  padding: 0.3rem;
+  width: 14.4rem;
+}
+</style>

+ 6 - 0
web_src/src/layout/UiHeader.vue

@@ -10,6 +10,12 @@
       <el-menu-item index="/map">电子地图</el-menu-item>
       <el-menu-item index="/streamPushList">推流列表</el-menu-item>
       <el-menu-item index="/streamProxyList">拉流代理</el-menu-item>
+      <el-submenu >
+        <template slot="title">通道管理</template>
+        <el-menu-item index="/region">行政区划</el-menu-item>
+        <el-menu-item index="/group">业务分组</el-menu-item>
+        <el-menu-item index="/commonChannelList">通道列表</el-menu-item>
+      </el-submenu>
       <el-menu-item index="/cloudRecord">云端录像</el-menu-item>
       <el-menu-item index="/mediaServerManger">节点管理</el-menu-item>
       <el-menu-item index="/parentPlatformList/15/1">国标级联</el-menu-item>

+ 6 - 0
web_src/src/router/index.js

@@ -23,6 +23,7 @@ import userManager from '../components/UserManager.vue'
 import userApiKeyManager from '../components/UserApiKeyManager.vue'
 import wasmPlayer from '../components/common/jessibuca.vue'
 import rtcPlayer from '../components/dialog/rtcPlayer.vue'
+import region from '../components/region.vue'
 
 const originalPush = VueRouter.prototype.push
 VueRouter.prototype.push = function push(location) {
@@ -130,6 +131,11 @@ export default new VueRouter({
           path: '/userApiKeyManager/:userId',
           name: 'userApiKeyManager',
           component: userApiKeyManager,
+        },
+        {
+          path: '/region',
+          name: 'region',
+          component: region,
         }
         ,
         ]