aaa
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# api/teacher.py
|
||||
# 本文件定义老师模块的所有 API 路由(Controller 层)
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException,Query
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from database import get_db
|
||||
from dao.teacher_dao import TeacherDAO
|
||||
from scheme.teachers import TeacherCreate, TeacherUpdate, TeacherResponse, TeacherListResponse
|
||||
|
||||
# 创建路由器
|
||||
router = APIRouter(prefix="/teachers", tags=["老师管理"])
|
||||
|
||||
#查询老师列表(支持按姓名模糊查询、是否班主任)
|
||||
@router.get("/list/", response_model=TeacherListResponse)
|
||||
async def get_teacher_list(
|
||||
teacher_name: str = Query(None,),
|
||||
is_headteacher: int = Query(default=None,ge=0,le=1),
|
||||
page: int = 1,
|
||||
size: int = 10,
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
total, items = TeacherDAO.get_list(db, teacher_name=teacher_name,
|
||||
is_headteacher=is_headteacher,
|
||||
page=page, size=size)
|
||||
return {"total": total, "items": items}
|
||||
|
||||
#按老师编号查单个老师
|
||||
@router.get("/{teacher_id}", response_model=TeacherResponse)
|
||||
async def get_teacher_by_id(teacher_id: int, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.get_by_id(db, teacher_id)
|
||||
|
||||
# 新增老师
|
||||
@router.post("/create", response_model=TeacherCreate)
|
||||
async def create_teacher(data: TeacherCreate, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.create(db, data)
|
||||
|
||||
# 更新老师信息
|
||||
@router.put("/update/{teacher_id}", response_model=TeacherResponse)
|
||||
async def update_teacher(teacher_id: int, data: TeacherUpdate, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.update(db, teacher_id, data)
|
||||
|
||||
# 逻辑删除老师
|
||||
@router.post("/delete/{teacher_id}", response_model=TeacherResponse)
|
||||
async def delete_teacher(teacher_id: int, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.delete(db, teacher_id)
|
||||
Reference in New Issue
Block a user