Commit Graph
5 Commits
  • 成绩通知:仅在某门课程成绩正式发布后自动发送,按成绩单学生名单通知,不展示具体分数;发布状态与通知同一次提交。
    手动发信:移除“成绩通知”选项,只能发送普通通知,原有角色与范围权限保持不变。
    选课通知:管理员关闭一轮选课时,自动向每位参与学生发送一条汇总通知,包含最终选中课程及候补未成功课程;候补失效、轮次关闭和通知生成保持原子性。
    关闭选课界面会明确提示发送通知,并显示实际通知人数。
  • 全部完成。定时检测系统概览:
    新增组件
    
      ┌────────────────────────────────┬─────────────────────────────────────────────────────────┐
      │              组件              │                          说明                           │
      ├────────────────────────────────┼─────────────────────────────────────────────────────────┤
      │ WarningSchedule 实体           │ 定时配置:学期、星期几、时、分、启用/禁用、上次执行时间 │
      ├────────────────────────────────┼─────────────────────────────────────────────────────────┤
      │ WarningCheckWorker             │ BackgroundService,每分钟轮询一次,匹配到时间就执行检测 │
      ├────────────────────────────────┼─────────────────────────────────────────────────────────┤
      │ GET/PUT /api/warnings/schedule │ 读取/保存定时配置                                       │
      └────────────────────────────────┴─────────────────────────────────────────────────────────┘
    
      页面配置
    
      在学业预警页面顶部新增「定时检测」区域:
      - 启用开关:一键开/关自动检测
      - 星期选择:周一至周日
      - 时分选择:精确到分钟
      - 上次执行时间:自动显示
    
      工作流程
    
      每分钟 Worker 轮询
        → 查询 WarningSchedules 表,匹配当前星期+时+分
        → 检查是否已在本分钟执行过(防止重复)
        → 加载该学期全部启用规则 + 在籍学生
        → 逐条规则、逐个学生检测
        → 已存在的同型预警跳过,新预警写入 + 通知学生/辅导员
        → 更新 LastRunAt
    
      管理员配置"每周一 08:00 自动检测",系统就会在每周一早上 8 点整自动执行一次完整的学业预警检测。