From 1edc7e1a14278146ef00e4871c71cfd74998802f Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Thu, 23 Oct 2025 15:26:32 +0800
Subject: [PATCH] 将命令回复封装后发送

---
 ard-work/src/main/java/com/ard/work/component/websocket/utils/WebSocketUtil.java |   14 ++++++++++++++
 ard-work/src/main/java/com/ard/work/domain/message/BaseMessage.java              |    2 ++
 ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java              |    8 ++++++--
 ard-work/src/main/java/com/ard/work/domain/message/ServerReplyMessage.java       |   25 +++++++++++++++++++++++++
 4 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/work/component/websocket/utils/WebSocketUtil.java b/ard-work/src/main/java/com/ard/work/component/websocket/utils/WebSocketUtil.java
index 0bf9553..dbf54b1 100644
--- a/ard-work/src/main/java/com/ard/work/component/websocket/utils/WebSocketUtil.java
+++ b/ard-work/src/main/java/com/ard/work/component/websocket/utils/WebSocketUtil.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.ard.work.component.websocket.WebSocketSessionManager;
+import com.ard.work.domain.message.BaseMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.socket.TextMessage;
 import org.springframework.web.socket.WebSocketSession;
@@ -125,4 +126,17 @@
         WebSocketSessionManager.broadcast(JSON.toJSONString(message));
     }
 
+    // 发送消息到所有 WebSocket 客户端
+    public static <T> void sendToAll(BaseMessage<T> baseMessage) {
+        WebSocketUtil.sendMessageAll(baseMessage);  // 你已有的 WebSocket 发送逻辑
+    }
+
+    // 根据消息类型和内容创建消息并发送
+    public static <T> void sendMessage(String type, T payload) {
+        BaseMessage<T> baseMessage = BaseMessage.<T>builder()
+                .type(type)
+                .payload(payload)
+                .build();
+        sendToAll(baseMessage);
+    }
 }
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ard/work/domain/message/BaseMessage.java b/ard-work/src/main/java/com/ard/work/domain/message/BaseMessage.java
index 4867100..1f42176 100644
--- a/ard-work/src/main/java/com/ard/work/domain/message/BaseMessage.java
+++ b/ard-work/src/main/java/com/ard/work/domain/message/BaseMessage.java
@@ -1,6 +1,7 @@
 package com.ard.work.domain.message;
 
 import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -12,6 +13,7 @@
  * @date 2024年11月04日14:40
  **/
 @Data
+@Builder
 @AllArgsConstructor
 @NoArgsConstructor
 public class BaseMessage<T> {
diff --git a/ard-work/src/main/java/com/ard/work/domain/message/ServerReplyMessage.java b/ard-work/src/main/java/com/ard/work/domain/message/ServerReplyMessage.java
new file mode 100644
index 0000000..f8be9f6
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/work/domain/message/ServerReplyMessage.java
@@ -0,0 +1,25 @@
+package com.ard.work.domain.message;
+
+import com.ard.work.domain.dto.state.UavState;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * Description: 服务回复消息
+ * Author: liusuyi
+ * Date: 2025年03月10日11:49
+ **/
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class ServerReplyMessage {
+    /**
+     * 回复信息
+     */
+    private String message;
+
+
+}
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 74a0c0c..9dd271b 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
@@ -46,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;
@@ -903,7 +905,8 @@
     //公共日志打印
     private void logPrint(String message, Object obj) {
         String text = String.format("收到%s回复%s", message, obj);
-        WebSocketUtil.sendMessageAll(text);
+        ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build();
+        WebSocketUtil.sendMessage("reply", serverReplyMessage);
         log.info(text);
     }
 
@@ -916,7 +919,8 @@
                 errorCode,
                 ErrorCodeEnum.getDescByCode(errorCode)
         );
-        WebSocketUtil.sendMessageAll(text);
+        ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build();
+        WebSocketUtil.sendMessage("reply", serverReplyMessage);
         log.info(text);
     }
 

--
Gitblit v1.9.3