From 01fee950bf4de344baca4d21f140837795225050 Mon Sep 17 00:00:00 2001 From: dddd <1163562824@qq.com> Date: Mon, 21 Sep 2026 17:28:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8F=AD=E7=BA=A7api,schema,dao?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/class_api.py | 26 +++++++++++++++++++++++++- dao/class_dao.py | 39 +++++++++++++++++++++++++++++++++------ schemas/class_schema.py | 2 +- 3 files changed, 59 insertions(+), 8 deletions(-) diff --git a/api/class_api.py b/api/class_api.py index d5af66f..c197fc0 100644 --- a/api/class_api.py +++ b/api/class_api.py @@ -22,4 +22,28 @@ def put_classes(id:int,classes:ClassUpdate,db=Depends(get_db)): if r : return ClassResponse( total=1,data=updates ) else : - raise HTTPException(status_code=500, detail='更新失败,该班级已不存在或服务器繁忙,请稍后更新!') \ No newline at end of file + raise HTTPException(status_code=500, detail='更新失败,该班级已不存在或服务器繁忙,请稍后更新!') + + +@classes_router.get('') +def get_classes( id:int|None = None + , class_no:str|None = None + , class_name:str|None = None + , page:int = 1 + , page_size:int = 5 + , db=Depends(get_db) + ): + t,r = get_classes_dao( id , class_no , class_name , page , page_size ,db ) + if t != 0 : + return ClassResponse( total = t, data = r ) + else : + return ClassResponse( code = 404,detail = '没有符合条件的班级,请检查输入是否有误') + + +@classes_router.delete('/{id}',response_model=ClassResponse) +def delete_classes(id:int,db=Depends(get_db)): + r = update_classes_dao( id , db ) + if r : + return ClassResponse( total=1,data='已成功删除班级信息' ) + else : + raise HTTPException(status_code=500, detail='删除失败,该班级信息已不存在或服务器繁忙,请稍后更新!') \ No newline at end of file diff --git a/dao/class_dao.py b/dao/class_dao.py index e1f93a0..8b9a0f0 100644 --- a/dao/class_dao.py +++ b/dao/class_dao.py @@ -14,7 +14,7 @@ def post_classes_dao( c , db ): def update_classes_dao( class_id , db , updates ): try : - db.query( Classes ).filter( Classes.id==class_id , Classes.is_deleted==0 ) .update( updates ) + db.query( Classes ).filter( Classes.id == class_id , Classes.is_deleted == 0 ) .update( updates ) except : db.rollback() return False @@ -22,8 +22,35 @@ def update_classes_dao( class_id , db , updates ): db.commit() return True -# def get_classes_dao( class_id , class_name , db ): -# try : -# r = db.query( Classes ).filter( Classes.id==class_id , Classes.is_deleted==0 ) .all() -# except : -# db.rollback() \ No newline at end of file +def get_classes_dao( class_id, class_no , class_name , page , page_size , db ): + q = db.query( Classes ).filter( Classes.is_deleted == 0 ) + if class_id : + q = q.filter( Classes.id == class_id ) + if class_no : + q = q.filter( Classes.class_no == class_no ) + if class_name : + q = q.filter( Classes.class_name == class_name ) + total = q.count() + r = q.offset( ( page-1 ) * page_size ).limit( page_size ).all() + return total,[ { 'class_id':i.id + , 'class_no':i.class_no + , 'class_name':i.class_name + , 'start_date':i.start_date + , 'end_date':i.end_date + , 'created_at':i.created_at + , 'update_at':i.update_at + } + for i in r + ] + + + +def delete_classes_dao( class_id , db ): + try : + db.query( Classes ).filter( Classes.id == class_id , Classes.is_deleted == 0 ) .update( Classes.is_deleted == 1 ) + except : + db.rollback() + return False + else : + db.commit() + return True diff --git a/schemas/class_schema.py b/schemas/class_schema.py index 05029b6..e6a7f72 100644 --- a/schemas/class_schema.py +++ b/schemas/class_schema.py @@ -21,4 +21,4 @@ class ClassResponse( BaseModel ): code:int = 200 detail:str = '执行成功' total:int = 0 - data:str|dict|list|tuple + data:str|dict|list|tuple \ No newline at end of file