增加了num的唯一键,修改了dao和api

This commit is contained in:
2026-09-22 23:01:18 +08:00
committed by geyuan
parent c0880f9a44
commit 65d67e7cf6
6 changed files with 88 additions and 109 deletions
+39 -32
View File
@@ -7,24 +7,52 @@ from class_management.schema.class_management_request import ClassCreate, ClassR
class_api = APIRouter(prefix='/classes')
# ,tags=['班级管理模块']
#新增接口
@class_api.post("",summary='新增班级')
def add_class(cla:ClassCreate,db=Depends(get_db)):
c_dict = cla.model_dump()
r = add_class_dao(c=c_dict,db=db)
if not r:
raise HTTPException(status_code=500,detail='服务器繁忙,请稍后添加!')
return ClassResponse(totals=1,data=c_dict)
res = add_class_dao(c=c_dict,db=db)
if not res:
raise HTTPException(status_code=400,detail='新增失败,班级已存在')
return ClassResponse(detail='新增成功',totals=1,data=c_dict)
@class_api.get('/{id}',summary='根据id查询班级')
def get_one_class(id:int,db=Depends(get_db)):
res = get_class_dao(c={'id':id},db=db)
#更新接口
@class_api.put("/{class_id}",summary='修改班级信息')
def update_class(class_id:int
,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(cid=class_id, update_data=update_dict, db=db)
if not row_count :
raise HTTPException(status_code=404, detail="班级不存在,修改失败")
return ClassResponse(detail="修改成功", data={"id": class_id})
#删除接口
@class_api.delete('/{class_id}',summary='逻辑删除班级')
def remove_class(class_id:int,db=Depends(get_db)):
del_rows = delete_class_dao(cid = class_id,db=db)
if not del_rows:
raise HTTPException(status_code=404, detail="班级不存在,删除失败")
return ClassResponse(detail='删除成功',data={'id':class_id})
#单条查询接口
@class_api.get('/{class_id}',summary='根据id查询班级')
def get_one_class(class_id:int,db=Depends(get_db)):
res = get_class_dao(c={'id':class_id},db=db)
if not res:
raise HTTPException(status_code=404, detail="该班级不存在或已删除")
return ClassResponse(totals=1,data=res[0])
@class_api.get('',summary='多字段查询班级')
#分类查询
@class_api.get('',summary='多字段分页查询班级')
def get_some_classes( num:str|None = Query(None,description='班级编号')
,name:str|None = Query(None,description='班级名称')
,head_teacher_id:int|None = Query(None,description='班主任')
@@ -33,10 +61,9 @@ def get_some_classes( num: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='每页信息条数')
,page_size:int = Query(5,ge=1,le=20,description='每页信息条数')
,db=Depends(get_db)
):
c_dict = {
'num': num,
'name': name,
@@ -52,7 +79,7 @@ def get_some_classes( num:str|None = Query(None,description='班级编号')
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]
@@ -61,23 +88,3 @@ def get_some_classes( num:str|None = Query(None,description='班级编号')
@class_api.put("/{class_id}",summary='修改班级信息')
def update_class(class_id:int
,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(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": id})
@class_api.delete('/{id}',summary='逻辑删除班级')
def remove_class(id:int,db=Depends(get_db)):
del_rows = delete_class_dao(id,db)
if del_rows <= 0:
raise HTTPException(status_code=404, detail="班级不存在,删除失败")
return ClassResponse(detail='删除成功',data={'id':id})