统计分析模块更新,待测试,模块更新80分以上成绩学生信息查询。
This commit is contained in:
@@ -22,9 +22,10 @@ def get_students(db=Depends(get_db)):
|
||||
,summary='人数统计'
|
||||
,description=f'统计每个班级的人数以及男生女生的人数。'
|
||||
)
|
||||
def get_students(db=Depends(get_db)):
|
||||
s_dict = stu.model_dump(exclude_unset=True) # 没值的不要
|
||||
result = get_student_dao( s=s_dict , db=db )
|
||||
def get_students(g:get_student_dao = Depends()
|
||||
,db=Depends(get_db)
|
||||
):
|
||||
result = get_class_count( g=g , db=db )
|
||||
if result:
|
||||
return result
|
||||
raise HTTPException(status_code=404, detail="没有找到符合条件的学生")
|
||||
@@ -33,11 +34,8 @@ def get_students(db=Depends(get_db)):
|
||||
,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 )
|
||||
def get_students(db=Depends(get_db)):
|
||||
result = get_student_dao( db=db )
|
||||
if result:
|
||||
return result
|
||||
raise HTTPException(status_code=404, detail="没有找到符合条件的学生")
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
from pygments.lexers import sql
|
||||
from sentry_sdk.integrations import sqlalchemy
|
||||
|
||||
from StatCalc.schema.statcalc_request import *
|
||||
from fastapi import HTTPException
|
||||
from sqlalchemy import *
|
||||
|
||||
|
||||
from students.model.students_model import Students
|
||||
|
||||
@@ -7,13 +12,35 @@ def get_age_30(db):
|
||||
q = db.query(Students).filter(Students.age>=30).all()
|
||||
return q
|
||||
|
||||
|
||||
from class_management.model.class_management_model import ClassInfo
|
||||
|
||||
def get_class_count(db):
|
||||
q = (db.query(ClassInfo.id)
|
||||
.join(Students,Students.class_id==ClassInfo.id)
|
||||
.group_by(ClassInfo.id,Students.sex,)
|
||||
.all())
|
||||
m
|
||||
f
|
||||
return q
|
||||
def get_class_count(g , db):
|
||||
if g == "班级人数":
|
||||
q = (db.query(ClassInfo.id,ClassInfo.name,func.count(ClassInfo.id) )
|
||||
.join(Students,Students.class_id==ClassInfo.id)
|
||||
.group_by(ClassInfo.id,ClassInfo.name,Students.sex)
|
||||
.all())
|
||||
elif g == "男女人数":
|
||||
q = (db.query(Students.sex,func.count(ClassInfo.id) )
|
||||
.join(Students,Students.class_id==ClassInfo.id)
|
||||
.group_by(Students.sex)
|
||||
.all())
|
||||
elif g == "班级中男女人数":
|
||||
q = (db.query(ClassInfo.id,ClassInfo.name,Students.sex,func.count(ClassInfo.id) )
|
||||
.join(Students,Students.class_id==ClassInfo.id)
|
||||
.group_by(ClassInfo.id,ClassInfo.name,Students.sex)
|
||||
.all())
|
||||
else:
|
||||
return False
|
||||
return q
|
||||
|
||||
|
||||
from scores.model.score_model import Score
|
||||
|
||||
def get_score_80(db):
|
||||
q = db.query(Score).filter(Score.score>=80).all()
|
||||
return q
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,9 @@ from pydantic import BaseModel , Field , field_validator
|
||||
from datetime import datetime
|
||||
import enum
|
||||
|
||||
|
||||
class get_student_dao(enum.Enum):
|
||||
get_class = "班级人数"
|
||||
get_sex = "男女人数"
|
||||
get_class_sex = "班级中男女人数"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user