from fastapi import HTTPException from model.all_model import Employment_info, ClassManagement, Student_Model from util.database import get_db from schema.employment_schema import EmploymentRequest def get_employment_dao(stu_id,class_id,db): 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 is not None: q = q.filter(Employment_info.stu_id == stu_id) if class_id is not None: q = q.filter(ClassManagement.class_id == class_id) r = q.all() if r: return [{'emp_id':i.emp_id ,'stu_id': i.stu_id ,'stu_name':i.stu_name ,'class_id':i.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_employment_dao(e:EmploymentRequest,db): try: d = e.model_dump() e1 = Employment_info(**d) db.add(e1) except: db.rollback() raise HTTPException(status_code=404, detail='信息不存在!') else: db.commit() return e1