From 1609b77ba4715a7f17030d61d20c8e526861ca1a Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Fri, 23 Jan 2026 14:16:04 +0800
Subject: [PATCH] 1. 修改任务航线业务逻辑,优化写法。
---
ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java | 45 +++++++++++++++++++++++----------------------
1 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java b/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java
index 2227171..7bc77ef 100644
--- a/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java
+++ b/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java
@@ -1,5 +1,7 @@
package com.ard.sample.component.mqtt.handler;
+import com.ard.common.core.redis.RedisConst;
+import com.ard.common.core.redis.RedisOpsUtils;
import com.ard.sample.component.mqtt.model.CommonTopicReceiver;
import com.ard.sample.component.mqtt.model.StateDataEnum;
import com.ard.sample.component.websocket.enums.MessageType;
@@ -24,8 +26,6 @@
public class StateLiveStatusHandler extends AbstractStateTopicHandler{
@Autowired
- private DockWebSocketHandler _dockWebSocketHandler;
- @Autowired
private IDeviceService _deviceService;
protected StateLiveStatusHandler(@Autowired @Qualifier("stateFirmwareVersionHandler")AbstractStateTopicHandler handler) {
@@ -36,28 +36,29 @@
public CommonTopicReceiver handleState(Map<String, Object> dataNode, CommonTopicReceiver stateReceiver, String sn) throws JsonProcessingException {
if (dataNode.containsKey(StateDataEnum.LIVESTATUS.getDesc())) {
stateReceiver.setType(MessageType.LIVESTATUS.getType());
- String deviceSn= stateReceiver.getGateway();
- DeviceQueryParam param = DeviceQueryParam.builder().deviceSn(deviceSn).build();
- List<DeviceDTO> deviceDTOS = _deviceService.getDevicesByParams(param);
- // List<DeviceDTO> gatewaysList = _deviceService.getDevicesByParams(DeviceQueryParam.builder().childSn(deviceSn).build());
- String childSn = deviceDTOS.get(0).getChildDeviceSn();
- List<LiveStatusTwoReceiver> list = mapper.convertValue(dataNode.get(StateDataEnum.LIVESTATUS.getDesc()), new TypeReference<List<LiveStatusTwoReceiver>>() {});
- for (LiveStatusTwoReceiver receiver : list) {
- if(receiver.getVideoId().contains(childSn)){
- stateReceiver.setData(receiver);
- continue;
+ DeviceDTO device = (DeviceDTO) RedisOpsUtils.get(RedisConst.DEVICE_ONLINE_PREFIX + sn);
+ if(device != null)
+ {
+ String childSn = device.getChildDeviceSn();
+ List<LiveStatusTwoReceiver> list = mapper.convertValue(dataNode.get(StateDataEnum.LIVESTATUS.getDesc()),
+ new TypeReference<List<LiveStatusTwoReceiver>>() {});
+ for (LiveStatusTwoReceiver receiver : list) {
+ if(receiver.getVideoId()!=null && receiver.getVideoId().contains(childSn)){
+ stateReceiver.setData(receiver);
+ continue;
+ }
}
+ stateReceiver.setGateway(childSn);
+ String liveStatus = "";
+ try{
+ liveStatus=mapper.writeValueAsString(stateReceiver);
+ }
+ catch (Exception e){
+ log.error("接收state直播设备状态反馈转换异常:{}",e);
+ }
+ _deviceService.setChildRedisCamera(childSn, liveStatus);
}
- stateReceiver.setGateway(childSn);
- String liveStatus = "";
- try{
- liveStatus=mapper.writeValueAsString(stateReceiver);
- }
- catch (Exception e){
- log.error("接收state直播设备状态反馈转换异常:{}",e);
- }
- _deviceService.setChildRedisCamera(childSn, liveStatus);
- log.info("接收state直播设备状态反馈:{}",liveStatus);
+
return stateReceiver;
}
return handler.handleState(dataNode, stateReceiver, sn);
--
Gitblit v1.9.3