Commit 4d2c36edcd43d18e30c354bfb88ed2a9ff8e5a94

Authored by mk1990
1 parent ddfe4a7b

fix设备状态查询接口

src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java
@@ -82,7 +82,7 @@ public class DeviceStatusResponseMessageHandler extends SIPRequestProcessorParen @@ -82,7 +82,7 @@ public class DeviceStatusResponseMessageHandler extends SIPRequestProcessorParen
82 deviceService.offline(device.getDeviceId()); 82 deviceService.offline(device.getDeviceId());
83 } 83 }
84 RequestMessage msg = new RequestMessage(); 84 RequestMessage msg = new RequestMessage();
85 - msg.setKey(DeferredResultHolder.CALLBACK_CMD_DEVICESTATUS + device.getDeviceId() + channelId); 85 + msg.setKey(DeferredResultHolder.CALLBACK_CMD_DEVICESTATUS + device.getDeviceId());
86 msg.setData(json); 86 msg.setData(json);
87 deferredResultHolder.invokeAllResult(msg); 87 deferredResultHolder.invokeAllResult(msg);
88 } 88 }
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
@@ -342,6 +342,11 @@ public class DeviceQuery { @@ -342,6 +342,11 @@ public class DeviceQuery {
342 Device device = storager.queryVideoDevice(deviceId); 342 Device device = storager.queryVideoDevice(deviceId);
343 String uuid = UUID.randomUUID().toString(); 343 String uuid = UUID.randomUUID().toString();
344 String key = DeferredResultHolder.CALLBACK_CMD_DEVICESTATUS + deviceId; 344 String key = DeferredResultHolder.CALLBACK_CMD_DEVICESTATUS + deviceId;
  345 + DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(2*1000L);
  346 + if(device == null) {
  347 + result.setResult(new ResponseEntity(String.format("设备%s不存在", deviceId),HttpStatus.OK));
  348 + return result;
  349 + }
345 cmder.deviceStatusQuery(device, event -> { 350 cmder.deviceStatusQuery(device, event -> {
346 RequestMessage msg = new RequestMessage(); 351 RequestMessage msg = new RequestMessage();
347 msg.setId(uuid); 352 msg.setId(uuid);
@@ -349,7 +354,6 @@ public class DeviceQuery { @@ -349,7 +354,6 @@ public class DeviceQuery {
349 msg.setData(String.format("获取设备状态失败,错误码: %s, %s", event.statusCode, event.msg)); 354 msg.setData(String.format("获取设备状态失败,错误码: %s, %s", event.statusCode, event.msg));
350 resultHolder.invokeResult(msg); 355 resultHolder.invokeResult(msg);
351 }); 356 });
352 - DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(2*1000L);  
353 result.onTimeout(()->{ 357 result.onTimeout(()->{
354 logger.warn(String.format("获取设备状态超时")); 358 logger.warn(String.format("获取设备状态超时"));
355 // 释放rtpserver 359 // 释放rtpserver