From c49aebafe55bca031c0c4f5c5fd45dad9ff46f32 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Thu, 20 Nov 2025 09:59:50 +0800
Subject: [PATCH] 优化

---
 ard-sample/src/main/java/com/ard/sample/manage/service/impl/ControlServiceImpl.java |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/ControlServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/ControlServiceImpl.java
index 40093b2..adacd79 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/ControlServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/ControlServiceImpl.java
@@ -69,7 +69,14 @@
             if (Objects.isNull(param)) {
                 return ResponseResult.error(CommonErrorEnum.ILLEGAL_ARGUMENT);
             }
-            BasicDeviceProperty basicDeviceProperty = mapper.convertValue(param.getAction(), controlMethodEnum.getClazz());
+            BasicDeviceProperty basicDeviceProperty = null;
+            if(serviceIdentifier.equals("sdr_workmode_switch")){
+                basicDeviceProperty= mapper.convertValue(param.getLink_workmode(), controlMethodEnum.getClazz());
+            }
+            else
+            {
+                basicDeviceProperty = mapper.convertValue(param.getAction(), controlMethodEnum.getClazz());
+            }
             if (!basicDeviceProperty.valid()) {
                 return ResponseResult.error(CommonErrorEnum.ILLEGAL_ARGUMENT);
             }
@@ -118,14 +125,16 @@
         String deviceSn = receiver.getGateway();
         if(method.equals("cover_close")){
             _deviceService.updateWorkType(deviceSn, 2L);
+            RedisOpsUtils.setWithExpire(RedisConst.OSD_STATUS_PREFIX + deviceSn, 2, RedisConst.DEVICE_ALIVE_SECOND);
         }
         String sn = RedisOpsUtils.get(key).toString();
         receiver.setType(MessageType.PROGRESS.getType());
         EventsReceiver<EventsOutputReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
                 new TypeReference<EventsReceiver<EventsOutputReceiver>>(){});
         eventsReceiver.setBid(receiver.getBid());
-        eventsReceiver.setSn(sn);
+        eventsReceiver.setGateway(sn);
         eventsReceiver.setType(MessageType.PROGRESS.getType());
+        eventsReceiver.setMethod(receiver.getMethod());
 
         log.info("SN: {}, {} ===> Control progress: {}",
                 sn, receiver.getMethod(), eventsReceiver.getOutput().getProgress().toString());
@@ -151,6 +160,7 @@
         // 更新设备列表状态--飞行器开机中...
         if(method.equals("drone_open")){
             _deviceService.updateWorkType(device.getChildDeviceSn(), 7L);
+            RedisOpsUtils.setWithExpire(RedisConst.OSD_STATUS_PREFIX + device.getChildDeviceSn(), 7, RedisConst.DEVICE_ALIVE_SECOND);
         }
 
         String dockProgress ="";

--
Gitblit v1.9.3