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,'删除成功'