from typing import Optional from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from dao.wl_emp_dao import EmpDAO from database import get_db from scheme.wl_emp_scheme import EmpCreate, EmpOut, EmpUpdate router = APIRouter(prefix="/emp", tags=["就业管理"]) # 查询就业列表 @router.get("/", response_model=list[EmpOut]) def query_list( skip: int = 0, limit: int = 100, company_name: Optional[str] = None, db: Session = Depends(get_db), ): return EmpDAO.list_emps(db, skip, limit, company_name) # 根据学号查询就业信息 @router.get("/{stu_no}", response_model=EmpOut) def query_one(stu_no: str, db: Session = Depends(get_db)): emp = EmpDAO.get_emp(db, stu_no) if not emp: raise HTTPException(status_code=404, detail="就业信息不存在") return emp # 新增就业信息 @router.post("/", response_model=EmpOut, status_code=201) def add_emp(body: EmpCreate, db: Session = Depends(get_db)): try: return EmpDAO.create_emp(db, body) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) # 修改就业信息 @router.put("/{stu_no}", response_model=EmpOut) def edit_emp(stu_no: str, body: EmpUpdate, db: Session = Depends(get_db)): emp = EmpDAO.update_emp(db, stu_no, body) if not emp: raise HTTPException(status_code=404, detail="就业信息不存在") return emp # 逻辑删除就业信息 @router.delete("/{stu_no}") def remove_emp(stu_no: str, db: Session = Depends(get_db)): if not EmpDAO.delete_emp(db, stu_no): raise HTTPException(status_code=404, detail="就业信息不存在") return {"code": 200, "msg": "删除成功"}