64 lines
2.2 KiB
Python
64 lines
2.2 KiB
Python
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,'删除成功'
|