|
|
@@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.vmanager.device;
|
|
|
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
|
|
import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
+import io.swagger.annotations.*;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -21,10 +22,11 @@ import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
|
|
|
|
|
|
import javax.sip.message.Response;
|
|
|
|
|
|
+@Api(tags = "国标设备查询1", value = "国标设备查询")
|
|
|
@SuppressWarnings("rawtypes")
|
|
|
@CrossOrigin
|
|
|
@RestController
|
|
|
-@RequestMapping("/api")
|
|
|
+@RequestMapping("/api/device/query")
|
|
|
public class DeviceQuery {
|
|
|
|
|
|
private final static Logger logger = LoggerFactory.getLogger(DeviceQuery.class);
|
|
|
@@ -40,7 +42,16 @@ public class DeviceQuery {
|
|
|
|
|
|
@Autowired
|
|
|
private DeviceOffLineDetector offLineDetector;
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 使用ID查询国标设备
|
|
|
+ * @param deviceId 国标ID
|
|
|
+ * @return 国标设备
|
|
|
+ */
|
|
|
+ @ApiOperation("使用ID查询国标设备")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true),
|
|
|
+ })
|
|
|
@GetMapping("/devices/{deviceId}")
|
|
|
public ResponseEntity<Device> devices(@PathVariable String deviceId){
|
|
|
|
|
|
@@ -51,7 +62,18 @@ public class DeviceQuery {
|
|
|
Device device = storager.queryVideoDevice(deviceId);
|
|
|
return new ResponseEntity<>(device,HttpStatus.OK);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询国标设备
|
|
|
+ * @param page 当前页
|
|
|
+ * @param count 每页查询数量
|
|
|
+ * @return 分页国标列表
|
|
|
+ */
|
|
|
+ @ApiOperation("分页查询国标设备")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "page", value = "当前页", required = true),
|
|
|
+ @ApiImplicitParam(name = "count", value = "每页查询数量", required = true),
|
|
|
+ })
|
|
|
@GetMapping("/devices")
|
|
|
public PageInfo<Device> devices(int page, int count){
|
|
|
|
|
|
@@ -73,7 +95,16 @@ public class DeviceQuery {
|
|
|
* @param channelType 设备 false/子目录 true
|
|
|
* @return 通道列表
|
|
|
*/
|
|
|
+ @ApiOperation("分页查询通道")
|
|
|
@GetMapping("/devices/{deviceId}/channels")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="deviceId", value = "设备id", required = true),
|
|
|
+ @ApiImplicitParam(name="page", value = "当前页", required = true),
|
|
|
+ @ApiImplicitParam(name="count", value = "每页查询数量", required = true),
|
|
|
+ @ApiImplicitParam(name="query", value = "查询内容"),
|
|
|
+ @ApiImplicitParam(name="online", value = "是否在线"),
|
|
|
+ @ApiImplicitParam(name="channelType", value = "设备/子目录-> false/true"),
|
|
|
+ })
|
|
|
public ResponseEntity<PageInfo> channels(@PathVariable String deviceId,
|
|
|
int page, int count,
|
|
|
@RequestParam(required = false) String query,
|
|
|
@@ -89,7 +120,16 @@ public class DeviceQuery {
|
|
|
PageInfo pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count);
|
|
|
return new ResponseEntity<>(pageResult,HttpStatus.OK);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步设备通道
|
|
|
+ * @param deviceId 设备id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @ApiOperation("同步设备通道")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="deviceId", value = "设备id", required = true),
|
|
|
+ })
|
|
|
@PostMapping("/devices/{deviceId}/sync")
|
|
|
public DeferredResult<ResponseEntity<Device>> devicesSync(@PathVariable String deviceId){
|
|
|
|
|
|
@@ -117,8 +157,17 @@ public class DeviceQuery {
|
|
|
resultHolder.put(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId, result);
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
- @PostMapping("/devices/{deviceId}/delete")
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 移除设备
|
|
|
+ * @param deviceId 设备id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @ApiOperation("移除设备")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="deviceId", value = "设备id", required = true),
|
|
|
+ })
|
|
|
+ @DeleteMapping("/devices/{deviceId}/delete")
|
|
|
public ResponseEntity<String> delete(@PathVariable String deviceId){
|
|
|
|
|
|
if (logger.isDebugEnabled()) {
|
|
|
@@ -140,13 +189,27 @@ public class DeviceQuery {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 分页查询通道数
|
|
|
+ * 分页查询子目录通道
|
|
|
+ * @param deviceId 通道id
|
|
|
* @param channelId 通道id
|
|
|
* @param page 当前页
|
|
|
* @param count 每页条数
|
|
|
+ * @param query 查询内容
|
|
|
+ * @param online 是否在线
|
|
|
+ * @param channelType 通道类型
|
|
|
* @return 子通道列表
|
|
|
*/
|
|
|
- @GetMapping("/subChannels/{deviceId}/{channelId}/channels")
|
|
|
+ @ApiOperation("分页查询子目录通道")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="deviceId", value = "设备id", required = true),
|
|
|
+ @ApiImplicitParam(name="channelId", value = "通道id", required = true),
|
|
|
+ @ApiImplicitParam(name="page", value = "当前页", required = true),
|
|
|
+ @ApiImplicitParam(name="count", value = "每页条数", required = true),
|
|
|
+ @ApiImplicitParam(name="query", value = "查询内容"),
|
|
|
+ @ApiImplicitParam(name="online", value = "是否在线"),
|
|
|
+ @ApiImplicitParam(name="channelType", value = "通道类型, 子目录"),
|
|
|
+ })
|
|
|
+ @GetMapping("/sub_channels/{deviceId}/{channelId}/channels")
|
|
|
public ResponseEntity<PageInfo> subChannels(@PathVariable String deviceId,
|
|
|
@PathVariable String channelId,
|
|
|
int page,
|
|
|
@@ -168,14 +231,36 @@ public class DeviceQuery {
|
|
|
return new ResponseEntity<>(pageResult,HttpStatus.OK);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新通道信息
|
|
|
+ * @param deviceId 设备id
|
|
|
+ * @param channel 通道
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @ApiOperation("更新通道信息")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="deviceId", value = "设备id", required = true),
|
|
|
+ @ApiImplicitParam(name="channel", value = "通道", required = true),
|
|
|
+ })
|
|
|
@PostMapping("/channel/update/{deviceId}")
|
|
|
public ResponseEntity<PageInfo> updateChannel(@PathVariable String deviceId,DeviceChannel channel){
|
|
|
storager.updateChannel(deviceId, channel);
|
|
|
return new ResponseEntity<>(null,HttpStatus.OK);
|
|
|
}
|
|
|
|
|
|
- @GetMapping("/devices/{deviceId}/transport/{streamMode}")
|
|
|
- @PostMapping("/devices/{deviceId}/transport/{streamMode}")
|
|
|
+ /**
|
|
|
+ * 修改数据流传输模式
|
|
|
+ * @param deviceId 设备id
|
|
|
+ * @param streamMode 数据流传输模式
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @ApiOperation("修改数据流传输模式")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "deviceId", value = "设备id", required = true),
|
|
|
+ @ApiImplicitParam(name = "streamMode", value = "数据流传输模式, 取值:" +
|
|
|
+ "UDP(udp传输),TCP-ACTIVE(tcp主动模式,暂不支持),TCP-PASSIVE(tcp被动模式)"),
|
|
|
+ })
|
|
|
+ @PostMapping("/transport/{deviceId}/{streamMode}")
|
|
|
public ResponseEntity<PageInfo> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){
|
|
|
Device device = storager.queryVideoDevice(deviceId);
|
|
|
device.setStreamMode(streamMode);
|
|
|
@@ -186,8 +271,12 @@ public class DeviceQuery {
|
|
|
/**
|
|
|
* 设备状态查询请求API接口
|
|
|
*
|
|
|
- * @param deviceId
|
|
|
+ * @param deviceId 设备id
|
|
|
*/
|
|
|
+ @ApiOperation("设备状态查询")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "deviceId", value = "设备id", required = true),
|
|
|
+ })
|
|
|
@GetMapping("/devices/{deviceId}/status")
|
|
|
public DeferredResult<ResponseEntity<String>> deviceStatusApi(@PathVariable String deviceId) {
|
|
|
if (logger.isDebugEnabled()) {
|
|
|
@@ -216,9 +305,25 @@ public class DeviceQuery {
|
|
|
|
|
|
/**
|
|
|
* 设备报警查询请求API接口
|
|
|
- *
|
|
|
- * @param deviceId
|
|
|
+ * @param deviceId 设备id
|
|
|
+ * @param startPriority 报警起始级别(可选)
|
|
|
+ * @param endPriority 报警终止级别(可选)
|
|
|
+ * @param alarmMethod 报警方式条件(可选)
|
|
|
+ * @param alarmType 报警类型
|
|
|
+ * @param startTime 报警发生起始时间(可选)
|
|
|
+ * @param endTime 报警发生终止时间(可选)
|
|
|
+ * @return true = 命令发送成功
|
|
|
*/
|
|
|
+ @ApiOperation("设备报警查询")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "deviceId", value = "设备id", required = true),
|
|
|
+ @ApiImplicitParam(name = "startPriority", value = "报警起始级别"),
|
|
|
+ @ApiImplicitParam(name = "endPriority", value = "报警终止级别"),
|
|
|
+ @ApiImplicitParam(name = "alarmMethod", value = "报警方式条件"),
|
|
|
+ @ApiImplicitParam(name = "alarmType", value = "报警类型"),
|
|
|
+ @ApiImplicitParam(name = "startTime", value = "报警发生起始时间"),
|
|
|
+ @ApiImplicitParam(name = "endTime", value = "报警发生终止时间"),
|
|
|
+ })
|
|
|
@GetMapping("/alarm/{deviceId}")
|
|
|
public DeferredResult<ResponseEntity<String>> alarmApi(@PathVariable String deviceId,
|
|
|
@RequestParam(required = false) String startPriority,
|