From ba8b1496ba9881719e522d0a60a8c86baa7be08b Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Sat, 20 Dec 2025 10:34:23 +0800
Subject: [PATCH] 优化飞行状态
---
ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
index 78e3352..053cfa6 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
@@ -320,11 +320,12 @@
String redisKey = CacheConstants.UAV_ONLINE_KEY + boxSn;
boolean currentOnline = remote.getOnLine() == 1;
- // 获取上次状态
- boolean lastOnline = redisCache.getCacheObject(redisKey) != null;
+ ArdDroneInfo local = localMap.get(boxSn);
+ boolean dbOnline = local != null && local.getOnLine() == 1;
+ boolean needUpdate = (dbOnline != currentOnline);
// 如果状态变化才更新
- if (lastOnline != currentOnline) {
+ if (needUpdate){
// 更新 Redis
if (currentOnline) {
redisCache.setCacheObject(redisKey, remote);
@@ -334,7 +335,6 @@
// 发布事件
eventPublisher.publishEvent(new DeviceStatusEvent(boxSn, currentOnline));
// 更新数据库
- ArdDroneInfo local = localMap.get(boxSn);
if (local != null) {
local.setOnLine(currentOnline ? 1 : 0);
updateArdDrone(local);
--
Gitblit v1.9.3