Files
student_manage_system/class_management/dao/class_management_dao.py
T

97 lines
2.8 KiB
Python

from class_management.model.class_management_model import ClassInfo
from sqlalchemy.orm import Session
#查询
def get_class_dao(c:dict,db:Session) :
q = db.query(ClassInfo).filter(ClassInfo.is_delete == 0)#is_delete=0代表未删除
if c.get('id'):
q = q.filter(ClassInfo.id == c.get('id'))
if c.get('num'):
q = q.filter(ClassInfo.num == c.get('num'))
if c.get('name'):
q = q.filter(ClassInfo.name == c.get('name'))
if c.get('head_teacher_id'):
q = q.filter(ClassInfo.head_teacher_id == c.get('head_teacher_id'))
if c.get('coach_teacher_id'):
q = q.filter(ClassInfo.coach_teacher_id == c.get('coach_teacher_id'))
if c.get('tutor_teacher_id'):
q = q.filter(ClassInfo.tutor_teacher_id == c.get('tutor_teacher_id'))
if c.get('class_start_time'):
q = q.filter(ClassInfo.class_start_time == c.get('class_start_time'))
if c.get('class_end_time'):
q = q.filter(ClassInfo.class_end_time == c.get('class_end_time'))
res = q.all()
if not res:
return []
return[
{'id':i.id
,'num':i.num
,'name':i.name
,'head_teacher_id':i.head_teacher_id
,'coach_teacher_id':i.coach_teacher_id
,'tutor_teacher_id':i.tutor_teacher_id
,'class_start_time':i.class_start_time
,'class_end_time':i.class_end_time
,"is_delete": i.is_delete
,"create_time": i.create_time
,"update_time": i.update_time
} for i in res
]
#新增班级
def add_class_dao(c:dict,db:Session):
try:
exist_class = db.query(ClassInfo)\
.filter(ClassInfo.name == c['name']
,ClassInfo.is_delete == 0)\
.first()
if exist_class:
msg = '班级名称已存在'
print(msg)
return (False,msg)
c1 = ClassInfo(**c)
db.add(c1)
db.commit()
db.refresh(c1)
return (True,None)
except Exception as e:
db.rollback()
err_msg = f'数据库异常:{str(e)}'
print(err_msg)
return (False,err_msg)
#修改
def update_class_dao(cid:int,update_data,db):
try:
rows = db.query(ClassInfo)\
.filter(ClassInfo.id == cid
,ClassInfo.is_delete==0)\
.update(update_data)
db.commit()
return rows
except Exception as e:
db.rollback()
print(f"update_class_dao异常:{e}")
return 0
#删除(逻辑删除)
def delete_class_dao(cid,db):
try:
rows = db.query(ClassInfo)\
.filter(ClassInfo.id == cid,ClassInfo.is_delete==0)\
.update({'is_delete':1})
db.commit()
return rows
except Exception as e:
db.rollback()
print(f"delete_class_dao异常:{e}")
rows = 0