"""设置相关路由""" from fastapi import APIRouter, Request from app.core.db import get_db from app.repositories.settings_repo import SettingsRepository from app.models.schemas import SettingsSchema from app.api.common import success_response, error_response from app.core.log import logger router = APIRouter(prefix="/api/settings", tags=["settings"]) settings_repo = SettingsRepository() @router.get("") async def get_settings(): async with get_db() as db: settings = await settings_repo.get_all(db) return success_response("获取设置成功", settings) @router.post("") async def save_settings(request: SettingsSchema, http_request: Request): async with get_db() as db: success = await settings_repo.save(db, request.model_dump()) if not success: return error_response("保存设置失败", 500) # 热更新运行中调度器的间隔时间 scheduler = getattr(http_request.app.state, "scheduler_service", None) if scheduler and scheduler.running: new_interval = request.validate_interval_minutes if scheduler.interval_minutes != new_interval: scheduler.interval_minutes = new_interval logger.info(f"Scheduler interval updated to {new_interval} minutes") return success_response("保存设置成功", request.model_dump())