diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java index 129f95539..62f7821f6 100644 --- a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java @@ -56,7 +56,7 @@ public class AiScreenshotServiceImpl implements IAiScreenshotService { try { JSONObject cached = JSON.parseObject(cacheJson); result.put("status", "ok"); - result.put("url", "/api/ai/roi/snap/image?cameraCode=" + cameraCode); + result.put("url", cached.getString("url")); result.put("cached", true); log.info("[AI截图] 命中缓存: cameraCode={}", cameraCode); return result; @@ -101,7 +101,7 @@ public class AiScreenshotServiceImpl implements IAiScreenshotService { String status = (String) callbackData.get("status"); result.put("status", status); if ("ok".equals(status)) { - result.put("url", "/api/ai/roi/snap/image?cameraCode=" + cameraCode); + result.put("url", callbackData.get("url")); } else { result.put("message", callbackData.get("message")); } @@ -115,7 +115,7 @@ public class AiScreenshotServiceImpl implements IAiScreenshotService { JSONObject res = JSON.parseObject(resultJson); result.put("status", res.getString("status")); if ("ok".equals(res.getString("status"))) { - result.put("url", "/api/ai/roi/snap/image?cameraCode=" + cameraCode); + result.put("url", res.getString("url")); // 降级成功,写入缓存 writeCache(cameraCode, res.getString("url")); } else { @@ -135,7 +135,7 @@ public class AiScreenshotServiceImpl implements IAiScreenshotService { try { JSONObject cached = JSON.parseObject(staleCache); result.put("status", "ok"); - result.put("url", "/api/ai/roi/snap/image?cameraCode=" + cameraCode); + result.put("url", cached.getString("url")); result.put("stale", true); return result; } catch (Exception ignored) { 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 2db3bb528..18da00ea7 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java @@ -42,6 +42,11 @@ public class GlobalResponseAdvice implements ResponseBodyAdvice { return body; } + // 排除二进制响应(如图片代理返回的 byte[]) + if (body instanceof byte[]) { + return body; + } + if (body instanceof WVPResult) { return body; }