From b724a835e5f7786d3a4df9e425412db176d10c17 Mon Sep 17 00:00:00 2001 From: Andy Yang <10339434@qq.com> Date: Sat, 28 Feb 2026 16:22:51 +0800 Subject: [PATCH] bug: ticket#16, frontend send mistaken datas. extract correct ip address and now fixed. --- .../sar/controller/SarControlController.java | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java index 0812a95..ea3ece4 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java @@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; /** * 雷达控制链路 @@ -18,6 +20,8 @@ public class SarControlController { @Autowired private ISarControlService controlInfoService; + @Autowired + private ObjectMapper objectMapper; /** * 发送控制指令 * @param param @@ -37,7 +41,26 @@ public class SarControlController { */ @RequestMapping("/turnon") public Result turnOn(@RequestBody String ip) { - controlInfoService.turnOn(ip); + String ipVal = ""; + try { + // 1. 使用 ObjectMapper 将 JSON 字符串解析成一个 JsonNode 树 + JsonNode rootNode = objectMapper.readTree(ip); + + // 2. 从树中获取 "payloadId" 节点,并将其值转换为文本 + ipVal = rootNode.path("payloadId").asText(); + + // 检查是否成功获取 + if (ipVal == null || ipVal.isEmpty()) { + // 根据你的业务逻辑返回错误,例如 + return Result.error("请求体中缺少 'payloadId' 或其值为空"); + } + } catch (Exception e) { + // 处理JSON解析异常 + // 记录日志 e.g., log.error("Failed to parse turnOn payload", e); + return Result.error("请求体JSON格式错误"); + } + // 3. 调用服务层 + controlInfoService.turnOn(ipVal); return Result.successData("发送成功"); } @@ -48,7 +71,27 @@ public class SarControlController { */ @RequestMapping("/endall") public Result endAll(@RequestBody String ip) { - controlInfoService.endAll(ip); + String ipVal = ""; + try { + // 1. 使用 ObjectMapper 将 JSON 字符串解析成一个 JsonNode 树 + JsonNode rootNode = objectMapper.readTree(ip); + + // 2. 从树中获取 "payloadId" 节点,并将其值转换为文本 + ipVal = rootNode.path("payloadId").asText(); + + // 检查是否成功获取 + if (ipVal == null || ipVal.isEmpty()) { + // 根据你的业务逻辑返回错误,例如 + return Result.error("请求体中缺少 'payloadId' 或其值为空"); + } + + } catch (Exception e) { + // 处理JSON解析异常 + // 记录日志 e.g., log.error("Failed to parse turnOn payload", e); + return Result.error("请求体JSON格式错误"); + } + // 3. 调用服务层 + controlInfoService.endAll(ipVal); return Result.successData("发送成功"); } }