diff --git a/stu_jiuye/CURD_api.py b/stu_jiuye/CURD_api.py index 809767e..0399935 100644 --- a/stu_jiuye/CURD_api.py +++ b/stu_jiuye/CURD_api.py @@ -10,7 +10,7 @@ CURD=APIRouter() @CURD.get('/emp',summary='查询就业信息') def get_stuinfo( #查询学生就业信息 sname:str| None = Query(None,description='学生姓名') - ,class_num:int| None = Query(None,description='班级编号') + ,class_id:int| None = Query(None,description='班级编号') ,employment_company:str|None=Query(None,description='公司名称') ,min_salary:int|None=Query(None,description='最小薪资范围') ,max_salary:int|None=Query(None,description='最大薪资范围') @@ -23,7 +23,7 @@ def get_stuinfo( #查询学生就业信息 ): #查询条件 r=get_emp_dao( #调用函数 sname, - class_num, + class_id, employment_company, min_salary, max_salary, diff --git a/stu_jiuye/dao.py b/stu_jiuye/dao.py index d62840f..9bf5d69 100644 --- a/stu_jiuye/dao.py +++ b/stu_jiuye/dao.py @@ -1,7 +1,7 @@ from stu_jiuye.model import Employments,Address,Company - - +from students.model.students_model import * +from class_management.model.class_management_model import * def add_employment_dao(o,db): #新增就业信息函数 try: # r = db.query(Employments).filter(Employments.id == o['id'] ).all() # @@ -68,7 +68,7 @@ def update_emp_dao(id,update_data,db): #更新数据函数 def get_emp_dao( #获取学生就业信息函数 # stuid, sname - ,class_num + ,class_id ,employment_company ,min_salary ,max_salary @@ -82,7 +82,9 @@ def get_emp_dao( #获取学生 # ,page # ,page_size ): #根据选择条件获取信息 - q = db.query(Employments,Company.employment_company,Address.somewhere)\ + q = db.query(Employments,Company.employment_company,Address.somewhere) \ + .outerjoin(Company, Students.id == Employments.stuid) \ + .outerjoin(Company, ClassInfo.id == Employments.class_id)\ .outerjoin(Company,Employments.company_id==Company.id)\ .outerjoin(Address,Company.address_id==Address.id)\ .filter(Employments.is_deleted == 0) #连接公司表和地址表,筛选未被删除信息 @@ -90,9 +92,9 @@ def get_emp_dao( #获取学生 # q = q.filter( Employments.id == stuid ) if sname: #根据学生姓名筛选 - q = q.filter( Employments.sname == sname ) - if class_num: - q = q.filter(Employments.class_num == class_num) + q = q.filter( Students.name == sname ) + if class_id: + q = q.filter(ClassInfo.id == class_id) if somewhere: q = q.filter(Address.somewhere.like(f'%{somewhere}%')) if employment_company: #根据公司姓名筛选 @@ -115,7 +117,7 @@ def get_emp_dao( #获取学生 if r: return [ {"id": i.id, '学生姓名':i.sname, - '学生班级编号':i.class_num, + '学生班级编号':i.class_id, "公司": employment_company or '未就业', "公司区域":somewhere or '-', # "company_id": i.company_id, @@ -126,7 +128,7 @@ def get_emp_dao( #获取学生 # , "创建时间": i.create_time, # "更新时间": i.update_time, # "是否删除":i.is_deleted - } for i,employment_company,somewhere in r ] #返回信息列表 + } for i,sname,class_id,employment_company,somewhere in r ] #返回信息列表 def delete_emp_dao(id,db): #删除函数 diff --git a/stu_jiuye/model.py b/stu_jiuye/model.py index 7cc131a..3939295 100644 --- a/stu_jiuye/model.py +++ b/stu_jiuye/model.py @@ -1,5 +1,6 @@ from databases import engine_all,Base_all,Session from sqlalchemy import ForeignKey + from stu_jiuye.database import DATETIME,Base,Column,Integer,String,DATE from datetime import datetime @@ -12,10 +13,10 @@ class Employments(Base_all): #学生 , comment='自增主键' ) - num = Column(Integer - , ForeignKey('students.num') + stuid = Column(Integer + , ForeignKey('students.id') ) #学生姓名,冗余字段 - class_num = Column(Integer + class_id = Column(Integer , ForeignKey('classes.id') ) #学生班级,冗余字段 company_id = Column(Integer #公司id,外键匹配公司表 diff --git a/stu_jiuye/request.py b/stu_jiuye/request.py index 789ffbb..4e3833f 100644 --- a/stu_jiuye/request.py +++ b/stu_jiuye/request.py @@ -5,7 +5,7 @@ from pydantic import BaseModel class PostRequest(BaseModel): #学生就业信息请求体模型 # compname: str|None=None sname: str|None=None - class_num: int|None=None + class_id: int|None=None company_id:int|None=None # address_id: int|None=None employment_salary: int|None=None