142 lines
3.9 KiB
Python
142 lines
3.9 KiB
Python
from datetime import date
|
|||
|
|
|
||
|
|
from sqlalchemy.orm import sessionmaker, declarative_base, Session, Query, selectinload
|
||
|
|
|
||
|
|
from model.teachers import Teacher
|
||
|
|
|
||
|
|
#添加方法
|
||
|
|
def add_teachers(db:Session ,t_name:str, t_gender:str, t_phone:str, t_subject:str,t_created:date):
|
||
|
|
t1=Teacher(
|
||
|
|
t_name=t_name,
|
||
|
|
t_gender=t_gender,
|
||
|
|
t_phone=t_phone,
|
||
|
|
t_subject=t_subject,
|
||
|
|
t_created=t_created,
|
||
|
|
t_delete=False
|
||
|
|
)
|
||
|
|
try:
|
||
|
|
db.add(t1)
|
||
|
|
db.commit()
|
||
|
|
db.refresh(t1)
|
||
|
|
return {"msg":"添加成功"}
|
||
|
|
except Exception as e:
|
||
|
|
print(e)
|
||
|
|
return {"msg":"删除成功"}
|
||
|
|
|
||
|
|
|
||
|
|
#删除方法
|
||
|
|
def del_teachers(db:Session,t_id:int,t_name:str):
|
||
|
|
teacher=db.query(Teacher).filter(Teacher.t_id==t_id,
|
||
|
|
Teacher.t_name==t_name,
|
||
|
|
Teacher.t_delete==False
|
||
|
|
).first()
|
||
|
|
if not teacher:
|
||
|
|
return {"msg":"没找到老师信息"}
|
||
|
|
#逻辑删除
|
||
|
|
try:
|
||
|
|
teacher.t_delete=True
|
||
|
|
db.commit()
|
||
|
|
return {"msg":"删除成功"}
|
||
|
|
except Exception as e:
|
||
|
|
print("删除异常",e)
|
||
|
|
return {"msg":"删除失败"}
|
||
|
|
|
||
|
|
#修改老师
|
||
|
|
def update_teachers(db:Session,t_id:int,new_name,new_gender,new_phone,new_subject,new_created):
|
||
|
|
teacher=db.query(Teacher).filter(Teacher.t_id==t_id,Teacher.t_delete==False).first()
|
||
|
|
if not teacher:
|
||
|
|
return {"msg":"没找到老师信息"}
|
||
|
|
teacher.t_name=new_name
|
||
|
|
teacher.t_gender=new_gender
|
||
|
|
teacher.t_phone=new_phone
|
||
|
|
teacher.t_subject=new_subject
|
||
|
|
teacher.t_created=new_created
|
||
|
|
try:
|
||
|
|
db.commit()
|
||
|
|
db.refresh(teacher)
|
||
|
|
return {"msg":"修改成功"}
|
||
|
|
except Exception as e:
|
||
|
|
print(e)
|
||
|
|
return {"msg": "修改失败"}
|
||
|
|
|
||
|
|
# 查询所有老师信息
|
||
|
|
# 分页
|
||
|
|
def search_teachers(db:Session,page:int,size:int):
|
||
|
|
start = (page - 1) * size
|
||
|
|
teachers=db.query(Teacher.t_id,
|
||
|
|
Teacher.t_name,
|
||
|
|
Teacher.t_gender,
|
||
|
|
Teacher.t_phone,
|
||
|
|
Teacher.t_subject,
|
||
|
|
Teacher.t_created).filter(Teacher.t_delete==False)
|
||
|
|
teach=teachers.offset(start).limit(size).all() #跳过多少行,查询当前页数据
|
||
|
|
total=teachers.count()
|
||
|
|
l1=[]
|
||
|
|
#将查出来的值存入列表
|
||
|
|
for i in teach:
|
||
|
|
bb={
|
||
|
|
"t_id":i[0],
|
||
|
|
"t_name":i[1],
|
||
|
|
"t_gender":i[2],
|
||
|
|
"t_phone":i[3],
|
||
|
|
"t_subject":i[4],
|
||
|
|
"t_created":i[5].strftime("%Y-%m-%d") # 将字符串转时间
|
||
|
|
}
|
||
|
|
l1.append(bb)
|
||
|
|
return {
|
||
|
|
"total":total,
|
||
|
|
"page":page,
|
||
|
|
"size":size,
|
||
|
|
"list":l1
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#查询单个老师信息
|
||
|
|
#根据id查
|
||
|
|
def search_teachers_by_id(db:Session,t_id:int):
|
||
|
|
teachers=db.query(Teacher).filter(Teacher.t_id==t_id,Teacher.t_delete==False).first()
|
||
|
|
if not teachers:
|
||
|
|
return None
|
||
|
|
l2={
|
||
|
|
"t_id":teachers.t_id,
|
||
|
|
"t_name":teachers.t_name,
|
||
|
|
"t_gender":teachers.t_gender,
|
||
|
|
"t_phone":teachers.t_phone,
|
||
|
|
"t_subject":teachers.t_subject,
|
||
|
|
"t_created":teachers.t_created.strftime("%Y-%m-%d")
|
||
|
|
}
|
||
|
|
return l2
|
||
|
|
|
||
|
|
#查看带班信息
|
||
|
|
def get_teacher_classes(db:Session,t_id:int):
|
||
|
|
teacher=(db.query(Teacher).filter(Teacher.t_id==t_id,Teacher.t_delete==False)
|
||
|
|
.options(selectinload(Teacher.classes)).first())
|
||
|
|
if not teacher:
|
||
|
|
return None
|
||
|
|
|
||
|
|
l3=[]
|
||
|
|
for i in teacher.classes:
|
||
|
|
l3.append({
|
||
|
|
"class_id":i.class_id,
|
||
|
|
"class_name":i.class_name,
|
||
|
|
"create_time":i.create_time.strftime("%Y-%m-%d"),
|
||
|
|
})
|
||
|
|
|
||
|
|
res={
|
||
|
|
"tid":teacher.t_id,
|
||
|
|
"t_id": teacher.t_id,
|
||
|
|
"t_name": teacher.t_name,
|
||
|
|
"t_gender": teacher.t_gender,
|
||
|
|
"t_phone": teacher.t_phone,
|
||
|
|
"t_subject": teacher.t_subject,
|
||
|
|
"t_created": teacher.t_created.strftime("%Y-%m-%d"),
|
||
|
|
"class_list": l3
|
||
|
|
}
|
||
|
|
return res
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|