from datetime import datetime from fastapi import APIRouter, HTTPException from fastapi.params import Depends from sqlalchemy.orm import Session from dao.teachers_dao import add_teachers, del_teachers, update_teachers, search_teachers, \ search_teachers_by_id, get_teacher_classes from database import get_db from schemas.req import AddTeacher, DeleteTeacher, UpdateTeacher router=APIRouter(prefix="/teacher",tags=["老师管理"]) @router.post("/teachers") async def create_teacher(tea:AddTeacher,db:Session=Depends(get_db)): date_obj=datetime.strptime(tea.t_created,"%Y-%m-%d") # 将字符串转时间 data={ "t_name":tea.t_name, "t_gender":tea.t_gender, "t_phone":tea.t_phone, "t_subject":tea.t_subject, "t_created":date_obj } res=add_teachers(db, data["t_name"],data["t_gender"],data["t_phone"],data["t_subject"],data["t_created"]) return {"msg":"新增成功","data":res} @router.delete("/{t_id}") def delete_teacher(dele:DeleteTeacher,db:Session=Depends(get_db)): res=del_teachers(db,t_id=dele.t_id,t_name=dele.t_name) if res.get("msg") == "没找到老师信息": raise HTTPException(404, detail="老师不存在") return {"msg": "删除成功"} @router.put("/{t_id}") async def update_tea(t_id:int,update:UpdateTeacher,db:Session=Depends(get_db)): date_obj = datetime.strptime(update.t_created, "%Y-%m-%d") res=update_teachers(db,t_id=t_id, new_name=update.t_name, new_gender=update.t_gender, new_phone=update.t_phone, new_subject=update.t_subject, new_created=date_obj ) if res.get("msg")=="没找到老师信息": raise HTTPException(404,detail="老师不存在") return {"msg":"修改成功","data":res} @router.get("/list") def list_teachers(db:Session=Depends(get_db),page:int=1,size:int=3): res=search_teachers(db,page,size) return res @router.get("/{t_id}") def get_one(t_id:int, db:Session=Depends(get_db)): tea = search_teachers_by_id(db, t_id) if not tea: raise HTTPException(404,detail="老师不存在") return {"data":tea} @router.get("/{t_id}/classes") async def get_classes(t_id:int, db:Session=Depends(get_db)): data=get_teacher_classes(db, t_id) if not data: raise HTTPException(404,detail="老师不存在") return {"data":data}