From 1f05f82dbbfa9189c4aff831a69c3f534964e669 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Thu, 30 Oct 2025 11:05:20 +0800
Subject: [PATCH] 1.增加查询服务器管理列表-无权限校验接口。 2.解决同步信息时获取用户信息异常bug。
---
ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java | 72 +++++++++++++++++++++++-------------
1 files changed, 46 insertions(+), 26 deletions(-)
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
index 6f849c0..ccaf7c9 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
@@ -23,6 +23,7 @@
import com.ard.work.component.netty.command.wayline.*;
import com.ard.work.component.netty.handler.ErrorCodeEnum;
import com.ard.work.component.netty.protobuf.TelemetryDataPB;
+import com.ard.work.component.websocket.utils.WebSocketUtil;
import com.ard.work.domain.cache.UavSignalInfoCache;
import com.ard.work.domain.cache.UavStateCache;
import com.ard.work.domain.cache.UavTelemetryDataCache;
@@ -45,6 +46,8 @@
import com.ard.work.domain.dto.wayline.*;
import com.ard.work.domain.entity.ArdDroneInfo;
import com.ard.work.domain.entity.ArdServerInfo;
+import com.ard.work.domain.message.BaseMessage;
+import com.ard.work.domain.message.ServerReplyMessage;
import com.ard.work.domain.message.UavControlType;
import com.ard.work.domain.receiver.*;
import com.ard.work.service.IArdDroneInfoService;
@@ -52,6 +55,7 @@
import com.ard.work.service.ITyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -74,7 +78,7 @@
private TyClient tyClient;
/**
- * 获取六合token信息
+ * 获取边缘服务器token信息
*
* @return AccessTokenReceiver
*/
@@ -90,9 +94,10 @@
*/
@Override
public List<BoxInfoReceiver> getBoxList() {
- List<ArdServerInfo> ardServerInfos = ardServerService.selectArdServerInfoList(new ArdServerInfo());
+ List<ArdServerInfo> ardServerInfos = ardServerService.getServerLsNoPermission(new ArdServerInfo());
return getBoxList(ardServerInfos);
}
+
/**
* 获取指定服务器云盒列表
*
@@ -101,8 +106,9 @@
@Override
public List<BoxInfoReceiver> getBoxList(String serverId) {
TyHttpCommonReceiver<List<BoxInfoReceiver>> boxList = tyClient.getBoxList(serverId);
- return boxList.getContent();
+ return boxList == null ? null : boxList.getContent();
}
+
/**
* 获取直播地址
*
@@ -111,8 +117,13 @@
@Override
public BoxStreamUrlReceiver getBoxLiveUrl(String boxSn) {
ArdDroneInfo ardDroneInfo = ardDroneService.selectArdDroneByboxSn(boxSn);
- TyHttpCommonReceiver<BoxStreamUrlReceiver> boxLiveUrl = tyClient.getBoxLiveUrl(ardDroneInfo.getServerId(),boxSn);
- return boxLiveUrl.getContent();
+ if (ardDroneInfo == null) {
+ log.warn("未找到对应的飞行器信息,boxSn:{}", boxSn);
+ return null;
+ }
+ TyHttpCommonReceiver<BoxStreamUrlReceiver> boxLiveUrl = tyClient.getBoxLiveUrl(ardDroneInfo.getServerId(),
+ boxSn);
+ return boxLiveUrl == null ? null : boxLiveUrl.getContent();
}
/**
@@ -125,7 +136,7 @@
ArdDroneInfo ardDroneInfo = ardDroneService.selectArdDroneByboxSn(boxHistoryDTO.getBoxSn());
TyHttpCommonReceiver<List<BoxHistoryReceiver>> boxHistory = tyClient.getBoxHistory(ardDroneInfo.getServerId(),
boxHistoryDTO);
- return boxHistory.getContent();
+ return boxHistory == null ? null : boxHistory.getContent();
}
/**
@@ -136,8 +147,9 @@
@Override
public List<BoxPhotosReceiver> getBoxPhotos(BoxPhotosDTO boxPhotosDTO) {
ArdDroneInfo ardDroneInfo = ardDroneService.selectArdDroneByboxSn(boxPhotosDTO.getBoxSn());
- TyHttpCommonReceiver<List<BoxPhotosReceiver>> boxPhotos = tyClient.getBoxPhotos(ardDroneInfo.getServerId(),boxPhotosDTO);
- return boxPhotos.getContent();
+ TyHttpCommonReceiver<List<BoxPhotosReceiver>> boxPhotos = tyClient.getBoxPhotos(ardDroneInfo.getServerId(),
+ boxPhotosDTO);
+ return boxPhotos == null ? null : boxPhotos.getContent();
}
/**
@@ -146,7 +158,7 @@
@Override
public Boolean updateBoxSettings(BoxSettingsDTO boxSettingsDTO) {
ArdDroneInfo ardDroneInfo = ardDroneService.selectArdDroneByboxSn(boxSettingsDTO.getBoxSn());
- TyHttpCommonReceiver<?> result = tyClient.updateBoxSettings(ardDroneInfo.getServerId(),boxSettingsDTO);
+ TyHttpCommonReceiver<?> result = tyClient.updateBoxSettings(ardDroneInfo.getServerId(), boxSettingsDTO);
return result.getState() == 1;
}
@@ -184,7 +196,7 @@
}
/**
- * 注册六合平台
+ * 注册边缘服务器平台
*/
@Override
public Boolean registerMessage(String serverId) {
@@ -193,7 +205,7 @@
RegisterCmd registerMessage = new RegisterCmd(tyToken.getCompanyId(), tyToken.getAccessToken().getBytes());
this.sendMessage(serverId, registerMessage);
} catch (Exception e) {
- log.error("注册六合平台失败:{}", e.getMessage());
+ log.error("注册边缘服务器平台失败:{}", e.getMessage());
}
return true;
}
@@ -472,7 +484,7 @@
*/
@Override
public UavState getUavState(String boxSn) {
- return UavStateCache.getUavState(boxSn);
+ return UavStateCache.get(boxSn);
}
/**
@@ -480,7 +492,7 @@
*/
@Override
public TelemetryData getUavTelemetryData(String boxSn) {
- return UavTelemetryDataCache.getUavTelemetryData(boxSn);
+ return UavTelemetryDataCache.get(boxSn);
}
/**
@@ -488,7 +500,7 @@
*/
@Override
public SignalInfo getSignalInfo(String boxSn) {
- return UavSignalInfoCache.getUavSignalInfo(boxSn);
+ return UavSignalInfoCache.get(boxSn);
}
/**
@@ -651,7 +663,7 @@
}
/**
- * 处理六合服务器返回的消息
+ * 处理边缘服务器返回的消息
*/
@Override
public void processReplyMessage(String key, BaseCmd tyCommand) {
@@ -669,8 +681,8 @@
break;
case 0x02:
// 处理注册消息
- HeartbeatReplyCmd heartbeatReplyCmd = (HeartbeatReplyCmd) tyCommand;
- logPrint("心跳消息", heartbeatReplyCmd.getTimestamp());
+ HeartbeatReplyCmd heartbeatReplyCmd = (HeartbeatReplyCmd) tyCommand;
+ logPrint("心跳消息", heartbeatReplyCmd.getTimestamp());
break;
case 0x03:
// 处理订阅消息
@@ -691,14 +703,14 @@
case (byte) 0xA8:
// 处理无人机状态消息
UavStateCmd uavStateCmd = (UavStateCmd) tyCommand;
- UavStateCache.putUavState(uavStateCmd.getUavState());
+ UavStateCache.put(uavStateCmd.getUavState());
//logPrint("无人机状态", uavStateCmd.getUavState().getBoxSn());
// WebSocketUtil.sendMessageAll(uavStateCmd.getUavState());
break;
case (byte) 0xA9:
// 处理无人机遥测消息
UavTelemetryDataCmd uavTelemetryDataCmd = (UavTelemetryDataCmd) tyCommand;
- UavTelemetryDataCache.putUavTelemetryData(uavTelemetryDataCmd.getTelemetryData());
+ UavTelemetryDataCache.put(uavTelemetryDataCmd.getTelemetryData());
//logPrint("无人机遥测", uavTelemetryDataCmd.getTelemetryData().getBoxSn());
//WebSocketUtil.sendMessageAll(uavTelemetryDataCmd.getTelemetryData());
break;
@@ -706,7 +718,7 @@
case (byte) 0x0C:
// 处理无人机信道质量数据
SignalInfoCmd signalInfoCmd = (SignalInfoCmd) tyCommand;
- UavSignalInfoCache.putUavSignalInfoCache(signalInfoCmd.getSignalInfo());
+ UavSignalInfoCache.put(signalInfoCmd.getSignalInfo());
//logPrint("无人机信道质量", signalInfoCmd.getSignalInfo().getBoxSn());
break;
case (byte) 0xD1:
@@ -835,7 +847,7 @@
}
/**
- * 根据[服务器id]获取六合盒子列表
+ * 根据[服务器id]获取边缘服务器盒子列表
*/
@Override
public List<BoxInfoReceiver> getBoxSnToList(String id) {
@@ -892,21 +904,29 @@
//公共日志打印
private void logPrint(String message, Object obj) {
- log.debug("收到{}回复{}", message, obj);
+ String text = String.format("收到%s回复 %s", message, obj);
+ ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build();
+ WebSocketUtil.sendMessage("reply", serverReplyMessage);
+ log.debug(text);
}
//公共日志打印
private void logPrint(String message, byte result, Integer errorCode) {
- log.info("收到{}回复:{} 错误码:{}【{}】",
+ String text = String.format(
+ "收到%s回复 状态码:%d【%s】",
message,
- ByteUtils.byteToHex(result),
+ //ByteUtils.byteToHex(result),
errorCode,
- ErrorCodeEnum.getDescByCode(errorCode));
+ ErrorCodeEnum.getDescByCode(errorCode)
+ );
+ ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build();
+ WebSocketUtil.sendMessage("reply", serverReplyMessage);
+ log.debug(text);
}
/**
- * 发送消息
+ * 发送tcp消息
*/
private void sendMessage(String key, BaseCmd msg) {
TcpClientUtil.sendMessage(key, msg);
--
Gitblit v1.9.3