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