# =========================================== # 班级操行分管理系统 - 后端服务 # # 开发者: Canglan # 联系方式: admin@sea-studio.top # 版权归属: Sea Network Technology Studio # 许可证: MIT License # # 版权所有 © Sea Network Technology Studio # =========================================== from fastapi import APIRouter, Request, Query from typing import Optional from middleware.permission import get_current_user from services.parent_service import ParentService from utils.response import success_response, error_response from utils.logger import get_logger router = APIRouter() logger = get_logger(__name__) @router.get("/child/conduct") async def get_child_conduct(request: Request): """ 获取子女操行分(仅总分) """ user = await get_current_user(request) if user["user_type"] != "parent": return error_response(message="仅限家长访问", code=403) result = await ParentService.get_child_conduct(user["user_id"]) return success_response(data=result) @router.get("/child/homework") async def get_child_homework(request: Request): """ 获取子女作业情况 """ user = await get_current_user(request) if user["user_type"] != "parent": return error_response(message="仅限家长访问", code=403) result = await ParentService.get_child_homework(user["user_id"]) return success_response(data=result) @router.get("/child/attendance") async def get_child_attendance(request: Request): """ 获取子女考勤记录 """ user = await get_current_user(request) if user["user_type"] != "parent": return error_response(message="仅限家长访问", code=403) result = await ParentService.get_child_attendance(user["user_id"]) return success_response(data=result) @router.get("/child/ranking") async def get_child_ranking(request: Request): """ 获取子女排名信息 """ user = await get_current_user(request) if user["user_type"] != "parent": return error_response(message="仅限家长访问", code=403) result = await ParentService.get_child_ranking(user["user_id"]) if "error" in result: return error_response(message=result["error"], code=400) return success_response(data=result) @router.get("/child/history") async def get_child_history( request: Request, page: int = Query(1, ge=1), page_size: int = Query(20, ge=1, le=100) ): """ 获取子女操行分历史记录 """ user = await get_current_user(request) if user["user_type"] != "parent": return error_response(message="仅限家长访问", code=403) result = await ParentService.get_child_history( parent_id=user["user_id"], page=page, page_size=page_size ) if "error" in result: return error_response(message=result["error"], code=400) return success_response(data=result)