Commit Graph

  • 10b51eb08a 2.3.0-rc2 master biss 2026-08-04 10:48:08 +08:00
  • 6735a6d3fc sso优化 biss 2026-08-03 20:30:32 +08:00
  • 5ec62a03ca 滑动续期与自动刷新: Web:访问令牌 10 分钟;活跃时自动轮换刷新令牌;连续无操作 30 分钟后清除登录并跳转登录页。 App:会话窗口 3 天;打开 App、恢复前台或请求接口时自动刷新并重新顺延 3 天。 普通登录和 SSO 使用同一策略。 刷新令牌只以 SHA-256 摘要入库,每次刷新都会轮换,旧令牌无法再次使用;退出登录会吊销刷新令牌。 网络临时故障不会误清登录状态,多标签页同时刷新也做了竞争处理。 biss 2026-08-03 19:20:39 +08:00
  • 6bee29a351 添加sso biss 2026-08-03 15:57:40 +08:00
  • fb812268d7 修正版本号 v2.2.0 biss 2026-08-02 18:05:45 +08:00
  • 019b3fc827 v2.2.0 biss 2026-08-02 17:29:33 +08:00
  • f7c73247d6 版本号 biss 2026-08-02 17:28:44 +08:00
  • 8cb9b4f57b 班级查询按“考试场次”合并,显示为“分散至 N 个考场”,不再生成大量重复卡片。[后端实现 (line 416)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Timetables/TimetableDataService.cs:416) 学生登录后只显示本人座位对应的考场,同时修复混排考场可能带出其他课程的问题。[筛选逻辑 (line 561)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Timetables/TimetableDataService.cs:561) 多考场卡片提示学生登录查看本人考场及监考教师。[前端展示 (line 1122)](E:/jiaowu/web/src/views/TimetableView.vue:1122) 教室课表、监考教师课表仍按具体考场显示,不受合并影响。 已增加班级合并和学生精准考场回归测试。[测试 (line 183)](E:/jiaowu/tests/Jiaowu.Api.Tests/ExamArrangementServiceTests.cs:183) biss 2026-08-02 17:09:26 +08:00
  • f0f59419d5 实验课现在直接进入普通排课流程,不再要求先到实验排课模块逐个安排。 普通“添加排课”新增“理论课 / 实验课”类型。 自动排课会分别补足理论学时和实验学时。 实验课只能安排到实验室、实训室、机房、语音室等场地。 发布课表时分别校验理论、实验学时;任一未排足都不能发布。 普通课表及 Excel 导出会标注“实验课”。 历史排课保持不变,迁移后默认识别为理论课;后续新建或修订版本时再补充实验课。 biss 2026-08-02 16:54:41 +08:00
  • 9d525826ce 支持为同一学期、同一课程的多个教学任务批量创建相同实验项目。 新增批量排课表,可为多个实验项目分别设置日期、节次、实验室和容量。 批量排课采用原子事务:任一项目发生教室、教师、班级或课表冲突,整批不写入。 已发布项目批量新增场次时,继续按原逻辑通知学生。 后端继续执行管理范围、教学任务状态、开放日期和容量校验。 页面在 390px 手机宽度下无横向溢出。 biss 2026-08-01 16:08:03 +08:00
  • 551f1143b7 超级管理员现在可在“组织与权限 → 运维与审计 → 系统性能”中直接查看: 请求量、5xx 比例、HTTP/数据库 P95 请求速率与延迟趋势 最慢接口排行 慢查询与数据库查询排行 Grafana 原始调用链入口 biss 2026-07-31 09:34:31 +08:00
  • ca7148ab61 接入 OpenTelemetry 1.17.0,覆盖 HTTP、HttpClient、.NET Runtime 和数据库链路。 新增 EF Core 数据库拦截器,记录耗时、失败数、慢查询数、TraceId、查询标签和 SQL 哈希;默认不记录完整 SQL及参数。 未配置 OTLP Collector 时不启动 SDK,避免无收益的性能开销。 为课表的作息、课程、灵活课程、考试、实验等六类查询增加稳定标签。 增加可配置的 500ms 慢查询阈值,以及生产环境变量示例。 README 补充 MySQL 慢查询与 EXPLAIN ANALYZE 操作规范。 biss 2026-07-31 08:24:27 +08:00
  • a369b4fe02 课表查询中最明显的性能优化。 将混合考场查询从“加载整个学期的考场、座位、教师、班级后在内存筛选”,改为在数据库中按班级、教师或教室直接筛选。 改为窄字段投影,避免创建大量 EF 实体和关系对象。 添加查询标签,便于后续在 MySQL 慢查询和链路追踪中定位。 保留现有 HybridCache/可选 Redis 缓存体系,无需新增依赖或数据库迁移。 增加教室、无关教室、监考教师三种回归场景。 biss 2026-07-31 07:56:30 +08:00
  • 7bcfa1a7a4 修复统计图 v2.1.0 biss 2026-07-29 11:50:15 +08:00
  • 66622ca207 智能开屏:显示“姓名+早上/中午/下午/晚上问候”,支持春节、端午、中秋、国庆等节日文案,可点击跳过:[SmartLaunchScreen.vue](E:/jiaowu/web/src/components/SmartLaunchScreen.vue) 长按 App 图标:提供“我的课表、考试安排、课堂签到、消息中心”四个入口。签到会按学生/教师角色自动分流:[shortcuts.xml](E:/jiaowu/web/native/android/app/src/main/res/xml/shortcuts.xml) 桌面小组件:新增“今日课表”和“近期考试”,展示最近同步的数据,点击可进入对应页面:[WidgetRenderer.java](E:/jiaowu/web/native/android/app/src/main/java/edu/mingxu/jiaowu/WidgetRenderer.java) 安全处理:组件只缓存课程和考试摘要,不保存登录令牌;退出账号会清空组件,隔天未刷新时不会继续展示旧的“今日课表”。 原生模板已纳入版本管理,每次 npm run cap:sync 会自动恢复到被忽略的 Android 工程:[configure-capacitor.mjs](E:/jiaowu/web/scripts/configure-capacitor.mjs) biss 2026-07-29 11:11:37 +08:00
  • 93997ea8b1 APP热更新 biss 2026-07-29 10:34:33 +08:00
  • 692b521453 已改成“普通排课与实验学时分离”: 普通课表学时 = 总学时 − 实践学时。 自动排课、手工排课、课表发布都会阻止把实践学时重复排入。 全部为实践学时的课程应设为“非排时课程”,再由实验管理安排。 教学任务和排课页面会显示“常规 / 实践学时”。 已有教学任务即使仍保存旧周学时,排课时也会按拆分后的课程学时计算。 无需数据库迁移。 biss 2026-07-29 09:57:49 +08:00
  • 356c410788 修复实验排课 biss 2026-07-29 09:40:11 +08:00
  • 8f56548b54 已按“实验成绩独立管理”完成修改。 每个实验项目独立建成绩单,支持评分项、参与状态、补做次数、安全违规、报告地址和教师评语。 流程为:录入 → 学院审核 → 教务发布;学生只能查看已发布成绩。 自主预约实验支持同步有效预约名单,已评分记录不会被误删。 课程成绩可将已发布实验成绩汇总为快照导入指定分项;导入后锁定,不能手工篡改。 实验项目成绩不完整时,对应课程分项保持空白,不按 0 分处理。 一级“实验管理”菜单下增加“项目与场次”“实验成绩”;学生端增加“实验安排”“实验成绩”。 已生成 MySQL 正式迁移及 SQLite 开发迁移,尚未操作生产数据库。 界面采用“实验项目 → 独立评分 → 审核发布”工作台设计。 biss 2026-07-28 22:21:18 +08:00
  • 51c3b81e27 实验课表 biss 2026-07-28 21:25:21 +08:00
  • ec979f640d 实验预约 biss 2026-07-28 21:04:18 +08:00
  • 865378dbdf 修复课表 biss 2026-07-28 20:08:12 +08:00
  • 2dae303cf1 update biss 2026-07-28 15:41:28 +08:00
  • a61dacff1a 考试按实际日期、周次和节次融入周/日/总视图,并用橙色“考试”卡片区分。 即使固定课表尚未发布,只要考试已发布,也能正常显示。 考试计划、考场、监考教师和日期都会显示。 Excel 导出同步包含考试安排。 biss 2026-07-28 14:16:24 +08:00
  • 9a75589282 app biss 2026-07-28 13:59:16 +08:00
  • be842cc1d5 修复统计报表 biss 2026-07-28 11:13:23 +08:00
  • 7e14b22296 变更摘要:考试安排注入课表 biss 2026-07-28 08:27:22 +08:00
  • 3ec0f117d3 参照现有的 ExamArrangementJob / SchedulePublishJob 后台任务模式,将发布改为通过 RabbitMQ 队列异步执行,拆分查询消除笛卡尔积。 biss 2026-07-28 08:10:22 +08:00
  • b2de605680 取消笛卡尔积运算 biss 2026-07-27 22:23:08 +08:00
  • 52e4a8a5be 1. 教室容量按 1/2 计算 biss 2026-07-27 22:00:35 +08:00
  • 9e0d4062a4 自动编排接口现在立即返回 202 + jobId,不会再等待 15 秒导致 Axios 超时。 任务参数、状态和结果持久化到 MySQL。 接入现有 outbox;配置 BackgroundJobs__Transport=RabbitMq 时使用 RabbitMQ 队列 exam.arrangement,否则使用 InMemory worker。 服务重启后可恢复未完成任务。 前端显示排队/执行/完成/失败状态,刷新页面可恢复正在执行的任务。 编排期间禁止修改、删除或发布对应计划。 补考原有“一键生成”保留,并与编排任务互斥。 运维后台增加“考试与补考编排”失败任务筛选。 biss 2026-07-27 21:40:14 +08:00
  • 9d9f54a3b0 自动排考 biss 2026-07-27 21:27:00 +08:00
  • c3e8a42641 优化考试排考 biss 2026-07-27 19:31:19 +08:00
  • 64decdab7e 草稿计划支持选择场次后“批量移除已选场次”,一次最多 100 个。 批量操作会完整校验:包含不存在、其他计划或已发布计划的场次时整批拒绝,不会部分删除。[ExamsController.cs (line 384)](E:/jiaowu/src/Jiaowu.Api/Controllers/ExamsController.cs:384) 草稿计划新增“删除草稿”按钮,删除前显示计划名称及场次数量确认。[ExamsView.vue (line 292)](E:/jiaowu/web/src/views/ExamsView.vue:292) 删除草稿计划会级联清理场次和监考关联;已发布计划不能删除。[ExamsController.cs (line 81)](E:/jiaowu/src/Jiaowu.Api/Controllers/ExamsController.cs:81) 删除后会自动切换到其他计划;没有剩余计划时正确显示空状态。 新增草稿、已发布、跨计划混选及级联删除测试。[ExamDeletionControllerTests.cs (line 17)](E:/jiaowu/tests/Jiaowu.Api.Tests/ExamDeletionControllerTests.cs:17) biss 2026-07-27 18:31:52 +08:00
  • fb2acc6751 已修改完成,同时解决了“考生名单都是 0 人”的根因。 考生范围统一为“行政班关联学生 + 已选课学生”,并自动去重;考场分配、人数显示、冲突检测、学生考试安排均使用同一口径。[TeachingTaskRosterQuery.cs (line 40)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Teaching/TeachingTaskRosterQuery.cs:40) 新增考场签名单 Excel 导出接口。[ExamsController.cs (line 568)](E:/jiaowu/src/Jiaowu.Api/Controllers/ExamsController.cs:568) 考试计划页面新增“导出考场签名单”按钮。[ExamsView.vue (line 255)](E:/jiaowu/web/src/views/ExamsView.vue:255) 工作簿包含“考场汇总”以及每个考试场次独立的 A4 签到表,字段包括座位号、学号、姓名、行政班、考生签名和备注。[ExamSignInWorkbookExporter.cs (line 12)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Exams/ExamSignInWorkbookExporter.cs:12) 未分配考场或监考教师时,也能导出并显示“待分配”。 biss 2026-07-27 18:24:32 +08:00
  • 2e422acd19 修复MySQL问题 biss 2026-07-27 17:27:17 +08:00
  • 514689c7e8 v2.0.0 v2.0.0 biss 2026-07-27 17:12:03 +08:00
  • 2d1e2cb697 “教务总览”改成可实际工作的分级工作台: 校级管理员查看全校数据,学院管理员仅查看本学院数据。 待办按当前审批阶段统计,涵盖授课资格、成绩、调停课、学籍异动、教室借用等。 增加学期进度、教学任务发布、课表覆盖、成绩发布状态。 快捷入口根据管理员角色自动调整。 完善未配置学期、无待办、加载失败等状态。 适配桌面和 390px 移动端,无横向溢出。 biss 2026-07-27 17:11:51 +08:00
  • b8df564b85 修复考试安排 biss 2026-07-27 16:47:55 +08:00
  • 4d8de1e4ae “运维与审计控制台”。 主要能力: SuperAdmin 专用入口:组织与权限 → 运维与审计。 操作日志分页查询,支持时间、账号、路径、方法和状态码筛选。 汇总自动排课、课表发布、补考安排三类失败后台任务。 实时检查数据库、缓存、任务通道及积压状态。 聚合 5xx、失败/重试任务、健康探针和备份时效告警。 SQLite 在线备份;MySQL 调用原生客户端备份。 SHA-256 校验及隔离数据库恢复演练,不覆盖业务库。 MySQL 强制使用独立运维连接,容器增加持久化备份卷与数据库客户端。 biss 2026-07-27 16:37:45 +08:00
  • 14ac49115c 消息修复 biss 2026-07-27 16:06:02 +08:00
  • 06d40a7bf1 发信改为事务内每 300 人分批写入,避免全校群发一次插入过大;数据库异常现在返回明确的 503,不再只显示模糊 500。 校级、学院级管理员支持按学院、身份、行政班、教学班、姓名/学号/工号筛选,也可指定最多 500 名收件人。所有结果均由服务端重新校验权限。 接入 CKEditor 5,支持标题、列表、引用和链接;正文扩展为 MySQL longtext。 富文本在收件箱、详情弹窗和已发送记录中统一经 DOMPurify 净化后展示。 页面改用系统现有的冷白、靛蓝、青绿色令牌,新增“选择收件人 → 编辑内容”工作台和移动端适配。 biss 2026-07-27 12:53:10 +08:00
  • 33ae991e86 预演 biss 2026-07-27 12:20:29 +08:00
  • 727a429abf 排课 v1.3.0 biss 2026-07-27 09:55:22 +08:00
  • 2f5c6af37c 调课 biss 2026-07-27 08:59:02 +08:00
  • 22321abe23 点名、成绩册统一读取“行政班在籍学生 ∪ 已选课学生”,不再错误显示 0 人。 教师选课名单改为展示全部本人教学班及完整学生名单,支持 Excel 导出。 调停课改用教师专用教学班接口,并在服务端限制只能操作本人教学班。 biss 2026-07-27 08:05:42 +08:00
  • bc6ffa2ada 优化 biss 2026-07-26 22:16:58 +08:00
  • dd1b752fa3 学生视图 biss 2026-07-26 21:53:00 +08:00
  • b39a57ebdf 给统计缓存加版本并绑定现有基础数据/课表失效标签,同时让演示数据、人员数据写入主动清理统计缓存;不改统计口径、筛选、导出或页面结构。 biss 2026-07-26 21:32:51 +08:00
  • 034f1eacb8 第二阶段优化已完成,重点是提高后台任务吞吐并降低 Outbox 数据库开销。 RabbitMQ 默认从单一回调通道提升为三类任务独立并行,跨类型并发能力由 1 提升到 3;每类还能独立配置 1–16 个消费者。[RabbitMqBackgroundJobs.cs (line 143)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/RabbitMqBackgroundJobs.cs:143) InMemory 开发模式同步改为按任务类型隔离队列,避免某类长任务堵塞其他任务。 租约恢复检查从“每发布一条执行一次”改为默认每 60 秒维护一次。 启动恢复改为数据库 NOT EXISTS 查询,不再把全部历史 Outbox 加载进内存。[BackgroundJobOutboxPublisher.cs (line 9)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/BackgroundJobOutboxPublisher.cs:9) 完成消息默认保留 14 天,之后按每批 500 条清理,并增加对应组合索引。 /health/messaging 现在返回各状态积压量、过期租约和最老任务等待时间。[BackgroundJobMonitoringService.cs (line 16)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/BackgroundJobMonitoringService.cs:16) 新增 Jiaowu.BackgroundJobs 运行时指标,覆盖发布量、处理量、发布耗时、处理耗时和清理量。[BackgroundJobTelemetry.cs (line 9)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/BackgroundJobTelemetry.cs:9) 配置、Compose 和调优建议已更新。[README.md (line 257)](E:/jiaowu/README.md:257) biss 2026-07-26 21:05:18 +08:00
  • 6300645120 排课计算、课表发布、补考自动编排三类任务统一接入消息系统。 业务任务与 Outbox 消息同一事务落库,避免“数据库成功但消息没发出去”。 RabbitMQ 使用持久化消息、发布确认、手动 ACK、Quorum Queue、死信队列。 增加处理租约、心跳、异常重试、最大重试次数和幂等状态控制。 保留 InMemory 模式,开发环境无需安装 RabbitMQ。 支持多实例竞争消费,后续可以横向扩容。 新增 /health/messaging 消息系统健康检查。 biss 2026-07-26 20:51:42 +08:00
  • 9f534c22f4 教室预约 biss 2026-07-26 20:11:56 +08:00
  • b0679a253d 成绩通知:仅在某门课程成绩正式发布后自动发送,按成绩单学生名单通知,不展示具体分数;发布状态与通知同一次提交。 手动发信:移除“成绩通知”选项,只能发送普通通知,原有角色与范围权限保持不变。 选课通知:管理员关闭一轮选课时,自动向每位参与学生发送一条汇总通知,包含最终选中课程及候补未成功课程;候补失效、轮次关闭和通知生成保持原子性。 关闭选课界面会明确提示发送通知,并显示实际通知人数。 biss 2026-07-26 19:12:42 +08:00
  • ecc6546f3a 学生可在“学籍管理 → 电子成绩单与证明”申请成绩单或学籍证明。 服务端根据登录账号绑定本人档案,不接受学生 ID,无法代他人申请。 成绩单仅包含正式发布成绩;无已发布成绩时明确提示。 同类型、同用途 5 分钟内重复申请复用已有有效凭证。 申请后即时生成 PDF,可在本人凭证列表下载、二维码验真。 管理员的下载记录、失效、重签能力保持不变。 biss 2026-07-26 18:24:53 +08:00
  • 40b8cb6e3c 已完善个人教学日历订阅。 主要能力: 教师、学生可在“我的课表”启用订阅、复制 URL、唤起日历客户端或下载一次性 ICS。 自动覆盖固定课程、调停课后的最新安排、考试/监考、补考,以及灵活课程提醒。 采用独立随机订阅标识和 HMAC 签名;重置或停用后旧地址立即失效。 支持 ETag 条件请求和一小时刷新提示,减少日历客户端重复同步。 订阅地址按实际前端 API 地址生成,兼容独立部署域名。 已增加窄屏弹窗最大宽度和纵向操作布局。 biss 2026-07-26 17:22:58 +08:00
  • ec28eb6c16 将索引缩短为 IX_CE_Offering_Status_WaitlistedAt。 将候补迁移改为可重入:先检查列和索引是否存在,再执行 DDL。 附件中已经成功添加 WaitlistedAt、但索引创建失败的数据库可直接重试,不会报重复列。 运行时和 dotnet ef 连接统一开启 AllowUserVariables;Connector/NET 默认关闭该选项。Connector/NET 官方说明 增加所有 MySQL 索引名不得超过 64 字符的回归测试。 biss 2026-07-26 16:24:52 +08:00
  • f62cd21319 已把选课的“年级划分”和限制规则补成完整闭环: 选课批次可指定多个适用年级;留空兼容原有“全部年级”。 新增可选的“最多课程门数”,与原有学分上限并行。 年级、门数限制统一作用于学生可见批次、自主选课、候补、管理员代选和自动递补。 普通候选名单遵守年级及行政班范围;强制选课可绕过业务限制,但仍严格遵守管理员学院权限。 管理页面会展示“2026 级 · 最多 6 门 · 最多 30 学分”,名单和候补列表也增加年级列。 新增 MySQL 迁移:[CourseSelectionGradeLimits.cs](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Persistence/Migrations/MySql/20260726180000_CourseSelectionGradeLimits.cs)。 biss 2026-07-26 16:12:21 +08:00
  • 56b13b3adb 已完成“选课候补与自动递补”完整流程。 学生端:满员后可加入/取消候补,展示候补顺位和当前候补人数。 自动递补:退课释放名额后,按候补时间顺序重新校验学籍、范围、学分及时间冲突;不合格者自动失效并继续下一位。 管理端:教学班显示候补人数,名单抽屉提供候补队列及移出操作。 状态通知:递补成功、资格失效、批次关闭、管理员移出均会通知学生。 并发安全:退课和递补放在 Serializable 事务中执行。 数据库:已补充 SQLite 开发迁移和 MySQL 正式迁移。 biss 2026-07-26 15:39:50 +08:00
  • 65eed820a7 v1.2.0 v1.2.0 biss 2026-07-26 15:18:57 +08:00
  • 631c81821d 仪表盘和 6 类统计摘要接入 HybridCache(内存 + Redis)。 默认 Redis 缓存 3 分钟、本地缓存 30 秒,可通过环境变量调整。 缓存键包含数据权限范围、有效学院和全部筛选条件,避免跨学院串数据。 Excel 导出保持实时查询,不使用摘要缓存。 无需数据库迁移。 biss 2026-07-26 15:13:22 +08:00
  • 77dfa8145c 主要变更: 新增统一缓存封装:[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) 部署说明。 biss 2026-07-26 14:42:27 +08:00
  • 0970c7cd40 免修、缓考现在包含当前学期课程,以及未归档且课表已发布的实际修读课程。 实际开发库验证已返回 CS101 程序设计基础。 课程替代改为“修读中/未通过课程 → 已发布及格课程”的双栏选择。 新增搜索、教学班号、学期、教师、学分、课表状态和完整空状态说明。 新增课程替代申请记录。 提交接口增加服务端资格校验,不能伪造课程 ID 绕过前端。 v1.1.1 biss 2026-07-26 14:12:52 +08:00
  • 32eb723c02 修复500 TimeOnly ↔ TimeSpan biss 2026-07-26 12:56:59 +08:00
  • 0c3745d91a v1.1.0 v1.1.0 biss 2026-07-26 11:21:29 +08:00
  • c91d826169 学年学期页面新增“设为当前”“归档”“撤销归档”,当前学期不能归档、删除或直接取消;已归档学期需先撤销才能重新设为当前。[BaseDataController.cs (line 286)](/E:/jiaowu/src/Jiaowu.Api/Controllers/BaseDataController.cs:286) 切换后,其他学期自动变为历史态;已归档学期进一步弱化。所有主要学期选择器统一默认当前,并显示“当前 / 历史 / 已归档”。[academicTerms.ts (line 1)](/E:/jiaowu/web/src/utils/academicTerms.ts:1) 桌面使用分层表格,390px 手机端改为独立学期卡片,操作不会再挤压表格。[BaseDataView.vue (line 211)](/E:/jiaowu/web/src/views/BaseDataView.vue:211) 归档定义为“历史显示状态”,不是成绩冻结:补考成绩仍可录入并回写,已发布成绩仍可走成绩更正审批。 已加入 SQLite 开发迁移、MySQL 正式迁移和切换/归档/撤销测试。[20260726143000_AcademicTermArchiving.cs (line 1)](/E:/jiaowu/src/Jiaowu.Api/Infrastructure/Persistence/Migrations/MySql/20260726143000_AcademicTermArchiving.cs:1) biss 2026-07-26 11:14:05 +08:00
  • 3b73292d93 已完成,学生端考勤记录现在按课程展示。 每门课程会独立显示: 课程名称、代码、教学班和任课教师。 课程总体出勤率。 出勤、迟到、缺勤、请假、免修次数。 按日期排列的历次点名记录。 缺勤或迟到记录仍可单独申诉。 biss 2026-07-26 10:49:06 +08:00
  • 72297aa23f 修复Mysql biss 2026-07-26 10:19:46 +08:00
  • 634ef69a27 登录 biss 2026-07-26 08:53:55 +08:00
  • aafc8c537e 修复数据 biss 2026-07-25 22:14:40 +08:00
  • d42ec74822 ge xiufu v1.0.0 biss 2026-07-25 21:49:56 +08:00
  • eb13465b49 更改docker biss 2026-07-25 21:26:49 +08:00
  • 2e940f7f30 docker更新 biss 2026-07-25 21:21:25 +08:00
  • 1595d6f0c0 自动构建 biss 2026-07-25 21:15:32 +08:00
  • 2ac873c347 新增显式命令:--seed-demo-data --confirm-production-demo-data 仅允许非 Development 环境运行。 只允许写入没有业务数据的独立空库。 演示数据使用单个 InnoDB 事务,失败整体回滚;迁移 DDL 仍单独执行,因为 MySQL 8.4 的 DDL 会隐式提交。MySQL 事务文档、隐式提交说明 不包含通用测试密码或学生、教师登录账号。 包含校区、学期、30 间教室、16 个学院、52 个专业、104 个班级、128 名教师、3,640 名学生和148门课程。 biss 2026-07-25 20:58:51 +08:00
  • 08b81eec42 新增“课程统计”模式,展示总体出勤率、状态分布、历次趋势和每位学生的出勤明细。 支持按姓名/学号、行政班及异常情况筛选,默认优先显示低出勤率学生。 新增课程统计 Excel 导出,包含课程概览、学生出勤明细、历次点名趋势三个工作表。 统计仅使用已提交点名;出勤和迟到计为到课,免修不计入应到次数。 修复了枚举兼容问题,已提交点名不会再错误显示为“草稿”,考勤状态中文标签恢复正常。 统计与导出接口均执行教师/数据范围权限校验。 biss 2026-07-25 20:47:56 +08:00
  • d8696ae80b 更新 biss 2026-07-25 20:31:19 +08:00
  • a576cc815d 生产环境 biss 2026-07-25 20:21:42 +08:00
  • 1da6543a38 补考增强 biss 2026-07-25 19:38:39 +08:00
  • 44e90ae35f 补考系统 biss 2026-07-25 19:16:11 +08:00
  • 376bc0d0a1 评教系统 biss 2026-07-25 18:41:53 +08:00
  • 15a34a306c --- 成绩册 Excel 导入/导出 — 已完成 biss 2026-07-25 17:57:56 +08:00
  • 97691cb203 统计报表 biss 2026-07-25 17:48:53 +08:00
  • 3d4d9953e8 学业预警自动化 biss 2026-07-25 17:28:53 +08:00
  • d23b5156b4 全部完成。定时检测系统概览: biss 2026-07-25 17:17:05 +08:00
  • db3a275601 学业预警 biss 2026-07-25 17:14:20 +08:00
  • 5e4c76a9e4 各类申请 biss 2026-07-25 16:51:12 +08:00
  • d02b0c56a1 教学点名强化 biss 2026-07-25 16:16:23 +08:00
  • 2c6103d3ae 统一通知中心 biss 2026-07-25 15:50:00 +08:00
  • 13b61f191a 调课、停课、补课申请 biss 2026-07-25 15:36:14 +08:00
  • 9685435da9 选课 biss 2026-07-25 15:30:46 +08:00
  • 4e7da6709e 考试排考 biss 2026-07-25 14:51:17 +08:00
  • 36049af692 成绩+点名 biss 2026-07-25 14:08:50 +08:00
  • 7800951aee deepseek 前台 — 路由 (router/index.ts) biss 2026-07-25 13:21:06 +08:00
  • a081273ac6 deepseek 2 处改动: biss 2026-07-25 13:10:19 +08:00
  • b015514115 已改成后台“检查并发布”任务,原来的超时主要就是同步逐条校验导致的。 发布接口立即返回 202 Accepted,页面轮询显示检查进度。 校验改为批量读取,减少重复数据库查询。 检查失败保留草稿并显示具体原因;成功后原子完成旧课表归档和新课表发布。 同一学期禁止两个发布任务并发,服务重启后未完成任务会自动恢复。 发布期间锁定编辑、自动排课等冲突操作。 已补齐 SQLite 开发迁移及 MySQL 生产迁移。 biss 2026-07-25 12:07:03 +08:00
  • fdca6a3edf 选课 biss 2026-07-25 11:46:39 +08:00
  • 533ff6b9f6 自动排课 biss 2026-07-25 11:32:13 +08:00
  • a63c943815 已完成教学任务归档纠错功能: 已归档任务新增“撤销归档”和“删除”,支持单条及批量操作。 撤销后恢复为“已发布”状态。 已发布任务仍不可直接删除;被排课、选课、成绩或考试引用的归档任务也会拒绝删除并明确提示。 状态与操作文案统一为“归档” biss 2026-07-25 11:03:42 +08:00
  • e4a12931ea 自动排课完成后逐条显示“需人工处理”的任务和原因,并提供“检查排课约束”入口;刷新页面后仍可读取最近一次结果。 批量排课约束新增校区、教学楼、多教室统一指定,也支持清除原有限定。 课表新增“总视图”,同一时段、不同周次课程会并列显示。 周视图按教学周过滤,支持上一周、下一周、周次下拉和回到本周。 日视图按周次过滤;连续两节课程会跨两行完整占格。 biss 2026-07-25 10:55:09 +08:00
  • db91988264 教师档案增加“激活账号”:管理员设置初始密码,服务端校验管理权限、学院数据范围、在职状态、工号冲突,并自动关联教师角色与档案。 已发布课表增加“发布后修改”:创建修订草稿,旧课表继续生效;修订版重新发布后再替换旧版本。 修复 390px 窄屏下课表页头按钮溢出。 biss 2026-07-25 10:09:05 +08:00