from sqlalchemy.orm import Session from model.class_model import Classes from schema.class_schema import ClassAdd #新增班级 # 定义新增班级的函数,需要两个参数:db数据库通道、class_add前端传来的班级数据 # db:Session代表数据库会话对象,是程序和 MySQL 数据库交互的通道,所有增删改查操作都需要使用它 def create_class(db: Session, class_add: ClassAdd): # 新建一个班级对象 new_class = Classes() # 新的班级名称,赋值给这个新对象 new_class.class_name = class_add.class_name # 开学时间 new_class.start_time = class_add.start_time # 班主任 new_class.head_teacher = class_add.head_teacher # 任课老师 new_class.teacher = class_add.teacher db.add(new_class) # 提交写入数据库 db.commit() # 刷新 db.refresh(new_class) return new_class #根据id查询单个班级 def get_class_by_cid(db: Session, cid: int): # 查询:找到对应cid,并且is_del=1(状态正常、没有逻辑删除) .first() 查询,拿到满足条件的第一条数据;找不到就返回 None result = db.query(Classes).filter(Classes.cid == cid, Classes.is_del == 1).first() return result #根据班级名称查询 def get_class_by_name(db: Session,name:str): # 根据班级名称查询,只查询有效班级is_del ==1,用于新增时判断班级名称是否重复 result = db.query(Classes).filter(Classes.class_name == name, Classes.is_del == 1).first() return result # 删除班级(物理删除) def delete_class(db: Session, cid: int): # 根据班级编号,去数据库找到对应的班级 class_obj = db.query(Classes).filter(Classes.cid == cid).first() # 如果没找到这个班级,返回False if not class_obj: return False # 从数据库里删掉这条班级数据 db.delete(class_obj) # 提交操作 db.commit() # 删除成功,返回True return True # 修改班级信息 def update_class(db: Session, cid: int, class_add: ClassAdd): # 根据班级编号,查询数据库找到对应的班级 class_obj = db.query(Classes).filter(Classes.cid == cid).first() # 如果没有找到这个班级,直接返回空 if not class_obj: return None # 把前端传过来的新信息,覆盖原来班级对象里面的数据 class_obj.class_name = class_add.class_name class_obj.start_time = class_add.start_time class_obj.head_teacher = class_add.head_teacher class_obj.teacher = class_add.teacher # 提交,把修改保存到数据库 db.commit() # 返回修改完成后的班级信息 return class_obj