From e140d4ceeb038b7052944254f338d9de99d667a6 Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Mon, 2 Mar 2026 17:28:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(aiot):=20=E4=BF=AE=E5=A4=8D=20backfill-devi?= =?UTF-8?q?ce-id=20=E8=A2=AB=E5=85=A8=E5=B1=80=E5=93=8D=E5=BA=94=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=99=A8=E8=AF=AF=E8=BD=AC=E5=9E=8B=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=20500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GlobalResponseAdvice:65 对 LinkedHashMap 中的 "status" 键强转 Integer, 但 backfill 端点放入的是字符串 "success",触发 ClassCastException。 - backfill 返回 Map 的键从 "status" 改为 "result" 避免冲突 - GlobalResponseAdvice 增加 instanceof Integer 类型检查,防止其他端点踩坑 Co-Authored-By: Claude Opus 4.6 --- .../genersoft/iot/vmp/aiot/controller/AiConfigController.java | 2 +- .../java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/controller/AiConfigController.java b/src/main/java/com/genersoft/iot/vmp/aiot/controller/AiConfigController.java index 2c865231d..9d54858fc 100644 --- a/src/main/java/com/genersoft/iot/vmp/aiot/controller/AiConfigController.java +++ b/src/main/java/com/genersoft/iot/vmp/aiot/controller/AiConfigController.java @@ -162,7 +162,7 @@ public class AiConfigController { int updatedRois = roiMapper.updateAllDeviceId(targetDeviceId); result.put("rois_updated", updatedRois); - result.put("status", "success"); + result.put("result", "success"); result.put("device_id", targetDeviceId); log.info("[AiConfig] 统一 device_id 完成: deviceId={}, deletedDevices={}, updatedRois={}", targetDeviceId, deleted, updatedRois); diff --git a/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java b/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java index 18da00ea7..f1d1f7a31 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java @@ -62,7 +62,8 @@ public class GlobalResponseAdvice implements ResponseBodyAdvice { if (body instanceof LinkedHashMap) { LinkedHashMap bodyMap = (LinkedHashMap) body; - if (bodyMap.get("status") != null && (Integer)bodyMap.get("status") != 200) { + Object statusVal = bodyMap.get("status"); + if (statusVal instanceof Integer && (Integer) statusVal != 200) { return body; } }