|
|
@ -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, |
|
|
|