From 4bdaca246c73fd1edca56c49843f30ede374bd8b Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Tue, 27 May 2025 14:48:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B0=83=E6=95=B4IotDataController=E4=B8=AD=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/controller/IotDataController.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/iot/controller/IotDataController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/iot/controller/IotDataController.java index b30265a..0c16935 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/iot/controller/IotDataController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/iot/controller/IotDataController.java @@ -18,7 +18,7 @@ import java.util.concurrent.ConcurrentMap; public class IotDataController { // 使用线程安全的Map临时存储最新数据 - private static final ConcurrentMap latestData = new ConcurrentHashMap<>(); + private static final ConcurrentMap LATEST_DATA = new ConcurrentHashMap<>(); // 接收MQTT数据的接口 @PostMapping("/api/mqtt/data") @@ -26,7 +26,7 @@ public class IotDataController { try { GpsData gpsData = parseMqttData(mqttData); // 存储最新数据,key可以用设备UUID - latestData.put(gpsData.getUuid(), gpsData); + LATEST_DATA.put(gpsData.getUuid(), gpsData); return "数据接收并存储成功"; } catch (Exception e) { return "数据解析失败: " + e.getMessage(); @@ -35,13 +35,15 @@ public class IotDataController { // 新增接口供HTML页面获取数据 @GetMapping("/api/mqtt/latest-data") - public AjaxResult getLatestData(@RequestParam(required = false) String uuid) { - if (uuid == null && !latestData.isEmpty()) { + public Object[] getLatestData(@RequestParam(required = false) String uuid) { + if (uuid == null && !LATEST_DATA.isEmpty()) { // 如果没有指定UUID,返回第一个设备的数据 - GpsData data = latestData.values().iterator().next(); - return AjaxResult.success(data); + //return LATEST_DATA.values().iterator().next(); + + // 如果没有指定UUID, 返回全部数据 + return LATEST_DATA.values().toArray(); } - return AjaxResult.warn("", latestData.get(uuid)); + return new GpsData[]{LATEST_DATA.get(uuid)}; } private GpsData parseMqttData(String rawData) {