dingdanquanliucheng/backend/app/repositories/config_repository.py
taiyi 9b32afdbb4 为后端全部 86 个 Python 文件添加中文注释
覆盖所有模块:
- api 层:17 个路由文件,每个接口标注用途、参数、返回值、权限
- services 层:18 个服务文件,每个方法标注作用、参数、返回值、调用方
- repositories 层:13 个仓储文件,每个方法标注查询逻辑和被调用方
- schemas 层:11 个请求/响应体文件,每个字段标注业务含义
- core 层:config、security、exceptions、responses、error_codes
- models 层:19 个 ORM 模型类,每个表标注业务含义和关联关系
- scripts:bootstrap_data、smoke_check
- migrations:env.py 和版本迁移文件

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 07:23:33 +08:00

64 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""系统配置模块 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