import datetime from fastapi import APIRouter,Depends,HTTPException from dao import * from stu_jiuye.request import PostRequest, EmpResponse, AddRequest,AddResponse,CompRequest,CompResponse from database import get_db CURD=APIRouter() @CURD.get('/emp',tags=['查询就业信息']) def get_stuinfo( stuname:str| None = None ,compname:str|None=None ,min_salary:int=0 ,max_salary:int|None=None ,db=Depends(get_db) ): r=get_emp_dao( stuname, compname, db, min_salary, max_salary) if r: return r raise HTTPException(status_code=404, detail='名单不存在!') @CURD.post('/emp',response_model=EmpResponse,tags=['新增就业信息']) def add_stuinfo( p:PostRequest,db=Depends(get_db) ): d=p.model_dump() r=add_employment_dao(o=d,db=db) if not r: raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!') return EmpResponse(totals=1, data=d) @CURD.post('/emp/company',response_model=CompResponse,tags=['新增公司信息']) def add_company(c:CompRequest,db=Depends(get_db)): d = c.model_dump() r = add_company_dao(o=d, db=db) if not r: raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!') return CompResponse(totals=1, data=d) @CURD.post('/emp/company/address',response_model=AddResponse,tags=['新增公司所在区域']) def add_address( add:AddRequest,db=Depends(get_db) ): d = add.model_dump() r = add_address_dao(o=d, db=db) if not r: raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!') return AddResponse(totals=1, data=d) @CURD.put('/emp',tags=['更改就业信息']) def updata_stuinfo(up:PostRequest ,id:int ,db=Depends(get_db) ): d = up.model_dump(exclude_unset=True) r = update_emp_dao(id=id, update_data=d, db=db) if not r: raise HTTPException(status_code=500, detail='没有更新!') return {'code': 200, 'totals': r, 'detail': '更新成功'} @CURD.delete('/emp',tags=['删除就业信息']) def delete_stuinfo(id:int ,db=Depends(get_db)): rows = delete_emp_dao(id, db) if not rows: raise HTTPException(status_code=500, detail='没有删除!') return {'code': 200, 'totals': rows, 'detail': '删除成功'}