通过特定的scope和target_id查找sur_config再查找sur_config_base

This commit is contained in:
zqc
2026-01-08 17:10:30 +08:00
parent 6679c8ea34
commit 7c1925bab1

View File

@@ -13,7 +13,7 @@ from config import settings
from database.connection import db_manager from database.connection import db_manager
from models.face_feature import FeatureStatus from models.face_feature import FeatureStatus
from models.video_check_task import SurVideoCheckTask from models.video_check_task import SurVideoCheckTask
from models.sur_config import SurConfigBase from models.sur_config import SurConfigBase, SurConfig
from models.sur_person import SurPersonBlacklist, SurFaceFeature from models.sur_person import SurPersonBlacklist, SurFaceFeature
from repositories.face_feature_repository import FaceFeatureRepository from repositories.face_feature_repository import FaceFeatureRepository
from algorithm.face_recognition_algorithm import FaceRecognitionAlgorithm from algorithm.face_recognition_algorithm import FaceRecognitionAlgorithm
@@ -838,11 +838,31 @@ def sync_videofaceprisonbiz_params():
""" """
try: try:
with db_manager.get_session() as session: with db_manager.get_session() as session:
# 查询人脸识别配置(根据实际表结构) # 查询sur_config表条件为scope=1且target_id=3
prison_config = session.query(SurConfig).filter(
SurConfig.scope == 1, # 房间作用域
SurConfig.target_id == 3, # 目标ID为3
SurConfig.config_type == settings.SUR_CONFIG_TYPE_FACE # 人脸识别配置类型
).first()
if not prison_config:
logger.warning("未找到监狱场景的配置记录scope=1, target_id=3")
return 0
if not prison_config.config_group_id:
logger.warning("监狱配置记录缺少config_group_id")
return 0
# 使用联表查询
config_records = session.query(SurConfigBase).filter( config_records = session.query(SurConfigBase).filter(
SurConfigBase.group_id == prison_config.config_group_id,
SurConfigBase.config_type == settings.SUR_CONFIG_TYPE_FACE SurConfigBase.config_type == settings.SUR_CONFIG_TYPE_FACE
).all() ).all()
if not config_records:
logger.warning(f"未找到对应的配置基础记录group_id={prison_config.config_group_id}")
return 0
# 构建配置参数字典 # 构建配置参数字典
config_params = {} config_params = {}
for record in config_records: for record in config_records:
@@ -906,7 +926,7 @@ def sync_videofaceprisonbiz_params():
except ValueError: except ValueError:
logger.error(f"无效的相似度阈值: {config_value}") logger.error(f"无效的相似度阈值: {config_value}")
logger.info(f"✅ 同步VideoFacePrisonBiz参数完成更新了 {updated_count} 个参数") logger.info(f"✅ 同步VideoFacePrisonBiz参数完成更新了 {updated_count} 个参数配置组ID: {prison_config.config_group_id}")
return updated_count return updated_count
except Exception as e: except Exception as e: