Files
1/api/wl_emp_api.py
2026-09-21 20:16:09 +08:00

57 lines
1.7 KiB
Python

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": "删除成功"}