This commit is contained in:
Lys
2026-09-21 22:13:04 +08:00
commit 1e302df9ed
63 changed files with 1268 additions and 0 deletions
+85
View File
@@ -0,0 +1,85 @@
from sqlalchemy import and_
from sqlalchemy.orm import Session
from model.classes import Class # ← 必须:操作 ORM 模型
from scheme.classes import ClassCreate, ClassUpdate # ← 必须:类型注解
class ClassDao:
# 新增
@staticmethod
def create_class_list(db:Session,data:ClassCreate):
cls = Class(
cid=data.cid,
class_name=data.class_name,
start_time=data.start_time,
headteacher=data.headteacher,
flag=1
)
db.add(cls)
db.commit()
db.refresh(cls)
return cls
# 查询,查询单个
@staticmethod
def get_class(db:Session,class_id:int):
return db.query(Class).filter(and_(Class.cid==class_id,Class.flag==1)).first()
# def get_all_class(db:Session):
# return db.query(Class).filter(Class.flag==1).all()
@staticmethod
def get_class_list(db:Session,cid:None,class_name:None,headteacher:None,page=1, size=10):
query = db.query(Class).filter(Class.flag == 1)
if cid:
query=query.filter(Class.cid == cid)
if class_name:
query=query.filter(Class.class_name == class_name)
if headteacher:
query=query.filter(Class.headteacher == headteacher)
total = query.count()
items=query.order_by(Class.cid).offset((page-1)*size).limit(size).all()
return total, items
# 查询全部
@staticmethod
def get_all_class(db:Session):
return db.query(Class).filter(Class.flag==1).all()
# 查询学生
@staticmethod
def get_class_student(db:Session,class_id:int):
cls = ClassDao.get_class(db,class_id)
if not cls:
return None
return {"id": Class.student.sid, "name": Class.student.name, "age": Class.student.age, "gender": Class.student.gender}
#查询老师
@staticmethod
def get_class_teacher(db:Session,class_id:int):
cls = ClassDao.get_class(db,class_id)
if not cls:
return None
return {"id":Class.teachers.id,"name":Class.teachers.name}
# 更新
@staticmethod
def update_class(db:Session,class_id:int,data:ClassUpdate):
cls = ClassDao.get_class(db,class_id)
if not cls:
return None
if cls.class_name:
cls.class_name = data.class_name
if cls.headteacher:
cls.headteacher = data.headteacher
db.commit()
return cls
# 删除
@staticmethod
def delete_class(db:Session,cid:int):
cls = ClassDao.get_class(db,cid)
if not cls:
return False
cls.flag=0
db.commit()
db.refresh(cls)
return cls