From c6bcfe3789a4fe1760967f2923a4a52030d1426b Mon Sep 17 00:00:00 2001 From: dddd <1163562824@qq.com> Date: Mon, 21 Sep 2026 17:01:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= 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 +++++++++++++++++++++++++++++++++------ 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/api/class_api.py b/api/class_api.py index d5af66f..620ebb0 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='删除失败,该班级信息已不存在或服务器繁忙,请稍后更新!') 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