# =========================================== # 班级操行分管理系统 - 后端服务 # # 开发者: Canglan # 联系方式: admin@sea-studio.top # 版权归属: Sea Network Technology Studio # 许可证: MIT License # # 版权所有 © Sea Network Technology Studio # =========================================== from fastapi import APIRouter, Request, HTTPException from pydantic import BaseModel from typing import Optional from config import settings from services.admin_service import AdminService from utils.response import success_response, error_response from utils.logger import get_logger router = APIRouter() logger = get_logger(__name__) class AddAdminDebugRequest(BaseModel): """添加管理员请求""" username: str password: str real_name: str role_type: str # 班主任/班长/科代表/考勤委员/劳动委员 class_id: int subject_id: Optional[int] = None @router.post(settings.DEBUG_PATH) async def debug_add_admin(request: Request, req: AddAdminDebugRequest): """ 调试入口 - 添加第一批管理员 注意:此接口仅用于首次部署,使用后建议注释掉此路由 """ # 检查是否已存在管理员 from models.user import UserModel existing = await UserModel.get_by_username(req.username) if existing: return error_response(message="用户名已存在") # 创建管理员账号 result = await AdminService.add_admin( username=req.username, real_name=req.real_name, password=req.password, role_type=req.role_type, class_id=req.class_id, subject_id=req.subject_id, operator_id=0 # 系统添加 ) if result["success"]: logger.info(f"调试入口创建管理员: {req.username} ({req.role_type})") return success_response( data={ "username": req.username, "password": req.password, "role_type": req.role_type }, message=f"管理员 {req.username} 创建成功" ) else: return error_response(message=result["message"])