feat: 增加学生信息管理功能,优化操行分历史记录展示并更新使用文档
This commit is contained in:
@@ -25,7 +25,7 @@ from services.attendance_service import AttendanceService
|
||||
from services.log_service import LogService
|
||||
from schemas.admin import (
|
||||
AddPointsRequest, RevokeRequest, AddAdminRequest,
|
||||
AddStudentRequest,
|
||||
AddStudentRequest, UpdateStudentRequest,
|
||||
UpdateHomeworkStatusRequest, AddAttendanceRequest,
|
||||
UpdateAdminRequest, DeleteAdminRequest, ResetPasswordRequest
|
||||
)
|
||||
@@ -124,6 +124,58 @@ async def add_student(request: Request, req: AddStudentRequest):
|
||||
return error_response(message=result["message"])
|
||||
|
||||
|
||||
@router.put("/students/{student_id}")
|
||||
async def update_student(request: Request, student_id: int, req: UpdateStudentRequest):
|
||||
"""编辑学生信息(班主任)"""
|
||||
user = await get_current_user(request)
|
||||
is_teacher = await PermissionChecker.check_is_teacher(user["user_id"])
|
||||
if not is_teacher:
|
||||
return error_response(message="仅班主任可编辑学生信息", code=403)
|
||||
|
||||
result = await AdminService.update_student(
|
||||
student_id=student_id,
|
||||
name=req.name,
|
||||
parent_phone=req.parent_phone
|
||||
)
|
||||
if result["success"]:
|
||||
return success_response(message=result["message"])
|
||||
else:
|
||||
return error_response(message=result["message"])
|
||||
|
||||
|
||||
@router.delete("/students/{student_id}")
|
||||
async def delete_student(request: Request, student_id: int):
|
||||
"""删除学生(班主任)"""
|
||||
user = await get_current_user(request)
|
||||
is_teacher = await PermissionChecker.check_is_teacher(user["user_id"])
|
||||
if not is_teacher:
|
||||
return error_response(message="仅班主任可删除学生", code=403)
|
||||
|
||||
result = await AdminService.delete_student(student_id=student_id)
|
||||
if result["success"]:
|
||||
return success_response(message=result["message"])
|
||||
else:
|
||||
return error_response(message=result["message"])
|
||||
|
||||
|
||||
@router.post("/students/reset-password/{student_id}")
|
||||
async def reset_student_password(request: Request, student_id: int, req: ResetPasswordRequest):
|
||||
"""重置学生密码(班主任)"""
|
||||
user = await get_current_user(request)
|
||||
is_teacher = await PermissionChecker.check_is_teacher(user["user_id"])
|
||||
if not is_teacher:
|
||||
return error_response(message="仅班主任可重置学生密码", code=403)
|
||||
|
||||
result = await AdminService.reset_student_password(
|
||||
student_id=student_id,
|
||||
new_password=req.new_password
|
||||
)
|
||||
if result["success"]:
|
||||
return success_response(message=result["message"])
|
||||
else:
|
||||
return error_response(message=result["message"])
|
||||
|
||||
|
||||
# ========== 操行分管理 ==========
|
||||
|
||||
@router.post("/conduct/add")
|
||||
@@ -186,7 +238,8 @@ async def get_conduct_history(
|
||||
page: int = Query(1, ge=1),
|
||||
page_size: int = Query(20, ge=1, le=1000),
|
||||
start_date: Optional[str] = None,
|
||||
end_date: Optional[str] = None
|
||||
end_date: Optional[str] = None,
|
||||
grouped: bool = Query(False)
|
||||
):
|
||||
"""获取操行分历史记录"""
|
||||
try:
|
||||
@@ -197,7 +250,8 @@ async def get_conduct_history(
|
||||
page=page,
|
||||
page_size=page_size,
|
||||
start_date=start_date,
|
||||
end_date=end_date
|
||||
end_date=end_date,
|
||||
grouped=grouped
|
||||
)
|
||||
return success_response(data=result)
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user