Files
student_manage_system/Teachers/dao/tea_dao.py
T

154 lines
5.4 KiB
Python
Raw Normal View History

2026-09-22 20:43:33 +08:00
from sys import excepthook
from Teachers.model.tea_model import Tea,Sub
2026-09-21 16:53:08 +08:00
from datetime import datetime
2026-09-21 16:28:55 +08:00
#增加
def add_tea_dao(t,db):
try:
2026-09-22 19:14:04 +08:00
not_delete = db.query(Tea).filter(Tea.phone ==t.get('phone'),Tea.is_delete == False).first()
if not_delete:
print('该老师已存在')
2026-09-23 20:30:51 +08:00
raise Exception('该老师已存在,不可重复添加')
2026-09-22 19:14:04 +08:00
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 != '':
2026-09-23 12:23:41 +08:00
#hasattr(existing,key)统计有没有key,返回值是True或False
2026-09-22 19:14:04 +08:00
setattr(existing,key,value)
2026-09-23 12:23:41 +08:00
#将value的值赋值到existing的key中,配合循环,让所有输入的信息都覆盖原信息
2026-09-22 19:14:04 +08:00
existing.is_delete = False
db.commit()
2026-09-23 20:30:51 +08:00
return '新增成功-修订数据'
2026-09-21 16:28:55 +08:00
t1 = Tea(**t)
db.add(t1)
db.commit()
2026-09-23 20:30:51 +08:00
return '新增成功'
2026-09-22 19:14:04 +08:00
except Exception as e:
db.rollback()
print('新增失败原因',e)
return '新增失败'
2026-09-21 16:28:55 +08:00
#更新
2026-09-23 00:50:59 +08:00
def update_tea_dao(id, t, db):
2026-09-21 16:28:55 +08:00
try:
2026-09-23 00:50:59 +08:00
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():
2026-09-23 14:05:49 +08:00
if hasattr(obj, k) and v is not None and v != '':
2026-09-23 00:50:59 +08:00
setattr(obj, k, v)
2026-09-21 16:28:55 +08:00
db.commit()
2026-09-23 00:50:59 +08:00
return 'OK'
except Exception as e:
db.rollback()
print('更新失败原因', repr(e))
return f'ERROR: {e}'
2026-09-21 16:28:55 +08:00
#查询
def get_tea_dao(t,db):
query = db.query(Tea).filter(Tea.is_delete == False)
2026-09-21 21:48:36 +08:00
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') )
2026-09-21 19:36:29 +08:00
if t.get('class_id'):
2026-09-22 11:00:36 +08:00
query = query.filter(Tea.class_id == t.get('class_id') )
2026-09-22 22:55:17 +08:00
if t.get('subject_id'):
query = query.filter(Tea.subject_id == t.get('subject_id') )
2026-09-21 21:48:36 +08:00
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') )
2026-09-22 11:00:36 +08:00
if t.get('collage'):
query = query.filter(Tea.collage == t.get('collage') )
2026-09-22 19:14:04 +08:00
if t.get('phone'):
query = query.filter(Tea.phone == t.get('phone') )
2026-09-21 16:28:55 +08:00
r = query.all()
2026-09-22 22:55:17 +08:00
return [{'id':i.id,'name':i.name,'class_id':i.class_id,'sub':i.subject_id,'sex':i.sex,'home_place':i.home_place
2026-09-22 19:14:04 +08:00
,'specialty':i.specialty,'start_time':i.start_time,'work_experience':i.work_experience
,'collage':i.collage,'phone':i.phone} for i in r]
2026-09-21 16:28:55 +08:00
#删除
def delete_tea_dao(id,db):
try:
2026-09-21 21:48:36 +08:00
row = db.query(Tea).filter(Tea.id == id
2026-09-21 16:53:08 +08:00
,Tea.is_delete == False
).update({'is_delete':True,'delete_time':datetime.now()})
2026-09-21 16:28:55 +08:00
except:
db.rollback()
row = 0
2026-09-22 11:00:36 +08:00
return row
2026-09-21 16:28:55 +08:00
else:
db.commit()
return row
2026-09-22 13:54:00 +08:00
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'))
2026-09-22 22:55:17 +08:00
if t.get('subject_id'):
query1 = query1.filter(Tea.subject_id == t.get('subject_id'))
2026-09-22 13:54:00 +08:00
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'))
2026-09-22 19:14:04 +08:00
if t.get('phone'):
query1 = query1.filter(Tea.phone == t.get('phone'))
2026-09-22 13:54:00 +08:00
row = query1.update({'is_delete':True,'delete_time':datetime.now()})
db.commit()
return row
except Exception as e:
db.rollback()
print('删除失败',e)
return '删除失败'
2026-09-21 16:28:55 +08:00
2026-09-22 14:36:10 +08:00
2026-09-22 20:43:33 +08:00
def add_subject_dao(t,db):
try:
t1 = db.query(Sub).filter(Sub.name == t.get('name')).first()
if t1:
2026-09-22 22:32:44 +08:00
return'已存在'
2026-09-22 20:43:33 +08:00
s1 = Sub(**t)
db.add(s1)
db.commit()
2026-09-22 22:32:44 +08:00
return '[s1]'
except InterruptedError as e:
2026-09-22 20:43:33 +08:00
db.rollback()
print('失败的原因',e)
return False
2026-09-22 22:32:44 +08:00
except Exception as e:
db.rollback()
return f'{e}'
2026-09-22 20:43:33 +08:00