61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|