From 3d6db7478d79b824f93708f936c598cc622221f2 Mon Sep 17 00:00:00 2001
From: mk1990 <153958232@qq.com>
Date: 星期一, 20 六月 2022 15:10:31 +0800
Subject: [PATCH] fix设备状态查询接口
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 35 ++++++++++++++++++++---------------
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java | 2 +-
2 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java
index 1fed401..17738a5 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java
@@ -82,7 +82,7 @@
deviceService.offline(device.getDeviceId());
}
RequestMessage msg = new RequestMessage();
- msg.setKey(DeferredResultHolder.CALLBACK_CMD_DEVICESTATUS + device.getDeviceId() + channelId);
+ msg.setKey(DeferredResultHolder.CALLBACK_CMD_DEVICESTATUS + device.getDeviceId());
msg.setData(json);
deferredResultHolder.invokeAllResult(msg);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
index 4c89537..ccec148 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
@@ -45,18 +45,18 @@
@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 @@
})
@GetMapping("/devices/{deviceId}")
public ResponseEntity<Device> devices(@PathVariable String deviceId){
-
+
// if (logger.isDebugEnabled()) {
// logger.debug("鏌ヨ瑙嗛璁惧API璋冪敤锛宒eviceId锛�" + deviceId);
// }
-
+
Device device = storager.queryVideoDevice(deviceId);
return new ResponseEntity<>(device,HttpStatus.OK);
}
@@ -102,11 +102,11 @@
})
@GetMapping("/devices")
public PageInfo<Device> devices(int page, int count){
-
+
// if (logger.isDebugEnabled()) {
// logger.debug("鏌ヨ鎵�鏈夎棰戣澶嘇PI璋冪敤");
// }
-
+
return storager.queryVideoDeviceList(page, count);
}
@@ -160,7 +160,7 @@
})
@PostMapping("/devices/{deviceId}/sync")
public WVPResult<SyncStatus> devicesSync(@PathVariable String deviceId){
-
+
if (logger.isDebugEnabled()) {
logger.debug("璁惧閫氶亾淇℃伅鍚屾API璋冪敤锛宒eviceId锛�" + deviceId);
}
@@ -193,7 +193,7 @@
})
@DeleteMapping("/devices/{deviceId}/delete")
public ResponseEntity<String> delete(@PathVariable String deviceId){
-
+
if (logger.isDebugEnabled()) {
logger.debug("璁惧淇℃伅鍒犻櫎API璋冪敤锛宒eviceId锛�" + deviceId);
}
@@ -327,7 +327,7 @@
/**
* 璁惧鐘舵�佹煡璇㈣姹侫PI鎺ュ彛
- *
+ *
* @param deviceId 璁惧id
*/
@ApiOperation("璁惧鐘舵�佹煡璇�")
@@ -339,9 +339,14 @@
if (logger.isDebugEnabled()) {
logger.debug("璁惧鐘舵�佹煡璇PI璋冪敤");
}
- 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 @@
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 @@
})
@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,
--
Gitblit v1.8.0