2026-09-13 22:46:47 +08:00
|
|
|
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,
|
2026-09-14 12:12:29 +08:00
|
|
|
db: Session = Depends(get_db)
|
2026-09-13 22:46:47 +08:00
|
|
|
):
|
|
|
|
|
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": "删除成功"}
|
2026-09-14 12:12:29 +08:00
|
|
|
|