统计分析所有测试通过。

This commit is contained in:
Orangeeee
2026-09-23 04:27:31 +08:00
parent 1ff0782399
commit 5dc0c68ca2
3 changed files with 68 additions and 36 deletions
+24 -18
View File
@@ -30,11 +30,11 @@ def get_students(headcount:get_student_dao
raise HTTPException(status_code=404, detail="没有找到符合条件的学生")
@statcalc_api.get("/statcalc/scores"
,summary='80分以上成绩学生信息查询'
,description=f'查询每次考试成绩都在80分以上的学生的编号,姓名和成绩。'
,summary='优秀成绩学生信息查询'
,description=f'查询所有科目考试成绩都在80分以上的学生。'
)
def get_students(db=Depends(get_db)):
result = get_score_80( db=db )
def get_excellent(db=Depends(get_db)):
result = get_excellent_students( db=db )
if result:
return result
raise HTTPException(status_code=404, detail="没有找到符合条件的学生")
@@ -58,34 +58,40 @@ def get_class_avg(db=Depends(get_db)):
from stu_jiuye.model import *
from students.model.students_model import Students
from class_management.model.class_management_model import ClassInfo
@statcalc_api.get('/statcalc/top',summary='就业薪资Top5')
def salarytop5(db=Depends(get_db)):
q = db.query(Employments,Company.employment_company) \
.join(Company, Employments.company_id == Company.id) \
.filter(Employments.is_deleted == 0)\
.order_by(Employments.employment_salary.desc())\
.limit(5) .all()
return [{'学生姓名':i.stuid,'学生班级编号':i.class_id,'就业时间':i.offer_recived_time,'公司':employment_company} for i,employment_company in q]
q = db.query(Employments, Company.employment_company, Students.name.label('sname'), ClassInfo.name.label('class_num')) \
.join(Company, Employments.company_id == Company.id) \
.join(Students, Employments.stuid == Students.id) \
.join(ClassInfo, Employments.class_id == ClassInfo.id) \
.filter(Employments.is_deleted == 0) \
.order_by(Employments.employment_salary.desc()) \
.limit(5).all()
# q是4元组 (Employments对象, company_name, sname, class_num)
return [{'学生姓名': row[2], '学生班级编号': row[3], '就业时间': str(row[0].offer_recived_time) if row[0].offer_recived_time else None, '公司': row[1]} for row in q]
@statcalc_api.get('/statcalc/job',summary='学生就业时长')
def worktime(db=Depends(get_db)):
q = db.query(Employments)\
.filter(Employments.is_deleted==0)\
.all()
q = db.query(Employments, Students.name.label('sname')) \
.join(Students, Employments.stuid == Students.id) \
.filter(Employments.is_deleted == 0) \
.all()
return [
{'学生姓名':i.sname
,'就业时常':f'{i.offer_recived_time-i.employment_open_time}'
if i.offer_recived_time and i.employment_open_time else '暂无数据'} for i in q
{'学生姓名': row[1],
'就业时常':f'{row[0].offer_recived_time-row[0].employment_open_time}'
if row[0].offer_recived_time and row[0].employment_open_time else '暂无数据'} for row in q
]
@statcalc_api.get('/statcalc/avgjob',summary='学生平均就业时长')
def avgworktime(db=Depends(get_db)):
q = db.query(Employments)\
q = db.query(Employments) \
.filter(Employments.employment_open_time.isnot(None)
,Employments.offer_recived_time.isnot(None)
,Employments.is_deleted==0)\
,Employments.is_deleted==0) \
.all()
if not q:
return {'平均就业时常': '暂无数据'}