95 lines
2.6 KiB
Python
95 lines
2.6 KiB
Python
# ===========================================
|
|
# 班级操行分管理系统 - 后端服务
|
|
#
|
|
# 开发者: 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/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) |