|  | @@ -45,18 +45,18 @@ import java.util.*;
 | 
	
		
			
				|  |  |  @RestController
 | 
	
		
			
				|  |  |  @RequestMapping("/api/device/query")
 | 
	
		
			
				|  |  |  public class DeviceQuery {
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	private final static Logger logger = LoggerFactory.getLogger(DeviceQuery.class);
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private IVideoManagerStorage storager;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private IRedisCatchStorage redisCatchStorage;
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SIPCommander cmder;
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private DeferredResultHolder resultHolder;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -80,11 +80,11 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  	@GetMapping("/devices/{deviceId}")
 | 
	
		
			
				|  |  |  	public ResponseEntity<Device> devices(@PathVariable String deviceId){
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  //		if (logger.isDebugEnabled()) {
 | 
	
		
			
				|  |  |  //			logger.debug("查询视频设备API调用,deviceId:" + deviceId);
 | 
	
		
			
				|  |  |  //		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		Device device = storager.queryVideoDevice(deviceId);
 | 
	
		
			
				|  |  |  		return new ResponseEntity<>(device,HttpStatus.OK);
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -102,11 +102,11 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  	@GetMapping("/devices")
 | 
	
		
			
				|  |  |  	public PageInfo<Device> devices(int page, int count){
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  //		if (logger.isDebugEnabled()) {
 | 
	
		
			
				|  |  |  //			logger.debug("查询所有视频设备API调用");
 | 
	
		
			
				|  |  |  //		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		return storager.queryVideoDeviceList(page, count);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -160,7 +160,7 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  	@PostMapping("/devices/{deviceId}/sync")
 | 
	
		
			
				|  |  |  	public WVPResult<SyncStatus> devicesSync(@PathVariable String deviceId){
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		if (logger.isDebugEnabled()) {
 | 
	
		
			
				|  |  |  			logger.debug("设备通道信息同步API调用,deviceId:" + deviceId);
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -193,7 +193,7 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  	@DeleteMapping("/devices/{deviceId}/delete")
 | 
	
		
			
				|  |  |  	public ResponseEntity<String> delete(@PathVariable String deviceId){
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		if (logger.isDebugEnabled()) {
 | 
	
		
			
				|  |  |  			logger.debug("设备信息删除API调用,deviceId:" + deviceId);
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -327,7 +327,7 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/**
 | 
	
		
			
				|  |  |  	 * 设备状态查询请求API接口
 | 
	
		
			
				|  |  | -	 * 
 | 
	
		
			
				|  |  | +	 *
 | 
	
		
			
				|  |  |  	 * @param deviceId 设备id
 | 
	
		
			
				|  |  |  	 */
 | 
	
		
			
				|  |  |  	@ApiOperation("设备状态查询")
 | 
	
	
		
			
				|  | @@ -339,9 +339,14 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  		if (logger.isDebugEnabled()) {
 | 
	
		
			
				|  |  |  			logger.debug("设备状态查询API调用");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		Device device = storager.queryVideoDevice(deviceId);
 | 
	
		
			
				|  |  |  		String uuid = UUID.randomUUID().toString();
 | 
	
		
			
				|  |  |  		String key = DeferredResultHolder.CALLBACK_CMD_DEVICESTATUS + deviceId;
 | 
	
		
			
				|  |  | +		Device device = storager.queryVideoDevice(deviceId);
 | 
	
		
			
				|  |  | +		DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(2*1000L);
 | 
	
		
			
				|  |  | +		if(device == null) {
 | 
	
		
			
				|  |  | +			result.setResult(new ResponseEntity(String.format("设备%s不存在", deviceId),HttpStatus.OK));
 | 
	
		
			
				|  |  | +			return result;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		cmder.deviceStatusQuery(device, event -> {
 | 
	
		
			
				|  |  |  			RequestMessage msg = new RequestMessage();
 | 
	
		
			
				|  |  |  			msg.setId(uuid);
 | 
	
	
		
			
				|  | @@ -349,7 +354,7 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  			msg.setData(String.format("获取设备状态失败,错误码: %s, %s", event.statusCode, event.msg));
 | 
	
		
			
				|  |  |  			resultHolder.invokeResult(msg);
 | 
	
		
			
				|  |  |  		});
 | 
	
		
			
				|  |  | -        DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(2*1000L);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		result.onTimeout(()->{
 | 
	
		
			
				|  |  |  			logger.warn(String.format("获取设备状态超时"));
 | 
	
		
			
				|  |  |  			// 释放rtpserver
 | 
	
	
		
			
				|  | @@ -386,8 +391,8 @@ public class DeviceQuery {
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  	@GetMapping("/alarm/{deviceId}")
 | 
	
		
			
				|  |  |  	public DeferredResult<ResponseEntity<String>> alarmApi(@PathVariable String deviceId,
 | 
	
		
			
				|  |  | -														@RequestParam(required = false) String startPriority, 
 | 
	
		
			
				|  |  | -														@RequestParam(required = false) String endPriority, 
 | 
	
		
			
				|  |  | +														@RequestParam(required = false) String startPriority,
 | 
	
		
			
				|  |  | +														@RequestParam(required = false) String endPriority,
 | 
	
		
			
				|  |  |  														@RequestParam(required = false) String alarmMethod,
 | 
	
		
			
				|  |  |  														@RequestParam(required = false) String alarmType,
 | 
	
		
			
				|  |  |  														@RequestParam(required = false) String startTime,
 |