Files

87 lines
2.8 KiB
Python

from sqlalchemy import and_
from sqlalchemy.orm import Session
from scheme import employment_scheme
from scheme.employment_scheme import EmploymentCreate
from model.employment import Employment
from model.student import Student
def update_employment(db:Session,stu_id:int,data:employment_scheme.EmploymentCreate):
obj=get_by_stu_id(db,stu_id)
open_time=data.employment_open_time
offer_time=data.offer_time
if open_time is not None and offer_time is not None :
if offer_time< open_time:
raise ValueError("offer下发时间必须晚于及就业开放时间")
emp_dict={
"stu_id":stu_id,
"name":data.name,
"employment_open_time":open_time,
"offer_time":offer_time,
"company_name":data.company_name,
"salary":data.salary
}
if obj:
obj.stu_id = stu_id
obj.name = data.name
obj.employment_open_time = open_time
obj.offer_time = offer_time
obj.company_name = data.company_name
obj.salary = data.salary
else:
obj = Employment()
obj.stu_id = stu_id
obj.employment_open_time = open_time
obj.offer_time = offer_time
obj.company_name = data.company_name
obj.salary = data.salary
db.add(obj)
db.commit()
db.refresh(obj)
return obj
def get_employment(db:Session,emp_id: int):
employment= (db.query(Employment).filter(Employment.id == emp_id, Employment.is_deleted == False).first())
return employment
def get_by_stu_id(db:Session,stu_id:int):
employment=(db.query(Employment).filter(Employment.stu_id == stu_id, Employment.is_deleted == 0).first())
return employment
def set_employment(db:Session,
stu_id: int = None,
name: str = None,
min_salary: float = None,
max_salary: float = None):
s=db.query(Employment).filter(Employment.is_deleted == False)
if stu_id is not None:
s = s.filter(Employment.stu_id == stu_id)
if name is not None:
s = s.filter(Employment.name.like(f'%{name}%'))
if min_salary is not None:
s = s.filter(Employment.salary >= min_salary)
if max_salary is not None:
s = s.filter(Employment.salary <= max_salary)
return s
def create_employment(db: Session, stu_id: int, data: EmploymentCreate):
obj = Employment()
obj.stu_id = stu_id
obj.name = data.name
obj.employment_open_time = data.employment_open_time
obj.offer_time = data.offer_time
obj.company_name = data.company_name
obj.salary = data.salary
db.add(obj)
db.commit()
return obj
def delete_emp(db:Session,emp_id:int):
obj=get_employment(db,emp_id)
if not obj:
return False
obj.is_deleted=1
db.commit()
return True