加了带班信息查询,查询老师list表优化

This commit is contained in:
aiapple
2026-09-14 17:16:41 +08:00
parent c1862f5279
commit 793f778531
3 changed files with 39 additions and 9 deletions
+19 -2
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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)