Files
training-system/training/context/02-产品架构/03-系统能力模型.md
2026-05-12 12:24:11 +08:00

106 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 系统能力模型总结 — 道路救援企业培训系统
> 版本V1.0 | 生成日期2026-04-07
> 证据来源:[SRC-FEAT-01] [SRC-API-01] [SRC-CODE-01]
---
## 1. 当前系统具备的核心能力
| # | 能力名称 | 一句话描述 |
|---|---------|----------|
| C1 | **基于角色的访问控制RBAC** | 三种角色(管理员/讲师/学员)+ 部门级数据隔离,统一鉴权入口 |
| C2 | **组织与人员管理** | 三级组织结构(中心→部门→小组)+ 用户生命周期管理 |
| C3 | **知识资产管理** | 支持文档/视频两种类型的知识内容创建、状态发布和多级分类 |
| C4 | **学习行为跟踪** | 防刷机制下的真实时长累计和进度记录视频90%/文档时长判定) |
| C5 | **在线考核** | 题库管理 + 手动/自动组卷 + 在线答题 + 客观题自动判分 |
| C6 | **考试行为管控** | 时间窗口约束 + 次数限制 + 超时自动交卷 + 并发乐观锁保护 |
| C7 | **培训任务编排** | 将知识+考试组织成有时间周期的培训计划,支持必修/选修/必考/选考四维属性 |
| C8 | **培训进度可视化** | 实时计算学员对某培训计划的完成百分比(必修完成+必考通过) |
| C9 | **成绩与排名** | 交卷后立即返回成绩+答案解析+实时排名(窗口函数,同分按时间早优先) |
| C10 | **企业微信身份集成** | OAuth 登录打通企业微信用户体系,无需单独注册 |
---
## 2. 能力依赖关系图
```mermaid
graph TD
C10[C10 企业微信身份集成] --> C1
C1[C1 RBAC + 部门隔离] --> C2
C1 --> C3
C1 --> C5
C1 --> C7
C2[C2 组织人员管理] --> C7
C3[C3 知识资产管理] --> C4
C3 --> C7
C4[C4 学习行为跟踪] --> C8
C5[C5 在线考核] --> C6
C5 --> C9
C6[C6 考试行为管控] --> C9
C9[C9 成绩与排名] --> C8
C7[C7 培训任务编排] --> C4
C7 --> C6
C7 --> C8[C8 培训进度可视化]
```
---
## 3. 可复用能力清单
| 能力 | 复用场景 | 复用方式 |
|-----|---------|---------|
| C1 RBAC + 部门隔离 | 企业内任何需要角色权限 + 数据隔离的系统 | 提取 AuthInterceptor + UserContext + department_id 注入框架 |
| C4 学习行为跟踪 | 其他类型内容(音频/直播回放/课件)的学习进度记录 | 抽象 `LearningTarget` 接口替换完成判定策略Strategy 模式) |
| C5 在线考核 | 任意客观题在线测评场景(安全培训/合规考试等)| 题库+试卷+客观题判分为独立子系统,可独立部署 |
| C6 考试行为管控 | 任何有"限时+限次"约束的在线测试 | ExamTakingService 中时间窗口/次数/乐观锁的组合控制逻辑 |
| C9 成绩排名 | 任何需要实时排名的比赛/评测场景 | SQL 窗口函数 DENSE_RANK 模式,按需修改排序条件 |
---
## 4. 平台级能力(多业务依赖的底层能力)
**C1 — RBAC + 部门数据隔离**
- 所有业务模块(知识/考试/培训)均依赖此能力实现权限控制和数据隔离
- 是系统安全性和多租户(多部门)能力的基础
- 扩展方向目前硬编码三个角色V2 可改为动态角色配置
**C2 — 组织人员管理**
- 每个业务操作都需要 `department_id``user_id``role` 三个属性
- 是知识/考试/培训三大域的数据隔离依据来源
- 扩展方向:当前三级固定结构,可抽象为 n 级通用树
**C10 — 企业微信身份集成**
- 是唯一的用户来源V1后续接其他身份源也需通过此层
- 扩展方向:抽象为 `IdentityProvider` 接口,支持插入 SSO/LDAP
---
## 5. 业务定制能力(特定场景才需要的能力)
| 能力 | 定制场景 | 为何不是平台级 |
|-----|---------|-------------|
| C3 知识资产管理(文档/视频类型) | 救援行业的操作手册、安全规范、视频讲解 | 内容类型固定(文档/视频),换行业可能需要不同类型 |
| C4 学习行为防刷视频90%/文档时长) | 强制"真实学习"的企业培训场景 | 完成判定规则是业务决策C端平台通常不这么严格 |
| C6 超时自动交卷 + 乐观锁 | 有严格时长限制的考试 | 休闲测试/知识问答类应用不需要这个复杂度 |
| C7 培训任务编排(必修/选修/必考/选考四维)| 企业有组织要求的培训管理 | 自学平台不需要"强制必修"的约束 |
| C9 成绩排名DENSE_RANK + 同分按时间) | 部门内部考核的绩效排名 | 无竞争性考核场景(如自我测评)不需要排名 |
---
## 6. V2 能力规划缺口
当前 V1.0.1 尚未具备以下能力,是 V2 的扩展方向:
| 缺失能力 | 业务价值 | 实现复杂度 |
|---------|---------|---------|
| 统计报表中心(完成率/通过率/部门排名) | 管理层查看全局培训效果 | 中(新增 statistics 模块,读现有数据) |
| 线下培训签到(扫码签到/签退) | 线上线下混合培训场景 | 中(需硬件支持) |
| 错题本(自动归集错误题目) | 学员针对性复习 | 低(从 exam_record.answers 中提取 correct=false |
| 知识全文搜索 | 快速查找内容 | 高(需引入 Elasticsearch 或 MySQL FULLTEXT |
| 奖励体系(积分/勋章/排行榜) | 提升学习积极性 | 中(新增独立模块) |
| 证书管理 | 培训完成凭证 | 低(基于培训计划完成状态生成 PDF |