Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d8d14fec1 | ||
|
|
6c0df6526e | ||
|
|
dbc3cd851f |
@@ -62,14 +62,14 @@ 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)):
|
||||
def salarytop5(num:int,db=Depends(get_db)):
|
||||
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()
|
||||
.limit(num).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]
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ def get_students( stu:StudentsQuery = Depends()
|
||||
f'时间格式:YYYY-MM-DD\n'
|
||||
f'班级ID和顾问ID必须已经存在才可以绑定'
|
||||
)
|
||||
def add_student( stu:StudentsResponse = Body(...)
|
||||
def add_student( stu:StudentsResponse =Depends()
|
||||
, db=Depends(get_db)
|
||||
):
|
||||
s_dict = stu.model_dump(exclude_unset=True)
|
||||
@@ -43,7 +43,7 @@ def add_student( stu:StudentsResponse = Body(...)
|
||||
,description=f'请输入需要更新信息的学生ID,学生手机号不可重复,填写即更新,为空即不更新。\n '
|
||||
f'时间格式:YYYY-MM-DD'
|
||||
,response_model=StudentsUpdate )
|
||||
def get_students( stu:StudentsUpdate = Body(...)
|
||||
def update_students( stu:StudentsUpdate =Depends()
|
||||
, db=Depends(get_db)
|
||||
):
|
||||
s_dict = stu.model_dump(exclude_unset=True)
|
||||
@@ -54,10 +54,10 @@ def get_students( stu:StudentsUpdate = Body(...)
|
||||
|
||||
@s_api.delete("/students"
|
||||
,summary='删除学生资料'
|
||||
,description=f'输入需要删除的学生信息,删除条件任选,但不可全为空,工资筛选能删除大于等于输入工资的所有人。\n '
|
||||
,description=f'输入需要删除的学生信息,删除条件任选,但不可全为空。\n '
|
||||
f'时间格式:YYYY-MM-DD'
|
||||
,response_model=list[StudentsDelete] ) # 逻辑删除/软删除
|
||||
def delete_students( stu:StudentsDelete = Body(...)
|
||||
def delete_students( stu:StudentsDelete =Depends()
|
||||
, db=Depends(get_db)
|
||||
):
|
||||
s_dict = stu.model_dump(exclude_unset=True)
|
||||
|
||||
@@ -8,6 +8,12 @@ class SexEnum(str , enum.Enum):
|
||||
m = '男'
|
||||
f = '女'
|
||||
|
||||
class EducationEnum(str , enum.Enum):
|
||||
z = '专科'
|
||||
ben = '本科'
|
||||
s = '硕士'
|
||||
bo = '博士'
|
||||
|
||||
# 查询
|
||||
class StudentsQuery(BaseModel):
|
||||
id:int | None = None
|
||||
@@ -20,18 +26,14 @@ class StudentsQuery(BaseModel):
|
||||
specialty:str | None = None
|
||||
enrollment_time:datetime | None = None
|
||||
graduate_time:datetime | None = None
|
||||
education:str | None = None
|
||||
education:EducationEnum | None = None
|
||||
# 外键字段
|
||||
class_id:int | None = None
|
||||
advisor_id:int | None = None
|
||||
# 额外字段
|
||||
phone:str | None = None
|
||||
|
||||
class EducationEnum(str , enum.Enum):
|
||||
z = '专科'
|
||||
ben = '本科'
|
||||
s = '硕士'
|
||||
bo = '博士'
|
||||
|
||||
|
||||
# 新建
|
||||
class StudentsResponse(BaseModel):
|
||||
@@ -47,7 +49,7 @@ class StudentsResponse(BaseModel):
|
||||
education:EducationEnum
|
||||
# 外键字段
|
||||
class_id:int = Field(..., gt=0, description='班级ID')
|
||||
advisor_id:int | None = None
|
||||
advisor_id:int = Field(..., gt=0, description='班级ID')
|
||||
# 额外字段
|
||||
phone:str = Field(...,min_length=11,max_length=11,description='学生手机号')
|
||||
|
||||
@@ -63,7 +65,7 @@ class StudentsUpdate(BaseModel):
|
||||
specialty:str | None = None
|
||||
enrollment_time:datetime | None = None
|
||||
graduate_time:datetime | None = None
|
||||
education:str | None = None
|
||||
education:EducationEnum | None = None
|
||||
# 外键字段
|
||||
class_id:int | None = None
|
||||
advisor_id:int | None = None
|
||||
@@ -82,7 +84,7 @@ class StudentsDelete(BaseModel):
|
||||
specialty:str | None = None
|
||||
enrollment_time:datetime | None = None
|
||||
graduate_time:datetime | None = None
|
||||
education:str | None = None
|
||||
education:EducationEnum | None = None
|
||||
# 外键字段
|
||||
class_id:int | None = None
|
||||
advisor_id:int | None = None
|
||||
|
||||
Reference in New Issue
Block a user