From 76399d13ce1fe8c3e7ed08862ae2fc1dc65ded33 Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Tue, 24 Feb 2026 09:34:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(aiot):=20=E6=B7=BB=E5=8A=A0=E6=91=84?= =?UTF-8?q?=E5=83=8F=E5=A4=B4=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=20-=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=80=9A=E8=BF=87camera=5Fcode=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增功能: - 新增 AiCameraController 提供 /api/ai/camera/get 接口 - 支持通过 cameraCode 参数查询 StreamProxy 摄像头信息 - 用于告警服务从WVP获取摄像头名称等详细信息 接口说明: - 路径:GET /api/ai/camera/get - 参数:cameraCode(摄像头编码,如:cam_xxxxxxxxxxxx) - 返回:StreamProxy对象(包含name、gb_name、app等字段) 使用场景: - 告警汇总/device-summary API需要获取摄像头中文名称 - 前端vite代理:/admin-api/aiot/device/camera/get → WVP /api/ai/camera/get 技术细节: - 使用StreamProxyMapper.selectByCameraCode查询 - 返回WVPResult封装的响应 --- .../aiot/controller/AiCameraController.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/com/genersoft/iot/vmp/aiot/controller/AiCameraController.java diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/controller/AiCameraController.java b/src/main/java/com/genersoft/iot/vmp/aiot/controller/AiCameraController.java new file mode 100644 index 000000000..9eff426fe --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/aiot/controller/AiCameraController.java @@ -0,0 +1,41 @@ +package com.genersoft.iot.vmp.aiot.controller; + +import com.genersoft.iot.vmp.streamProxy.bean.StreamProxy; +import com.genersoft.iot.vmp.streamProxy.dao.StreamProxyMapper; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * AI摄像头管理接口 + */ +@Slf4j +@RestController +@RequestMapping("/api/ai/camera") +@Tag(name = "AI-摄像头管理") +public class AiCameraController { + + @Autowired + private StreamProxyMapper streamProxyMapper; + + @Operation(summary = "根据camera_code查询摄像头信息") + @GetMapping("/get") + public WVPResult getByCameraCode( + @Parameter(description = "摄像头编码") @RequestParam String cameraCode + ) { + log.info("[AI-摄像头] 查询摄像头信息: cameraCode={}", cameraCode); + + StreamProxy proxy = streamProxyMapper.selectByCameraCode(cameraCode); + + if (proxy == null) { + log.warn("[AI-摄像头] 摄像头不存在: cameraCode={}", cameraCode); + return WVPResult.fail(404, "摄像头不存在"); + } + + return WVPResult.success(proxy); + } +}