154 lines
5.4 KiB
Python
154 lines
5.4 KiB
Python
from sys import excepthook
|
|
|
|
from Teachers.model.tea_model import Tea,Sub
|
|
from datetime import datetime
|
|
|
|
#增加
|
|
def add_tea_dao(t,db):
|
|
try:
|
|
not_delete = db.query(Tea).filter(Tea.phone ==t.get('phone'),Tea.is_delete == False).first()
|
|
if not_delete:
|
|
print('该老师已存在')
|
|
raise Exception('老师已存在')
|
|
existing = db.query(Tea).filter(Tea.phone == t.get('phone'),Tea.is_delete == True).first()
|
|
if existing:
|
|
for key,value in t.items():
|
|
if hasattr(existing,key) and value is not None and value != '':
|
|
#hasattr(existing,key)统计有没有key,返回值是True或False
|
|
setattr(existing,key,value)
|
|
#将value的值赋值到existing的key中,配合循环,让所有输入的信息都覆盖原信息
|
|
existing.is_delete = False
|
|
db.commit()
|
|
return '恢复修改成功'
|
|
t1 = Tea(**t)
|
|
db.add(t1)
|
|
db.commit()
|
|
return True
|
|
except Exception as e:
|
|
db.rollback()
|
|
print('新增失败原因',e)
|
|
return '新增失败'
|
|
|
|
|
|
#更新
|
|
def update_tea_dao(id, t, db):
|
|
try:
|
|
if not t:
|
|
return 'NO_CHANGE'
|
|
obj = db.query(Tea).filter(Tea.id == id, Tea.is_delete == False).first()
|
|
if not obj:
|
|
return 'NOT_FOUND'
|
|
for k, v in t.items():
|
|
if hasattr(obj, k) and v is not None and v != '':
|
|
setattr(obj, k, v)
|
|
db.commit()
|
|
return 'OK'
|
|
except Exception as e:
|
|
db.rollback()
|
|
print('更新失败原因', repr(e))
|
|
return f'ERROR: {e}'
|
|
|
|
#查询
|
|
def get_tea_dao(t,db):
|
|
query = db.query(Tea).filter(Tea.is_delete == False)
|
|
if t.get('id'):
|
|
query = query.filter(Tea.id == t.get('id') )
|
|
if t.get('name'):
|
|
query = query.filter(Tea.name == t.get('name') )
|
|
if t.get("sex"):
|
|
query = query.filter(Tea.sex == t.get('sex') )
|
|
if t.get('class_id'):
|
|
query = query.filter(Tea.class_id == t.get('class_id') )
|
|
if t.get('subject_id'):
|
|
query = query.filter(Tea.subject_id == t.get('subject_id') )
|
|
if t.get('home_place'):
|
|
query = query.filter(Tea.home_place == t.get('home_place') )
|
|
if t.get('specialty'):
|
|
query = query.filter(Tea.specialty == t.get('specialty') )
|
|
if t.get('start_time'):
|
|
query = query.filter(Tea.start_time == t.get('start_time') )
|
|
if t. get('work_experience'):
|
|
query = query.filter(Tea.work_experience == t.get('work_experience') )
|
|
if t.get('education'):
|
|
query = query.filter(Tea.education == t.get('education') )
|
|
if t.get('collage'):
|
|
query = query.filter(Tea.collage == t.get('collage') )
|
|
if t.get('phone'):
|
|
query = query.filter(Tea.phone == t.get('phone') )
|
|
r = query.all()
|
|
return [{'id':i.id,'name':i.name,'class_id':i.class_id,'sub':i.subject_id,'sex':i.sex,'home_place':i.home_place
|
|
,'specialty':i.specialty,'start_time':i.start_time,'work_experience':i.work_experience
|
|
,'collage':i.collage,'phone':i.phone} for i in r]
|
|
|
|
#删除
|
|
def delete_tea_dao(id,db):
|
|
try:
|
|
row = db.query(Tea).filter(Tea.id == id
|
|
,Tea.is_delete == False
|
|
).update({'is_delete':True,'delete_time':datetime.now()})
|
|
except:
|
|
db.rollback()
|
|
row = 0
|
|
return row
|
|
else:
|
|
db.commit()
|
|
return row
|
|
|
|
def delete_other_tea_dao(t,db):
|
|
if not t:
|
|
return False
|
|
try:
|
|
query1 = db.query(Tea).filter(Tea.is_delete == False)
|
|
if t.get('id'):
|
|
query1 = query1.filter(Tea.id == t.get('id') )
|
|
if t.get('name'):
|
|
query1 = query1.filter(Tea.name == t.get('name') )
|
|
if t.get('sex'):
|
|
query1 = query1.filter(Tea.sex == t.get('sex'))
|
|
if t.get('class_id'):
|
|
query1 = query1.filter(Tea.class_id == t.get('class_id'))
|
|
if t.get('subject_id'):
|
|
query1 = query1.filter(Tea.subject_id == t.get('subject_id'))
|
|
if t.get('home_place'):
|
|
query1 = query1.filter(Tea.home_place == t.get('home_place'))
|
|
if t.get('collage'):
|
|
query1 = query1.filter(Tea.collage == t.get('collage'))
|
|
if t.get('education'):
|
|
query1 = query1.filter(Tea.education == t.get('education'))
|
|
if t.get('work_experience'):
|
|
query1 = query1.filter(Tea.work_experience == t.get('work_experience'))
|
|
if t.get('start_time'):
|
|
query1 = query1.filter(Tea.start_time == t.get('start_time'))
|
|
if t.get('specialty'):
|
|
query1 = query1.filter(Tea.specialty == t.get('specialty'))
|
|
if t.get('phone'):
|
|
query1 = query1.filter(Tea.phone == t.get('phone'))
|
|
row = query1.update({'is_delete':True,'delete_time':datetime.now()})
|
|
db.commit()
|
|
return row
|
|
except Exception as e:
|
|
db.rollback()
|
|
print('删除失败',e)
|
|
return '删除失败'
|
|
|
|
|
|
|
|
def add_subject_dao(t,db):
|
|
try:
|
|
t1 = db.query(Sub).filter(Sub.name == t.get('name')).first()
|
|
if t1:
|
|
return'已存在'
|
|
s1 = Sub(**t)
|
|
db.add(s1)
|
|
db.commit()
|
|
return '[s1]'
|
|
except InterruptedError as e:
|
|
db.rollback()
|
|
print('失败的原因',e)
|
|
return False
|
|
except Exception as e:
|
|
db.rollback()
|
|
return f'{e}'
|
|
|
|
|