From c4fc4abf7cbaa621f7ca1946f67c786c6cd55b68 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 17 十月 2022 09:39:21 +0800 Subject: [PATCH] 优化代码空字符串判断 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 57 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 33 insertions(+), 24 deletions(-) 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 9c7d203..37fb98e 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 @@ -39,8 +39,11 @@ import javax.servlet.http.HttpServletResponse; import javax.sip.DialogState; +import javax.sip.InvalidArgumentException; +import javax.sip.SipException; import java.io.*; import java.nio.file.Files; +import java.text.ParseException; import java.util.*; @Tag(name = "鍥芥爣璁惧鏌ヨ", description = "鍥芥爣璁惧鏌ヨ") @@ -315,13 +318,18 @@ result.setResult(new ResponseEntity(String.format("璁惧%s涓嶅瓨鍦�", deviceId),HttpStatus.OK)); return result; } - cmder.deviceStatusQuery(device, event -> { - RequestMessage msg = new RequestMessage(); - msg.setId(uuid); - msg.setKey(key); - msg.setData(String.format("鑾峰彇璁惧鐘舵�佸け璐ワ紝閿欒鐮侊細 %s, %s", event.statusCode, event.msg)); - resultHolder.invokeResult(msg); - }); + try { + cmder.deviceStatusQuery(device, event -> { + RequestMessage msg = new RequestMessage(); + msg.setId(uuid); + msg.setKey(key); + msg.setData(String.format("鑾峰彇璁惧鐘舵�佸け璐ワ紝閿欒鐮侊細 %s, %s", event.statusCode, event.msg)); + resultHolder.invokeResult(msg); + }); + } catch (InvalidArgumentException | SipException | ParseException e) { + logger.error("[鍛戒护鍙戦�佸け璐 鑾峰彇璁惧鐘舵��: {}", e.getMessage()); + throw new ControllerException(ErrorCode.ERROR100.getCode(), "鍛戒护鍙戦�佸け璐�: " + e.getMessage()); + } result.onTimeout(()->{ logger.warn(String.format("鑾峰彇璁惧鐘舵�佽秴鏃�")); // 閲婃斁rtpserver @@ -368,14 +376,19 @@ Device device = storager.queryVideoDevice(deviceId); String key = DeferredResultHolder.CALLBACK_CMD_ALARM + deviceId; String uuid = UUID.randomUUID().toString(); - cmder.alarmInfoQuery(device, startPriority, endPriority, alarmMethod, alarmType, startTime, endTime, event -> { - RequestMessage msg = new RequestMessage(); - msg.setId(uuid); - msg.setKey(key); - msg.setData(String.format("璁惧鎶ヨ鏌ヨ澶辫触锛岄敊璇爜锛� %s, %s",event.statusCode, event.msg)); - resultHolder.invokeResult(msg); - }); - DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String >> (3 * 1000L); + try { + cmder.alarmInfoQuery(device, startPriority, endPriority, alarmMethod, alarmType, startTime, endTime, event -> { + RequestMessage msg = new RequestMessage(); + msg.setId(uuid); + msg.setKey(key); + msg.setData(String.format("璁惧鎶ヨ鏌ヨ澶辫触锛岄敊璇爜锛� %s, %s",event.statusCode, event.msg)); + resultHolder.invokeResult(msg); + }); + } catch (InvalidArgumentException | SipException | ParseException e) { + logger.error("[鍛戒护鍙戦�佸け璐 璁惧鎶ヨ鏌ヨ: {}", e.getMessage()); + throw new ControllerException(ErrorCode.ERROR100.getCode(), "鍛戒护鍙戦�佸け璐�: " + e.getMessage()); + } + DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String >> (3 * 1000L); result.onTimeout(()->{ logger.warn(String.format("璁惧鎶ヨ鏌ヨ瓒呮椂")); // 閲婃斁rtpserver @@ -413,24 +426,20 @@ @GetMapping("/{deviceId}/subscribe_info") @Operation(summary = "鑾峰彇璁惧鐨勮闃呯姸鎬�") @Parameter(name = "deviceId", description = "璁惧鍥芥爣缂栧彿", required = true) - public WVPResult<Map<String, String>> getSubscribeInfo(@PathVariable String deviceId) { + public WVPResult<Map<String, Integer>> getSubscribeInfo(@PathVariable String deviceId) { Set<String> allKeys = dynamicTask.getAllKeys(); - Map<String, String> dialogStateMap = new HashMap<>(); + Map<String, Integer> dialogStateMap = new HashMap<>(); for (String key : allKeys) { if (key.startsWith(deviceId)) { ISubscribeTask subscribeTask = (ISubscribeTask)dynamicTask.get(key); - DialogState dialogState = subscribeTask.getDialogState(); - if (dialogState == null) { - continue; - } if (subscribeTask instanceof CatalogSubscribeTask) { - dialogStateMap.put("catalog", dialogState.toString()); + dialogStateMap.put("catalog", 1); }else if (subscribeTask instanceof MobilePositionSubscribeTask) { - dialogStateMap.put("mobilePosition", dialogState.toString()); + dialogStateMap.put("mobilePosition", 1); } } } - WVPResult<Map<String, String>> wvpResult = new WVPResult<>(); + WVPResult<Map<String, Integer>> wvpResult = new WVPResult<>(); wvpResult.setCode(0); wvpResult.setData(dialogStateMap); return wvpResult; -- Gitblit v1.8.0