"""系统配置模块 Repository 层 负责系统配置项(SystemConfig)的增删改查操作, 用于管理系统运行时的键值对配置。 被 ConfigService(配置管理服务)调用。 """ from sqlalchemy import select from sqlalchemy.orm import Session from backend.app.models.system import SystemConfig class ConfigRepository: """系统配置数据仓储 封装系统配置项的按键查询、创建和更新操作。 被 ConfigService(配置管理服务)调用。 """ def get_by_key(self, session: Session, config_key: str) -> SystemConfig | None: """根据配置键查询系统配置 参数: session: 数据库会话 config_key: 配置键名 返回: 匹配的配置对象,不存在则返回 None """ stmt = select(SystemConfig).where(SystemConfig.config_key == config_key) return session.execute(stmt).scalar_one_or_none() def create_config(self, session: Session, payload: dict) -> SystemConfig: """创建新配置项 参数: session: 数据库会话 payload: 配置数据字典,包含 config_key / config_value / config_name 等字段 返回: 新创建的配置对象 """ config = SystemConfig(**payload) session.add(config) session.flush() return config def update_config(self, config: SystemConfig, payload: dict) -> SystemConfig: """更新配置项信息 参数: config: 待更新的配置对象(已从数据库加载) payload: 更新数据字典,包含 config_value / config_name / remark / status 返回: 更新后的配置对象 """ config.config_value = payload["config_value"] config.config_name = payload["config_name"] config.remark = payload.get("remark") config.status = payload.get("status", 1) return config