From b497e6e2a197de3db92bd9824b139e8c07bff187 Mon Sep 17 00:00:00 2001 From: yb <739325183@qq.com> Date: Tue, 22 Sep 2026 18:26:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stu_jiuye/CURD_api.py | 4 ++-- stu_jiuye/dao.py | 20 +++++++++++--------- stu_jiuye/model.py | 27 ++++++++++----------------- stu_jiuye/request.py | 2 +- 4 files changed, 24 insertions(+), 29 deletions(-) diff --git a/stu_jiuye/CURD_api.py b/stu_jiuye/CURD_api.py index 608fd20..2a36ce0 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 5d9e492..ba65920 100644 --- a/stu_jiuye/model.py +++ b/stu_jiuye/model.py @@ -1,4 +1,3 @@ -from databases import engine_all,Base_all,Session from sqlalchemy import ForeignKey from stu_jiuye.database import DATETIME,Base,Column,Integer,String,DATE @@ -6,7 +5,7 @@ from datetime import datetime -class Employments(Base_all): #学生就业信息基类 +class Employments(Base): #学生就业信息基类 __tablename__ = 'Employments' #表名 id = Column(Integer #主键,自增主键 , primary_key=True @@ -14,25 +13,19 @@ class Employments(Base_all): #学生 # , ForeignKey('student.id') , comment='自增主键' ) - sname = Column(String(50) - # , ForeignKey='student.name' - ) #学生姓名,冗余字段 - class_num = Column(Integer - # , ForeignKey='class.id' - ) #学生班级,冗余字段 - # compname=Column(String(50) - # ,nullable=False - # ) + stuid = Column(Integer + , ForeignKey('students.id') + ) #学生姓名,冗余字段 + class_id = Column(Integer + , ForeignKey('classes.id') + ) #学生班级,冗余字段 company_id = Column(Integer #公司id,外键匹配公司表 , ForeignKey('Company.id') , nullable=True ) - # address_id = Column(Integer - # , ForeignKey('Address.id') - # , nullable=False - # ) + employment_salary = Column(Integer, nullable=True) #薪资 employment_open_time = Column(DATE, nullable=True) #就业开放时间 @@ -48,7 +41,7 @@ class Employments(Base_all): #学生 ) is_deleted = Column(Integer, default=0) #是否为删除信息,默认为0 -class Company(Base_all): #公司信息基类 +class Company(Base): #公司信息基类 __tablename__ = 'Company' #表名 id = Column(Integer , primary_key=True @@ -70,7 +63,7 @@ class Company(Base_all): #公司 ) is_deleted = Column(Integer, default=0) -class Address(Base_all): +class Address(Base): __tablename__ = 'Address' id = Column(Integer #地址id,自增主键 , primary_key=True 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