Files
2026-09-21 22:13:04 +08:00

81 lines
2.0 KiB
Python

# statistic.py
# 本文件定义statistic相关的所有 API 路由(Controller 层)
from dao.statistic_dao import Statistic
from fastapi import APIRouter, Depends, HTTPException, Query
from database import get_db
router = APIRouter()
@router.get("/ages")
async def get_ages_interface(
age1:int = Query(...,ge=18,lt=30,description="输入年龄"),
age2:int|None = Query(default=None,ge=19,lt=30,description="如果要区间则输入最大年龄"),
condition:int =Query(...,description="输入比较条件:1是大于,2是小于,3是等于,4是区间"),
db = Depends(get_db)
):
module = Statistic(db)
res = module.get_ages(age1, age2, condition)
return {
"code": 200,
"data": res
}
@router.get("/class/")
async def get_class_interface(
db = Depends(get_db)
):
module = Statistic(db)
res = module.get_class()
return {
"code": 200,
"data": res
}
@router.get("/grades/")
async def get_grades_interface(
grades:float=Query(80,ge=0,lt=100,description="输入成绩"),
db = Depends(get_db)
):
module = Statistic(db)
res = module.get_grades(grades)
return res
@router.get("/bad_grades/")
async def get_bad_grades_interface(
number:int=Query(...,ge=0,lt=4,description="输入次数"),
db = Depends(get_db)
):
module = Statistic(db)
res = module.get_bad_grades(number)
return res
#
#
@router.get("/avg_grade")
async def get_avg_interface(
sort:int = Query(..., ge=1, le=2, description="1降序高分在前,2升序低分在前"),
db=Depends(get_db)
):
module = Statistic(db)
res = module.get_avg_grades(sort)
return {"code":200,"data":res}
#
@router.get("/top")
async def get_top_interface(
top:int=Query(...,description="输入排名"),
db = Depends(get_db)
):
module = Statistic(db)
res = module.get_top(top)
return res
#
#
@router.get("/get_time")
async def get_time_interface(db = Depends(get_db)):
module = Statistic(db)
res = module.get_time()
return res