from fastapi import HTTPException from model.all_model import Employment_info, ClassManagement, Student_Model def get_emp_dao(stu_id=None,class_id=None,company_name=None,min_salary=None,max_salary=None,db=None): try: q = db.query(Employment_info).\ join(Student_Model,Employment_info.stu_id == Student_Model.stu_id).\ join(ClassManagement,Student_Model.class_id == ClassManagement.class_id).\ filter(Employment_info.delete_status == 0).\ filter(Student_Model.delete_status == 0).\ filter(ClassManagement.delete_status == 0) if stu_id: q = q.filter(Employment_info.stu_id == stu_id) if class_id: q = q.filter(ClassManagement.class_id == class_id) if company_name: q = q.filter(Employment_info.company_name == company_name) if min_salary: q = q.filter(Employment_info.salary >= min_salary) if max_salary: q = q.filter(Employment_info.salary <= max_salary) r = q.all() if r: return [{'emp_id':i.emp_id ,'stu_id': i.stu_id ,'stu_name':i.Student_Model.stu_name ,'class_id':i.Student_Model.class_id ,'email':i.email ,'employment_opening_date':i.employment_opening_date ,'offer_issuance_date':i.offer_issuance_date ,'company_name':i.company_name ,'company_address':i.company_address ,'salary':i.salary }for i in r ] except: raise HTTPException(status_code=404,detail='信息不存在!') def add_emp_dao(o,db): try: e1 = Employment_info(**o) db.add(e1) db.commit() return e1 except Exception as e: db.rollback() raise HTTPException(status_code=500, detail=f'新增就业信息失败: {e}') def check_stu_dao(stu_id,db): stu = db.query(Student_Model).filter(Student_Model.stu_id == stu_id,Student_Model.delete_status == 0).first() return stu def update_emp_dao(stu_id,o,db): try: rows = db.query(Employment_info).filter(Employment_info.stu_id == stu_id,Employment_info.delete_status == 0).first() db.commit() return rows except: db.rollback() raise HTTPException(status_code=404,detail='该就业记录已存在') def delete_emp_dao(stu_id,db): try: rows = db.query(Employment_info).filter(Employment_info.stu_id == stu_id,Employment_info.delete_status == 0).delete() db.commit() except: db.rollback() rows = 0 finally: return rows