diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java index f4c3bc1db..5ea53949f 100644 --- a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java @@ -279,20 +279,17 @@ public class AiRedisConfigServiceImpl implements IAiRedisConfigService { String cameraName = ""; String rtspUrl = ""; - // 从ROI关联的通道获取名称 - if (!rois.isEmpty()) { - AiRoi firstRoi = rois.get(0); - if (firstRoi.getChannelDbId() != null) { - try { - CommonGBChannel channel = channelMapper.queryById(firstRoi.getChannelDbId()); - if (channel != null) { - cameraName = channel.getGbName() != null ? channel.getGbName() : ""; - } - } catch (Exception e) { - log.warn("[AiRedis] 查询通道信息失败: channelDbId={}", firstRoi.getChannelDbId()); - } + // 优先从 StreamProxy 获取 cameraName(用户自定义名称) + StreamProxy proxy = streamProxyMapper.selectByCameraCode(cameraId); + if (proxy != null) { + cameraName = proxy.getCameraName(); + if (cameraName == null || cameraName.isBlank()) { + cameraName = proxy.getGbName(); } } + if (cameraName == null || cameraName.isBlank()) { + cameraName = cameraId; + } // 构建RTSP代理地址(通过ZLM媒体服务器) // cameraId格式为 {app}/{stream},ZLM的RTSP路径直接使用该格式 @@ -504,23 +501,15 @@ public class AiRedisConfigServiceImpl implements IAiRedisConfigService { cameraMap.put("camera_code", cameraId); cameraMap.put("camera_id", cameraId); - // 获取摄像头名称 - String cameraName = ""; - List cameraRois = roiMapper.queryAllByCameraId(cameraId); - - if (!cameraRois.isEmpty()) { - AiRoi firstRoi = cameraRois.get(0); - if (firstRoi.getChannelDbId() != null) { - try { - CommonGBChannel channel = channelMapper.queryById(firstRoi.getChannelDbId()); - if (channel != null) { - cameraName = channel.getGbName() != null ? channel.getGbName() : ""; - } - } catch (Exception e) { - log.warn("[AiRedis] 查询通道信息失败: channelDbId={}", firstRoi.getChannelDbId()); - } - } + // 获取摄像头名称:优先 cameraName(用户自定义),其次 gbName,最后 cameraId + String cameraName = proxy.getCameraName(); + if (cameraName == null || cameraName.isBlank()) { + cameraName = proxy.getGbName(); } + if (cameraName == null || cameraName.isBlank()) { + cameraName = cameraId; + } + List cameraRois = roiMapper.queryAllByCameraId(cameraId); // 获取 RTSP URL:优先使用 StreamProxy 的源 URL String rtspUrl = "";