from fastapi import APIRouter,HTTPException,Depends from sqlalchemy.orm import Session from dao.class_dao import ClassDao from database import get_db from scheme.classes import ClassUpdate, ClassCreate, ClassResponse, ClassListResponse router = APIRouter() #新增 @router.post("/class/",response_model=ClassResponse) async def create_class(data:ClassCreate,db: Session = Depends(get_db)): if ClassDao.get_class(db, data.cid): raise HTTPException(status_code=400, detail="班级编号已存在") return ClassDao.create_class_list(db, data) # 条件查询班级 @router.get("/class/get_list/",response_model=ClassListResponse) async def get_class_list( cid :int = None, class_name: str = None, headteacher:str = None, page: int = 1, size: int = 5, db: Session = Depends(get_db) ): total, items = ClassDao.get_class_list(db, cid=cid, class_name=class_name,headteacher=headteacher, page=page, size=size) return {"total": total, "items": items} # 查询单个班级 # @router.put("/class",response_model=ClassResponse) # async def list_class(cid:int,db: Session = Depends(get_db)): # cls = ClassDao.get_class(db,cid) # if not cls: # raise HTTPException(status_code=404, detail="班级不存在") # return cls # 更新 @router.put("/class/{cid}",response_model=ClassResponse) async def update_class(cid:int,data:ClassUpdate,db: Session = Depends(get_db)): cls = ClassDao.update_class(db, cid, data) if not cls: raise HTTPException(status_code=404, detail="班级不存在") return cls #删除 @router.delete("/class/{cid}") async def delete_class(cid:int,db: Session = Depends(get_db)): c = ClassDao.delete_class(db, cid) if not c: raise HTTPException(status_code=404, detail="班级不存在") return None