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(); }