Files
student_manage_system/stu_jiuye/dao.py
T

111 lines
3.1 KiB
Python
Raw Normal View History

2026-09-21 15:07:50 +08:00
import like
from model import Employments,Address,Company
2026-09-20 21:20:12 +08:00
def add_employment_dao(o,db):
try:
# r = db.query(Employments).filter(Employments.id == o['id'] ).all()
o.pop('id', None)
o1 = Employments( **o)
db.add(o1)
except Exception as e:
print(f'添加失败,{e}')
db.rollback()
return False
else:
db.commit()
return True
def add_company_dao(o,db):
try:
o.pop('id', None)
o1 = Company( **o)
db.add(o1)
except Exception as e:
print(f'添加失败,{e}')
db.rollback()
return False
else:
db.commit()
return True
def add_address_dao(o,db):
try:
o.pop('id', None)
o1 = Address( **o)
db.add(o1)
except Exception as e:
print(f'添加失败,{e}')
db.rollback()
return False
else:
db.commit()
return True
2026-09-20 21:20:12 +08:00
2026-09-21 15:35:45 +08:00
def update_emp_dao(id,update_data,db):
2026-09-20 21:20:12 +08:00
try: # 数据更新是有返回值的,返回的是影响的行数
rows = db.query( Employments ).filter( Employments.id == id ).update( update_data )
2026-09-21 15:07:50 +08:00
except Exception as e:
print(f'更新失败,{e}')
2026-09-20 21:20:12 +08:00
db.rollback()
return False
else:
db.commit()
return rows
2026-09-21 12:22:26 +08:00
def get_emp_dao(
2026-09-20 21:20:12 +08:00
# stuid,
2026-09-21 15:07:50 +08:00
stuname
,compname
2026-09-20 21:20:12 +08:00
,db
, min_salary: int = 0
, max_salary: int | None = None
# ,page
# ,page_size
):
2026-09-21 15:07:50 +08:00
q = db.query(Employments,Company.compname,Address.somewhere)\
.join(Company,Employments.company_id==Company.id)\
2026-09-21 15:07:50 +08:00
.join(Address,Company.address_id==Address.id)\
.filter(Employments.is_deleted == 0)
2026-09-20 21:20:12 +08:00
# if stuid:
# q = q.filter( Employments.id == stuid )
2026-09-21 15:07:50 +08:00
if stuname:
q = q.filter( Employments.stuname == stuname )
if compname:
q=q.filter(Company.compname.like(f'%{compname}%'))
2026-09-20 21:20:12 +08:00
# r = q.offset( (page-1)*page_size ).limit( page_size ).all()
if min_salary is not None:
q = q.filter(Employments.salary >= min_salary)
if max_salary is not None:
q = q.filter(Employments.salary <= max_salary)
r= q.all()
if r:
return [ {"id": i.id,
'stuname':i.stuname,
'stuclass':i.stuclass,
2026-09-21 15:07:50 +08:00
"company_name": compname,
"address":somewhere,
# "company_id": i.company_id,
2026-09-20 21:20:12 +08:00
"salary":i.salary,
2026-09-21 15:07:50 +08:00
# "address_id": i.address_id,
2026-09-20 21:20:12 +08:00
"employment_open_date":i.employment_open_date,
"offer_date":i.offer_date,
"created_date": i.created_date,
"updated_date": i.updated_date,
2026-09-21 15:07:50 +08:00
"is_deleted":i.is_deleted } for i,compname,somewhere in r ]
2026-09-20 21:20:12 +08:00
2026-09-21 15:35:45 +08:00
def delete_emp_dao(id,db):
2026-09-20 21:20:12 +08:00
try: # 删除有返回值,删除的行数
2026-09-21 16:18:59 +08:00
rows = db.query(Employments).filter(Employments.id == id).update( {'is_deleted':1} )
2026-09-21 12:22:26 +08:00
2026-09-20 21:20:12 +08:00
except Exception as e:
print(f'删除失败,{e}')
db.rollback()
rows = 0
else:
db.commit()
return rows