103 lines
2.8 KiB
Python
103 lines
2.8 KiB
Python
from model import Employments,Address,Company
|
|
|
|
|
|
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
|
|
|
|
|
|
def update_orders_dao(id,update_data,db):
|
|
try: # 数据更新是有返回值的,返回的是影响的行数
|
|
rows = db.query( Employments ).filter( Employments.id == id ).update( update_data )
|
|
except:
|
|
db.rollback()
|
|
return False
|
|
else:
|
|
db.commit()
|
|
return rows
|
|
|
|
def get_emp_dao(
|
|
# stuid,
|
|
name
|
|
,db
|
|
, min_salary: int = 0
|
|
, max_salary: int | None = None
|
|
# ,page
|
|
# ,page_size
|
|
):
|
|
q = db.query(Employments)\
|
|
.join(Company,Employments.company_id==Company.id)\
|
|
.join(Address,Company.address_id==Address.id)
|
|
# if stuid:
|
|
# q = q.filter( Employments.id == stuid )
|
|
|
|
if name:
|
|
q = q.filter( Employments.stuname == name )
|
|
# 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,
|
|
"company_name": i.compname,
|
|
"company_id": i.company_id,
|
|
"salary":i.salary,
|
|
"address_id": i.address_id,
|
|
"employment_open_date":i.employment_open_date,
|
|
"offer_date":i.offer_date,
|
|
"created_date": i.created_date,
|
|
"updated_date": i.updated_date,
|
|
"is_deleted":i.is_deleted } for i in r ]
|
|
|
|
|
|
def delete_orders_dao(id,db):
|
|
try: # 删除有返回值,删除的行数
|
|
rows = db.query(Employments).filter(Employments.id == id).update( is_deleted=1 )
|
|
|
|
except Exception as e:
|
|
print(f'删除失败,{e}')
|
|
db.rollback()
|
|
rows = 0
|
|
else:
|
|
db.commit()
|
|
return rows |