81 lines
2.0 KiB
Python
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
|