fix(aiot): 修复摄像头名称显示问题 - 三级降级策略
问题分析:
1. 部分告警显示camera_code而非摄像头名称
- cam_1f0e3dad9990 显示为 cam_1f0e3dad9990
- cam_c51ce410c124 显示为 cam_c51ce410c124
- cam_6f4922f45568 显示为 cam_6f4922f45568
2. 部分摄像头显示带流ID后缀
- 大堂吧台3/012 应显示为 大堂吧台3
根本原因:
- 数据库中这3个摄像头的gb_name字段为空
- 原降级逻辑使用app字段(值为camera_code)
- 导致显示camera_code而非实际名称
修复方案 - 三级降级策略:
1. 优先使用gb_name去除流ID后缀:SUBSTRING_INDEX(gb_name, '/', 1)
2. gb_name为空时使用name字段(摄像头名称如'大堂吧台1')
3. name也为空时才使用app字段
SQL修改:
COALESCE(SUBSTRING_INDEX(sp.gb_name, '/', 1), sp.name, sp.app) AS camera_name
修复效果:
- cam_1f0e3dad9990 → 大堂吧台3 ✓
- cam_c51ce410c124 → 大堂吧台1 ✓
- cam_6f4922f45568 → 大堂吧台2 ✓
- 大堂吧台3/012 → 大堂吧台3 ✓
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>