# statcalc_api所有统计分析模块的api路由、接口 from fastapi import APIRouter , Depends , HTTPException from StatCalc.dao.statcalc_dao import * from StatCalc.model.statcalc_model import * from StatCalc.schema.statcalc_request import * from databases import * statcalc_api = APIRouter() @statcalc_api.get("/statcalc" ,summary='人员信息查询' ,description=f'查询所有超过30岁的学员的信息。' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生") @statcalc_api.get("/statcalc" ,summary='人数统计' ,description=f'统计每个班级的人数以及男生女生的人数。' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生") @statcalc_api.get("/statcalc" ,summary='80分以上成绩学生信息查询' ,description=f'查询每次考试成绩都在80分以上的学生的编号,姓名和成绩。' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生") @statcalc_api.get("/statcalc" ,summary='不及格成绩查询' ,description=f'查询有两次以上不及格的学生的姓名,班级和不及格成绩。' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生") @statcalc_api.get("/statcalc" ,summary='班级平均分查询' ,description=f'统计每次考试每个班级的平均分,按照从高到低排序。' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生") @statcalc_api.get("/statcalc" ,summary='排名前五的学生信息' ,description=f'统计就业薪资最高的前五名学生的姓名,班级和就业时间,就业公司。' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生") @statcalc_api.get("/statcalc" ,summary='就业时长统计' ,description=f'统计每个学生的就业时长(offer下发时间-就业开放时间)。' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生") @statcalc_api.get("/statcalc" ,summary='班级的平均就业时长' ,description=f'统计每个班级的平均就业时长(只统计进入就业阶段的学生,也就是有就业开放时间)' ) def get_students( stu:StudentsQuery = Depends() , db=Depends(get_db) ): s_dict = stu.model_dump(exclude_unset=True) # 没值的不要 result = get_student_dao( s=s_dict , db=db ) if result: return result raise HTTPException(status_code=404, detail="没有找到符合条件的学生")