From e78c402a248ff252ee93e724396c62d806087fab Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期日, 03 七月 2022 10:32:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into commercial

---
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java |   96 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 96 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
index 5e1e40b..767e9c4 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
+++ b/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 鐖禝D
+	 * @param page 褰撳墠椤�
+	 * @param count 姣忛〉鏉℃暟
+	 * @return 鍥芥爣璁惧
+	 */
+	@ApiOperation("鏌ヨ鍥芥爣鏍�")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "deviceId", value = "璁惧ID", required = true, dataTypeClass = String.class),
+			@ApiImplicitParam(name = "parentId", value = "鐖禝D", 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 鐖禝D
+	 * @param page 褰撳墠椤�
+	 * @param count 姣忛〉鏉℃暟
+	 * @return 鍥芥爣璁惧
+	 */
+	@ApiOperation("鏌ヨ鍥芥爣鏍戜笅鐨勯�氶亾")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "deviceId", value = "璁惧ID", required = true, dataTypeClass = String.class),
+			@ApiImplicitParam(name = "parentId", value = "鐖禝D", 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);
+	}
 }

--
Gitblit v1.8.0