From 9862e8f23780e265094ac98ea3a826066da1a318 Mon Sep 17 00:00:00 2001 From: wolin_ck666_999 Date: Tue, 22 Sep 2026 13:13:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=E3=80=8Cdao=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dao/teaDao.py | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 dao/teaDao.py diff --git a/dao/teaDao.py b/dao/teaDao.py new file mode 100644 index 0000000..15ae598 --- /dev/null +++ b/dao/teaDao.py @@ -0,0 +1,63 @@ +from sqlalchemy.exc import SQLAlchemyError +from fastapi import HTTPException +from model.teaModel import Teacher + +def get_teachers_limit_dao(p,n,db): + if p == 0 and n == 0: + r = db.query(Teacher).all() + else: + if p < 1: + p = 1 + r = db.query(Teacher).offset((p-1)*n).limit(n).all() + return [ {'id':i.id,'t_name':i.t_name,'t_sex':i.t_sex,'t_age':i.t_age} for i in r] + + +def get_teachers_name_dao(name,db): + try: + r = db.query(Teacher).filter(Teacher.t_name==name).all() + except SQLAlchemyError as e: + db.rollback() + raise HTTPException(status_code=500, detail=f'查询失败:{str(e)}') + else: + return [ {'id':i.id,'t_name':i.t_name,'t_sex':i.t_sex,'t_age':i.t_age} for i in r] + +def insert_teachers_dao(req,db): + try: + exist = db.query(Teacher).filter(Teacher.t_phone==req['t_phone']).first() + if exist: + raise HTTPException(status_code=400,detail='该手机号码已存在,不可重复使用') + t = Teacher(**req) + db.add(t) + except SQLAlchemyError as e: + db.rollback() + raise HTTPException(status_code=500,detail=f'添加失败:{str(e)}') + else: + db.commit() + return True,'添加成功' + +def update_teachers_dao(req,db,t_id): + try: + db.query(Teacher).filter(Teacher.id == t_id).update(req) + except SQLAlchemyError as e: + db.rollback() + raise HTTPException(status_code=500,detail=f'更新失败:{str(e)}') + else: + db.commit() + return True,'更新成功' + +def delete_teachers_dao(t_id,db): + try: + r = db.query(Teacher).filter(Teacher.id == t_id).all() + if not r: + raise HTTPException(status_code=404,detail='记录不存在') + for i in r: + if i.is_delete == 0: + db.query(Teacher).filter(Teacher.id == i.id).update({'is_delete':True}) + else: + raise HTTPException(status_code=400,detail='该记录已删除,不可重复删除') + except SQLAlchemyError as e: + db.rollback() + raise HTTPException(status_code=500,detail=f'删除失败:{str(e)}') + else: + db.commit() + return True,'删除成功'