From 793f778531e2f796ab7ae6b69c16b7fe6c25dbb0 Mon Sep 17 00:00:00 2001 From: aiapple Date: Mon, 14 Sep 2026 17:16:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E4=BA=86=E5=B8=A6=E7=8F=AD=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=9F=A5=E8=AF=A2=EF=BC=8C=E6=9F=A5=E8=AF=A2=E8=80=81?= =?UTF-8?q?=E5=B8=88list=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/wl_teacher_api.py | 21 +++++++++++++++++++-- dao/wl_teacher_dao.py | 25 +++++++++++++++++++------ model/wl_teacher_model.py | 2 +- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/api/wl_teacher_api.py b/api/wl_teacher_api.py index 8fa1286..a47b804 100644 --- a/api/wl_teacher_api.py +++ b/api/wl_teacher_api.py @@ -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) \ No newline at end of file + 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} \ No newline at end of file diff --git a/dao/wl_teacher_dao.py b/dao/wl_teacher_dao.py index 574bcc3..afdd658 100644 --- a/dao/wl_teacher_dao.py +++ b/dao/wl_teacher_dao.py @@ -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()) @@ -62,4 +69,10 @@ def delete_teacher_logic(db: Session, t_id: int): return None db_obj.is_deleted = 1 db.commit() - return db_obj \ No newline at end of file + 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 \ No newline at end of file diff --git a/model/wl_teacher_model.py b/model/wl_teacher_model.py index 59ce9c4..16fd0e5 100644 --- a/model/wl_teacher_model.py +++ b/model/wl_teacher_model.py @@ -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)