增加多字段查询
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
from fastapi import APIRouter,Depends,HTTPException
|
||||
from datetime import date
|
||||
|
||||
from fastapi import APIRouter,Depends,HTTPException,Query
|
||||
from dao.class_management_dao import add_class_dao, update_class_dao, get_class_dao, delete_class_dao
|
||||
from database import get_db
|
||||
from schema.class_management_request import ClassCreate, ClassResponse, ClassUpdate
|
||||
@@ -23,16 +25,46 @@ def get_one_class(class_id:int,db=Depends(get_db)):
|
||||
raise HTTPException(status_code=404, detail="该班级不存在或已删除")
|
||||
return ClassResponse(data=res)
|
||||
|
||||
@class_api.get('/classes',summary='多字段查询班级')
|
||||
def get_some_classes(class_name:str|None = Query(None,description='班级名称')
|
||||
,class_teacher:str|None = Query(None,description='班主任')
|
||||
,class_lecturer:str|None = Query(None,description='授课老师')
|
||||
,class_start_time:date|None = Query(None, description="开班日期,格式YYYY‑MM‑DD")
|
||||
,class_end_time: date|None = Query(None, description="结课日期,格式YYYY‑MM‑DD")
|
||||
,page:int = Query(1,ge=1,description='页码,从1开始')
|
||||
,page_size:int = Query(5,ge=1,le=50,description='每页信息条数')
|
||||
,db=Depends(get_db)
|
||||
):
|
||||
c_dict={'class_name':class_name
|
||||
,'class_teacher':class_teacher
|
||||
,'class_lecturer':class_lecturer
|
||||
,'class_start_time':class_start_time
|
||||
,'class_end_time':class_end_time
|
||||
}
|
||||
c_dict={k:v for k,v in c_dict.items() if v is not None}#过滤掉值为None的key
|
||||
|
||||
res = get_class_dao(c=c_dict,db=db)
|
||||
total = len(res)
|
||||
|
||||
#内存分页
|
||||
start_index = (page-1)*page_size
|
||||
page_data = res[start_index:start_index + page_size]
|
||||
|
||||
page_response = ClassResponse(data=page_data,totals=total)
|
||||
return page_response
|
||||
|
||||
|
||||
|
||||
|
||||
@class_api.put("/classes/{class_id}",summary='修改班级信息')
|
||||
def update_class(update_info:ClassUpdate,cid:int,db=Depends(get_db)):
|
||||
def update_class(class_id,update_info:ClassUpdate,db=Depends(get_db)):
|
||||
update_dict=update_info.model_dump(exclude_unset=True)
|
||||
if not update_dict:
|
||||
raise HTTPException(status_code=400, detail="没有传入要修改的字段")
|
||||
row_count = update_class_dao(cname=cid, update_data=update_dict, db=db)
|
||||
row_count = update_class_dao(cid=class_id, update_data=update_dict, db=db)
|
||||
if row_count <= 0:
|
||||
raise HTTPException(status_code=404, detail="班级不存在,修改失败")
|
||||
return ClassResponse(detail="修改成功", data={"class_id": cid})
|
||||
return ClassResponse(detail="修改成功", data={"class_id": class_id})
|
||||
|
||||
|
||||
@class_api.delete('/classes/{class_id}',summary='逻辑删除班级')
|
||||
|
||||
Reference in New Issue
Block a user