refactor(alarm): 统一摄像头名称显示格式
变更: - 统一格式为:camera_code 摄像头名称/stream - 示例:cam_c51ce410c124 大堂吧台1/008 修改内容: 1. 告警列表页面 (_alarm_to_camel) - 提取 cameraCode、摄像头名称、stream - 组合为统一格式 2. 设备汇总页面 (get_device_summary_page) - 使用相同的统一格式逻辑 - 保证两个页面显示一致 测试结果: - 告警列表: cam_1f0e3dad9990 → cam_1f0e3dad9990 大堂吧台3/012 ✓ - 设备汇总: cam_c51ce410c124 → cam_c51ce410c124 大堂吧台1/008 ✓
This commit is contained in:
@@ -61,7 +61,7 @@ async def _alarm_to_camel(alarm_dict: dict, current_user: dict = None) -> dict:
|
||||
|
||||
alarm_id = alarm_dict.get("alarm_id")
|
||||
|
||||
# 查询摄像头名称(三级 fallback 策略)
|
||||
# 查询摄像头名称(统一格式:camera_code 摄像头名称/stream)
|
||||
device_id = alarm_dict.get("device_id")
|
||||
device_name = device_id # 默认使用 device_id
|
||||
|
||||
@@ -69,16 +69,24 @@ async def _alarm_to_camel(alarm_dict: dict, current_user: dict = None) -> dict:
|
||||
try:
|
||||
camera_info = await _get_camera_info(device_id, current_user)
|
||||
if camera_info:
|
||||
# 1. 优先使用 gb_name(去除 "/" 后缀)
|
||||
# 获取摄像头中文名称(三级 fallback)
|
||||
camera_cn_name = None
|
||||
gb_name = camera_info.get("gbName") or camera_info.get("gb_name")
|
||||
if gb_name:
|
||||
device_name = gb_name.split("/")[0]
|
||||
# 2. 其次使用 name 字段
|
||||
camera_cn_name = gb_name.split("/")[0]
|
||||
elif camera_info.get("name"):
|
||||
device_name = camera_info.get("name")
|
||||
# 3. 最后才使用 app 字段
|
||||
camera_cn_name = camera_info.get("name")
|
||||
elif camera_info.get("app"):
|
||||
device_name = camera_info.get("app")
|
||||
camera_cn_name = camera_info.get("app")
|
||||
|
||||
# 统一格式:camera_code 摄像头名称/stream
|
||||
camera_code = camera_info.get("cameraCode") or camera_info.get("camera_code")
|
||||
stream = camera_info.get("stream")
|
||||
|
||||
if camera_code and camera_cn_name and stream:
|
||||
device_name = f"{camera_code} {camera_cn_name}/{stream}"
|
||||
elif camera_cn_name:
|
||||
device_name = camera_cn_name
|
||||
except Exception as e:
|
||||
logger.warning(f"告警列表查询摄像头信息失败: device_id={device_id}, error={e}")
|
||||
|
||||
@@ -272,20 +280,28 @@ async def get_device_summary_page(
|
||||
device_id = item.get("deviceId")
|
||||
device_name = device_id # 默认使用 device_id
|
||||
|
||||
# 尝试从 WVP 查询摄像头名称(三级 fallback 策略)
|
||||
# 尝试从 WVP 查询摄像头名称(统一格式:camera_code 摄像头名称/stream)
|
||||
try:
|
||||
camera_info = await _get_camera_info(device_id, current_user)
|
||||
if camera_info:
|
||||
# 1. 优先使用 gb_name(去除 "/" 后缀)
|
||||
# 获取摄像头中文名称(三级 fallback)
|
||||
camera_cn_name = None
|
||||
gb_name = camera_info.get("gbName") or camera_info.get("gb_name")
|
||||
if gb_name:
|
||||
device_name = gb_name.split("/")[0]
|
||||
# 2. 其次使用 name 字段
|
||||
camera_cn_name = gb_name.split("/")[0]
|
||||
elif camera_info.get("name"):
|
||||
device_name = camera_info.get("name")
|
||||
# 3. 最后才使用 app 字段(通常等于 camera_code)
|
||||
camera_cn_name = camera_info.get("name")
|
||||
elif camera_info.get("app"):
|
||||
device_name = camera_info.get("app")
|
||||
camera_cn_name = camera_info.get("app")
|
||||
|
||||
# 统一格式:camera_code 摄像头名称/stream
|
||||
camera_code = camera_info.get("cameraCode") or camera_info.get("camera_code")
|
||||
stream = camera_info.get("stream")
|
||||
|
||||
if camera_code and camera_cn_name and stream:
|
||||
device_name = f"{camera_code} {camera_cn_name}/{stream}"
|
||||
elif camera_cn_name:
|
||||
device_name = camera_cn_name
|
||||
except Exception as e:
|
||||
logger.warning(f"查询摄像头信息失败: device_id={device_id}, error={e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user