| | |
| | | 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; |
| | |
| | | |
| | | 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); |
| | |
| | | |
| | | @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){ |
| | | |
| | |
| | | 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){ |
| | | |
| | |
| | | * @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, |
| | |
| | | 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){ |
| | | |
| | |
| | | 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()) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 分页查询通道数 |
| | | * 分页查询子目录通道 |
| | | * @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, |
| | |
| | | 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); |
| | |
| | | /** |
| | | * 设备状态查询请求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()) { |
| | |
| | | |
| | | /** |
| | | * 设备报警查询请求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, |