test四轮完成的版本,并入了刘盼的老师模块
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from dao.wl_teacher_dao import (
|
||||
create_teacher,
|
||||
get_teacher_id,
|
||||
get_teacher_no,
|
||||
list_teachers,
|
||||
update_teacher,
|
||||
delete_teacher_logic,
|
||||
generate_teacher_no,
|
||||
)
|
||||
from database import get_db
|
||||
from scheme.wl_teacher_scheme import (
|
||||
TeacherCreate,
|
||||
TeacherUpdate,
|
||||
TeacherResponse,
|
||||
)
|
||||
|
||||
router = APIRouter(prefix="/teacher",tags=["老师管理"])
|
||||
|
||||
|
||||
# 查询自动生成的老师工号
|
||||
@router.get("/generate-no")
|
||||
def get_new_teacher_no():
|
||||
"""获取自动生成的教师工号"""
|
||||
new_no = generate_teacher_no()
|
||||
return {"t_no": new_no}
|
||||
|
||||
|
||||
# 查询教师列表
|
||||
@router.get("/", response_model=list[TeacherResponse])
|
||||
def query_list(db: Session = Depends(get_db)):
|
||||
return list_teachers(db)
|
||||
|
||||
|
||||
# 根据工号查询单个教师
|
||||
@router.get("/no/{t_no}", response_model=TeacherResponse)
|
||||
def query_one_by_no(t_no: str, db: Session = Depends(get_db)):
|
||||
teacher = get_teacher_no(db, t_no)
|
||||
if not teacher:
|
||||
raise HTTPException(status_code=404, detail="老师不存在")
|
||||
return teacher
|
||||
|
||||
|
||||
# 根据 id 查询单个教师
|
||||
@router.get("/{t_id}", response_model=TeacherResponse)
|
||||
def query_one_by_id(t_id: int, db: Session = Depends(get_db)):
|
||||
teacher = get_teacher_id(db, t_id)
|
||||
if not teacher:
|
||||
raise HTTPException(status_code=404, detail="老师不存在")
|
||||
return teacher
|
||||
|
||||
|
||||
# 新增教师
|
||||
@router.post("/", response_model=TeacherResponse, status_code=201)
|
||||
def add_teacher(body: TeacherCreate, db: Session = Depends(get_db)):
|
||||
try:
|
||||
return create_teacher(db, body)
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
|
||||
# 修改教师
|
||||
@router.put("/{t_id}", response_model=TeacherResponse)
|
||||
def edit_teacher(
|
||||
t_id: int,
|
||||
body: TeacherUpdate,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
teacher = update_teacher(db, t_id, body)
|
||||
if not teacher:
|
||||
raise HTTPException(status_code=404, detail="老师不存在")
|
||||
return teacher
|
||||
|
||||
# 逻辑删除教师
|
||||
@router.delete("/{t_id}")
|
||||
def remove_teacher(t_id: int, db: Session = Depends(get_db)):
|
||||
return delete_teacher_logic(db, t_id)
|
||||
Reference in New Issue
Block a user