加了带班信息查询,查询老师list表优化
This commit is contained in:
+19
-2
@@ -8,7 +8,7 @@ from dao.wl_teacher_dao import (
|
||||
list_teachers,
|
||||
update_teacher,
|
||||
delete_teacher_logic,
|
||||
generate_teacher_no,
|
||||
generate_teacher_no, get_teacher_class_info,
|
||||
)
|
||||
from database import get_db
|
||||
from scheme.wl_teacher_scheme import (
|
||||
@@ -75,4 +75,21 @@ def edit_teacher(
|
||||
# 逻辑删除教师
|
||||
@router.delete("/{t_id}")
|
||||
def remove_teacher(t_id: int, db: Session = Depends(get_db)):
|
||||
return delete_teacher_logic(db, t_id)
|
||||
teacher = delete_teacher_logic(db, t_id)
|
||||
if not teacher:
|
||||
raise HTTPException(status_code=404, detail="老师不存在")
|
||||
return {"msg": "删除成功"}
|
||||
|
||||
|
||||
# 查询老师所带的班级ID
|
||||
@router.get("/{t_id}/class")
|
||||
def get_class_by_t_id(t_id: int, db: Session = Depends(get_db)):
|
||||
"""
|
||||
根据老师ID查询其负责的班级ID
|
||||
"""
|
||||
class_id = get_teacher_class_info(db, t_id)
|
||||
if class_id is None:
|
||||
# 如果返回 None,说明老师不存在或者没有分配班级
|
||||
raise HTTPException(status_code=404, detail="老师不存在或未分配班级")
|
||||
|
||||
return {"class_id": class_id}
|
||||
+18
-5
@@ -11,16 +11,23 @@ def generate_teacher_no():
|
||||
seq = random.randint(1, 999)
|
||||
return f"T{date_str}{seq:03d}"
|
||||
|
||||
def list_teachers(db: Session):
|
||||
"""查询全部未删除教师列表"""
|
||||
return db.query(Teacher).filter(Teacher.is_deleted == 0).order_by(Teacher.t_id.desc()).all()
|
||||
def list_teachers(db: Session, page: int = 1, page_size: int = 10):
|
||||
skip = (page - 1) * page_size
|
||||
return (db.query(Teacher)
|
||||
.filter(Teacher.is_deleted == 0)
|
||||
.order_by(Teacher.t_id.desc())
|
||||
.offset(skip)
|
||||
.limit(page_size)
|
||||
.all())
|
||||
|
||||
def get_teacher_id(db: Session, t_id: int):
|
||||
return (db.query(Teacher).filter(Teacher.t_id == t_id, Teacher.is_deleted == 0)
|
||||
return (db.query(Teacher)
|
||||
.filter(Teacher.t_id == t_id, Teacher.is_deleted == 0)
|
||||
.first() )
|
||||
|
||||
def get_teacher_no(db:Session, t_no: str):
|
||||
return(db.query(Teacher).filter(Teacher.t_no == t_no,Teacher.is_deleted == 0)
|
||||
return(db.query(Teacher).
|
||||
filter(Teacher.t_no == t_no,Teacher.is_deleted == 0)
|
||||
.first())
|
||||
|
||||
|
||||
@@ -63,3 +70,9 @@ def delete_teacher_logic(db: Session, t_id: int):
|
||||
db_obj.is_deleted = 1
|
||||
db.commit()
|
||||
return db_obj
|
||||
|
||||
def get_teacher_class_info(db: Session, t_id: int):
|
||||
teacher = get_teacher_id(db, t_id)
|
||||
if teacher:
|
||||
return teacher.class_id
|
||||
return None
|
||||
@@ -9,7 +9,7 @@ class Teacher(Base):
|
||||
t_phone = Column(String(20), unique=True, nullable=True)
|
||||
t_email = Column(String(20), unique=False)
|
||||
#创建老师时必须指定一个存在的班级
|
||||
class_id = Column(Integer, ForeignKey("class_info.class_id"), nullable=False)
|
||||
class_id = Column(Integer, ForeignKey("class_info.class_id"), nullable=True)
|
||||
role = Column(String(50), nullable=False)
|
||||
is_deleted = Column(Integer, default=0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user