From f47cf01cb048502e97987ca1e0b0966674e338f3 Mon Sep 17 00:00:00 2001 From: lld <15027638633@163.com> Date: Wed, 28 Jan 2026 00:38:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=A6=E6=88=AA=E9=9D=9Ejson=20mqtt=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=85=A5=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=A5=E5=BF=97=20=E8=AE=A2=E9=98=85=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/agri/web/controller/mqtt/MqttController.java | 1 - .../agri/framework/interceptor/DeviceStatusHandler.java | 3 +++ .../agri/framework/manager/MqttSubscriptionManager.java | 8 +++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/agri-admin/src/main/java/com/agri/web/controller/mqtt/MqttController.java b/agri-admin/src/main/java/com/agri/web/controller/mqtt/MqttController.java index 3b5786b..7d7c608 100644 --- a/agri-admin/src/main/java/com/agri/web/controller/mqtt/MqttController.java +++ b/agri-admin/src/main/java/com/agri/web/controller/mqtt/MqttController.java @@ -129,7 +129,6 @@ public class MqttController { * 便于排查连接问题 */ @GetMapping("/status") - @Log(title = "手动触发MQTT重连", businessType = BusinessType.SELECT) public AjaxResult getMqttStatus() { try { return AjaxResult.success(mqttClientManager.getMqttStatus()); diff --git a/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java b/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java index 479c301..a947b66 100644 --- a/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java +++ b/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java @@ -102,6 +102,9 @@ public class DeviceStatusHandler { * 处理设备状态:转发给订阅的前端、处理回执、触发自动关 */ public void handle(String topic, String payload) throws MqttException { + if (!payload.trim().startsWith("{")) { + return; + } // 第一步:解析JSON,非有效JSON直接return JSONObject payloadObj; try { diff --git a/agri-framework/src/main/java/com/agri/framework/manager/MqttSubscriptionManager.java b/agri-framework/src/main/java/com/agri/framework/manager/MqttSubscriptionManager.java index 0c8cd6e..bd26987 100644 --- a/agri-framework/src/main/java/com/agri/framework/manager/MqttSubscriptionManager.java +++ b/agri-framework/src/main/java/com/agri/framework/manager/MqttSubscriptionManager.java @@ -306,9 +306,11 @@ public class MqttSubscriptionManager { private List queryImeiByUserId(Long userId) { // 示例:替换为你项目中查询用户设备的实际代码 // 比如:return deviceService.listDeviceIdsByUserId(userId); - List agriInfos = agriInfoService.lambdaQuery() - .eq(SysAgriInfo::getUserId, userId) - .list(); + SysAgriInfo sysAgriInfo = new SysAgriInfo(); + if (!SecurityUtils.isAdmin()) { + sysAgriInfo.setUserId(SecurityUtils.getUserId()); + } + List agriInfos = agriInfoService.findAgriByUser(sysAgriInfo); if (CollectionUtils.isEmpty(agriInfos)) { return Collections.emptyList(); }