good version for 算法注册

This commit is contained in:
2026-02-15 21:23:28 +08:00
parent 3c03777b97
commit 62ea5d36a5
115 changed files with 9566 additions and 1576 deletions

View File

@@ -0,0 +1,165 @@
from typing import Optional, Dict, Any, List
from sqlalchemy.orm import Session
from app.models.models import ServiceConfig
import uuid
import logging
logger = logging.getLogger(__name__)
class ConfigService:
"""配置服务"""
@staticmethod
def get_config(db: Session, config_key: str) -> Optional[Dict[str, Any]]:
"""获取配置
Args:
db: 数据库会话
config_key: 配置键
Returns:
配置值如果不存在返回None
"""
config = db.query(ServiceConfig).filter_by(
config_key=config_key,
status="active"
).first()
if config:
return config.config_value
return None
@staticmethod
def set_config(db: Session, config_key: str, config_value: Dict[str, Any],
config_type: str = "system", service_id: Optional[str] = None,
description: str = "") -> bool:
"""设置配置
Args:
db: 数据库会话
config_key: 配置键
config_value: 配置值
config_type: 配置类型,默认为"system"
service_id: 服务ID系统配置可为None
description: 配置描述
Returns:
是否设置成功
"""
try:
# 检查是否存在
existing_config = db.query(ServiceConfig).filter_by(
config_key=config_key
).first()
if existing_config:
# 更新现有配置
existing_config.config_value = config_value
existing_config.config_type = config_type
existing_config.service_id = service_id
existing_config.description = description
existing_config.status = "active"
else:
# 创建新配置
new_config = ServiceConfig(
id=f"config-{uuid.uuid4()}",
config_key=config_key,
config_value=config_value,
config_type=config_type,
service_id=service_id,
description=description,
status="active"
)
db.add(new_config)
db.commit()
return True
except Exception as e:
logger.error(f"Failed to set config: {str(e)}")
db.rollback()
return False
@staticmethod
def get_service_configs(db: Session, service_id: str) -> List[Dict[str, Any]]:
"""获取服务的所有配置
Args:
db: 数据库会话
service_id: 服务ID
Returns:
服务配置列表
"""
configs = db.query(ServiceConfig).filter_by(
service_id=service_id,
status="active"
).all()
return [
{
"key": config.config_key,
"value": config.config_value,
"type": config.config_type,
"description": config.description
}
for config in configs
]
@staticmethod
def delete_config(db: Session, config_key: str) -> bool:
"""删除配置
Args:
db: 数据库会话
config_key: 配置键
Returns:
是否删除成功
"""
try:
config = db.query(ServiceConfig).filter_by(
config_key=config_key
).first()
if config:
config.status = "inactive"
db.commit()
return True
except Exception as e:
logger.error(f"Failed to delete config: {str(e)}")
db.rollback()
return False
@staticmethod
def get_all_configs(db: Session, config_type: Optional[str] = None) -> List[Dict[str, Any]]:
"""获取所有配置
Args:
db: 数据库会话
config_type: 配置类型,可选
Returns:
配置列表
"""
query = db.query(ServiceConfig).filter_by(status="active")
if config_type:
query = query.filter_by(config_type=config_type)
configs = query.all()
return [
{
"id": config.id,
"key": config.config_key,
"value": config.config_value,
"type": config.config_type,
"service_id": config.service_id,
"description": config.description,
"created_at": config.created_at,
"updated_at": config.updated_at
}
for config in configs
]