jiang
2022-07-13 fc89b7b517e191fb6c9b66fa86dd05ebab0f54c5
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
@@ -15,6 +15,7 @@
import com.genersoft.iot.vmp.service.IDeviceService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
@@ -479,4 +480,99 @@
         resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
      }
   }
   /**
    * 查询国标树
    * @param deviceId 设备ID
    * @param parentId 父ID
    * @param page 当前页
    * @param count 每页条数
    * @return 国标设备
    */
   @ApiOperation("查询国标树")
   @ApiImplicitParams({
         @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true, dataTypeClass = String.class),
         @ApiImplicitParam(name = "parentId", value = "父ID", required = false, dataTypeClass = String.class),
         @ApiImplicitParam(name = "onlyCatalog", value = "只获取目录", required = false, dataTypeClass = Boolean.class),
         @ApiImplicitParam(name="page", value = "当前页", required = true, dataTypeClass = Integer.class),
         @ApiImplicitParam(name="count", value = "每页条数", required = true, dataTypeClass = Integer.class),
   })
   @GetMapping("/tree/{deviceId}")
   public ResponseEntity<PageInfo> getTree(@PathVariable String deviceId, @RequestParam(required = false) String parentId, @RequestParam(required = false) Boolean onlyCatalog, int page, int count){
      if (page <= 0) {
         page = 1;
      }
      if (onlyCatalog == null) {
         onlyCatalog = false;
      }
      List<BaseTree<DeviceChannel>> treeData = deviceService.queryVideoDeviceTree(deviceId, parentId, onlyCatalog);
      if (treeData == null || (page - 1) * count > treeData.size()) {
         PageInfo<BaseTree<DeviceChannel>> pageInfo = new PageInfo<>();
         pageInfo.setPageNum(page);
         pageInfo.setTotal(treeData == null? 0 : treeData.size());
         pageInfo.setSize(0);
         pageInfo.setList(new ArrayList<>());
         return new ResponseEntity<>(pageInfo,HttpStatus.OK);
      }
      int toIndex = Math.min(page * count, treeData.size());
      // 处理分页
      List<BaseTree<DeviceChannel>> trees = treeData.subList((page - 1) * count, toIndex);
      PageInfo<BaseTree<DeviceChannel>> pageInfo = new PageInfo<>();
      pageInfo.setPageNum(page);
      pageInfo.setTotal(treeData.size());
      pageInfo.setSize(trees.size());
      pageInfo.setList(trees);
      return new ResponseEntity<>(pageInfo,HttpStatus.OK);
   }
   /**
    * 查询国标树下的通道
    * @param deviceId 设备ID
    * @param parentId 父ID
    * @param page 当前页
    * @param count 每页条数
    * @return 国标设备
    */
   @ApiOperation("查询国标树下的通道")
   @ApiImplicitParams({
         @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true, dataTypeClass = String.class),
         @ApiImplicitParam(name = "parentId", value = "父ID", required = false, dataTypeClass = String.class),
         @ApiImplicitParam(name="page", value = "当前页", required = true, dataTypeClass = Integer.class),
         @ApiImplicitParam(name="count", value = "每页条数", required = true, dataTypeClass = Integer.class),
   })
   @GetMapping("/tree/channel/{deviceId}")
   public ResponseEntity<PageInfo> getChannelInTreeNode(@PathVariable String deviceId, @RequestParam(required = false) String parentId, int page, int count){
      if (page <= 0) {
         page = 1;
      }
      List<DeviceChannel> treeData = deviceService.queryVideoDeviceInTreeNode(deviceId, parentId);
      if (treeData == null || (page - 1) * count > treeData.size()) {
         PageInfo<BaseTree<DeviceChannel>> pageInfo = new PageInfo<>();
         pageInfo.setPageNum(page);
         pageInfo.setTotal(treeData == null? 0 : treeData.size());
         pageInfo.setSize(0);
         pageInfo.setList(new ArrayList<>());
         return new ResponseEntity<>(pageInfo,HttpStatus.OK);
      }
      int toIndex = Math.min(page * count, treeData.size());
      // 处理分页
      List<DeviceChannel> trees = treeData.subList((page - 1) * count, toIndex);
      PageInfo<DeviceChannel> pageInfo = new PageInfo<>();
      pageInfo.setPageNum(page);
      pageInfo.setTotal(treeData.size());
      pageInfo.setSize(trees.size());
      pageInfo.setList(trees);
      return new ResponseEntity<>(pageInfo,HttpStatus.OK);
   }
}