完善统计模块及模型

This commit is contained in:
2026-09-21 19:55:51 +08:00
parent 89a10c598b
commit 946d428c8b
11 changed files with 428 additions and 59 deletions
+60 -5
View File
@@ -1,9 +1,10 @@
from fastapi import APIRouter,HTTPException,Depends
from DoubaoTeam.core.database import get_db
from DoubaoTeam.models.student import Student
from DoubaoTeam.models.score import Score
from DoubaoTeam.dao.statistics import *
from DoubaoTeam.schemas.common import SuccessResponse
from core.database import get_db
from models.employment import Employment
from models.student import Student
from models.score import Score
from dao.statistics import *
from schemas.common import SuccessResponse
from sqlalchemy.orm import Session
@@ -26,3 +27,57 @@ def api_gender_count(db:Session=Depends(get_db)):
except NoExist as e:
raise HTTPException(status_code=404,detail=str(e))
@statistics_router.get("/scores/all-above-80",response_model=SuccessResponse)
def all_above_eighty(db:Session=Depends(get_db)):
try:
result = score_over_eighty(Score,Student,db)
return SuccessResponse(status_code=200,msg=result)
except NoExist as e:
raise HTTPException(status_code=404,detail=str(e))
@statistics_router.get("/scores/fail-more-than-two",response_model=SuccessResponse)
def fail_two(db:Session=Depends(get_db)):
try:
result = twice_error(Score,Student,db)
return SuccessResponse(status_code=200,msg=result)
except NoExist as e:
raise HTTPException(status_code=404,detail=str(e))
@statistics_router.get("/scores/class-average",response_model=SuccessResponse)
def class_average(db:Session=Depends(get_db)):
try:
result = avg_class(Score,Student,db)
return SuccessResponse(status_code=200,msg=result)
except NoExist as e:
raise HTTPException(status_code=404,detail=str(e))
@statistics_router.get("/employments/top5-salary",response_model=SuccessResponse)
def top_salary(db:Session=Depends(get_db)):
try:
result=max_salary(Student,Employment,db)
return SuccessResponse(status_code=200,msg=result)
except NoExist as e:
raise HTTPException(status_code=404,detail=str(e))
@statistics_router.get("/employments/student-duration",response_model=SuccessResponse)
def employ_time(db:Session=Depends(get_db)):
try:
result = student_market(Employment,db)
return SuccessResponse(status_code=200,msg=result)
except NoExist as e:
raise HTTPException(status_code=404,detail=str(e))
@statistics_router.get("/employments/class-average-duration",response_model=SuccessResponse)
def avg_employ_time(db:Session=Depends(get_db)):
try:
result = avg_class(Employment,Student,db)
return SuccessResponse(status_code=200,msg=result)
except NoExist as e:
raise HTTPException(status_code=404,detail=str(e))