Commit Graph
13 Commits
  • 已改成“普通排课与实验学时分离”:
    普通课表学时 = 总学时 − 实践学时。
    自动排课、手工排课、课表发布都会阻止把实践学时重复排入。
    全部为实践学时的课程应设为“非排时课程”,再由实验管理安排。
    教学任务和排课页面会显示“常规 / 实践学时”。
    已有教学任务即使仍保存旧周学时,排课时也会按拆分后的课程学时计算。
    无需数据库迁移。
  • 主要变更:
    新增统一缓存封装:[AppCache.cs (line 12)](/E:/jiaowu/src/Jiaowu.Api/Infrastructure/Caching/AppCache.cs:12)
    接入 HybridCache 和可选 Redis:[Program.cs (line 153)](/E:/jiaowu/src/Jiaowu.Api/Program.cs:153)
    缓存学生激活选项、基础数据、公开课表和课表选项。
    个人课表、选课容量、成绩、权限、通知和任务状态保持实时查询。
    基础数据、课程、教师、教学任务、作息、考试和课表发布后自动失效相关缓存。
    新增 /health/cache,Redis 故障不影响 /health/ready。
    Compose 增加 256MB、allkeys-lfu、无持久化的 redis:8.8-alpine 服务;该镜像标签已由 Docker 官方镜像仓库核对。
    更新 [.env.example (line 1)](/E:/jiaowu/.env.example:1) 和 [README.md (line 190)](/E:/jiaowu/README.md:190) 部署说明。
  • 教学任务按 授课周数 × 周学时 = 课程总学时 双端校验,不匹配会显示具体差额并阻止保存;公共课批量生成同样校验。
    排课约束增加课程、教师、学院、授课方式、场地要求、约束状态筛选,并支持批量修改当前筛选结果。
    新增“非排时课程”授课方式:不进入自动排课
    不占星期、节次和教室
    不阻塞课表发布
    允许正常选课
    在班级课表和学生个人课表中单独展示
  • 已修复:
    新增不受 100 条分页限制的课程选项接口。
    培养方案、教学任务全部改用新接口。
    教师课程申报使用独立接口,可查看全部启用课程。
    学院教务仍只能使用公共课和本院专业课,不会越权看到外院专业课。
    实际接口验证:
    校级教务:152 门,其中公共课 29 门。
    学院教务:40 门,其中公共课 29 门,其余为本院专业课。
    教师申报:152 门,其中公共课 29 门。
  • 课程库 Excel 导入导出已完成:
    支持下载标准导入模板。
    导出严格沿用当前关键词、学院、分类、课程性质和状态筛选。
    以课程编码为唯一键:存在则更新,不存在则新增。
    校验学院编码、课程分类、课程性质、学分学时及考核方式。
    整批原子导入,任一行错误则全部不写入,并提示具体行号。
    学院管理员仍只能维护本学院的专业课和实践课,无法借 Excel 越权。
    界面入口沿用现有课程库工具栏样式。
  • 培养方案下放学院维护,学院账号被后端限制在本学院范围;新增按年级、学院、专业联动筛选及维护范围提示。
    课程库实行分级维护:学院只能维护本学院的专业必修、专业选修和实践课程;通识课程可查看、引用但不可修改。校级账号保留全校统筹权限。
    “排课与课表”已从“教学建设”迁移到“教学运行”,原路由保持不变。
    权限规则同时落实在前端和 API,并新增专项测试。
  • 多角色账号按 All > College > Class > Self 自动取最高权限。
    学院管理员限制在所属学院。
    辅导员通过稳定账号 ID 绑定行政班,避免重名串班。
    教师只能访问本人档案、授课课程和所授课学生。
    学生只能访问本人档案及所在班级课程。
    教师/学生角色会自动校验并绑定工号或学号档案。
    超级管理员可在用户页面调整角色、学院、工号/学号,并预览生效后的数据范围。
  • 3