diff --git a/model/dao/score_dao.py b/model/dao/score_dao.py deleted file mode 100644 index 09510ab..0000000 --- a/model/dao/score_dao.py +++ /dev/null @@ -1,116 +0,0 @@ -# dao/score_dao.py -from sqlalchemy.orm import Session -from model.score import Score -from model.student import Student - - - # 查 - -# 查一个学生所有成绩 - -def get_score(db: Session, student_id: int): - return db.query(Score).filter( - Score.student_id == student_id, - Score.is_deleted == 0, - ).order_by(Score.exam_seq.asc()).all() - - - -# 查某学生的某次成绩 -def get_one_score(db: Session, student_id: int, exam_seq: int): - - return db.query(Score).filter( - Score.student_id == student_id, - Score.exam_seq == exam_seq, - Score.is_deleted == 0, - ).first() - - - -# 查不及格的 -def get_warning(db: Session): - return db.query(Score).filter( - Score.is_warning == 1, - Score.is_deleted == 0, - ).all() - - - - - - -# 录 - - -# 录信息 -def add_score(db: Session, student_id: int, exam_seq: int, score: float): - - stu = db.query(Student).filter(Student.id == student_id).first() - if not stu: - return None, "学生不存在" - - - exists = get_one_score(db, student_id, exam_seq) - if exists: - return None, "该学生这次成绩已录过" - - - - new_score = Score( - student_id=student_id, - exam_seq=exam_seq, - score=score, - is_warning=1 if score < 60 else 0, - is_deleted=0, - ) - db.add(new_score) - db.commit() - db.refresh(new_score) - return new_score, None - - - - - -# 改 - - # 改成绩 - -def update_score(db: Session, student_id: int, exam_seq: int, new_score: float): - - - obj = get_one_score(db, student_id, exam_seq) - if not obj: - return None, "成绩不存在或已删除" - - obj.score = new_score - - # 如果不及格 预警重置 - obj.is_warning = 1 if new_score < 60 else 0 - - db.commit() - db.refresh(obj) - return obj, None - - - - - -# 逻辑删除 - - -def delete_score(db: Session, student_id: int, exam_seq: int): - # 把删除的学生0改成1 - - obj = get_one_score(db, student_id, exam_seq) - - if not obj: - return None, "成绩不存在或已删除" - - - # 0 → 1 - obj.is_deleted = 1 - db.commit() - return obj, None - - diff --git a/model/score.py b/model/score.py deleted file mode 100644 index e633961..0000000 --- a/model/score.py +++ /dev/null @@ -1,24 +0,0 @@ - -# model/score.py -from sqlalchemy import Column, Integer, Float, ForeignKey, DateTime -from sqlalchemy.orm import relationship -from datetime import datetime -from database import Base - - -class Score(Base): - __tablename__ = "score" - - id = Column(Integer, primary_key=True, autoincrement=True) # 主键 - student_id = Column(Integer, ForeignKey("student.id"), nullable=False) #外键 - exam_seq = Column(Integer, nullable=False) - score = Column(Float, nullable=False) - is_warning = Column(Integer, default=0) #低分预警 0正常 1不及格 - is_deleted = Column(Integer, default=0) #是否被逻辑删除 - - create_time = Column(DateTime, default=datetime.now) - student = relationship("Student", back_populates="scores") - - - -