结构更新
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
- 完成核心业务域数据模型定版,确保接口与代码开发有稳定数据契约。
|
||||
- 关键任务
|
||||
- 梳理多租户基础域(tenant/dept/user/role/menu)。
|
||||
- 梳理课程域、题目与批改域、成就与推荐域、AI 知识域的数据关系。
|
||||
- 梳理课程域、题目与批改域、成就域、AI 知识域的数据关系。
|
||||
- 定义 SQL 执行顺序、索引策略、跨 schema 依赖约束。
|
||||
- 验收产物
|
||||
- `docs/architecture/er-diagram.md`
|
||||
|
||||
@@ -62,14 +62,7 @@
|
||||
- `GET /api/achievement/users/{userId}/records`
|
||||
- `GET /api/achievement/users/{userId}/progress`
|
||||
- `POST /api/achievement/events/trigger`
|
||||
|
||||
### 3.4 推荐域(recommendation)
|
||||
- `POST /api/recommendation/tasks`
|
||||
- `GET /api/recommendation/tasks/{taskId}/items`
|
||||
- `POST /api/recommendation/items/{itemId}/feedback`
|
||||
- `GET /api/recommendation/effects/daily`
|
||||
|
||||
### 3.5 AI 知识域(ai)
|
||||
### 3.4 AI 知识域(ai)
|
||||
- `POST /api/ai/knowledge/files`
|
||||
- `POST /api/ai/knowledge/files/{fileId}/sync`
|
||||
- `GET /api/ai/knowledge/sync-tasks/{taskId}`
|
||||
@@ -78,5 +71,5 @@
|
||||
|
||||
## 4. API 阶段交付映射
|
||||
- M3:`auth + upms + file/message 基础扩展`
|
||||
- M5:`course + question + achievement + recommendation + ai`
|
||||
- M5:`course + question + achievement + ai`
|
||||
- M6:前后端按冻结 API 完成联调,不新增破坏性变更。
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
- 基础域:租户、组织、用户、角色、菜单、文件。
|
||||
- 课程域:课程、章节、学习节点、知识点、学习进度。
|
||||
- 习题与批改域:题库、试卷、作业、提交、批改、错题与复习。
|
||||
- 成就与推荐域:成就定义、用户成就、推荐任务、反馈、学习闭环。
|
||||
- 成就域:成就定义、用户成就与学习激励闭环。
|
||||
- AI 知识域:知识文件、同步任务、图谱实体/关系。
|
||||
|
||||
## 2. 核心关系图(基础域 + 教学主链路)
|
||||
@@ -34,8 +34,6 @@ erDiagram
|
||||
|
||||
USER_ACHIEVEMENT }o--|| ACHIEVEMENT : awarded
|
||||
USER_ACHIEVEMENT }o--|| SYS_USER : owner
|
||||
RECOMMENDATION_TASK ||--o{ RECOMMENDATION_ITEM : produces
|
||||
RECOMMENDATION_ITEM ||--o{ RECOMMENDATION_FEEDBACK : receives
|
||||
```
|
||||
|
||||
## 3. AI 知识域关系图
|
||||
@@ -72,6 +70,6 @@ erDiagram
|
||||
- `init/pg/ai/10_create_ai_tables.sql`
|
||||
|
||||
## 6. 设计建议
|
||||
- 保持跨域依赖单向:`course/question/achievement/recommendation` 通过 `upms` 提供的主体信息关联。
|
||||
- 保持跨域依赖单向:`course/question/achievement` 通过 `upms` 提供的主体信息关联。
|
||||
- 涉及 AI 知识检索的数据优先走异步同步表,避免在线写链路阻塞。
|
||||
- 复杂业务报表优先通过事实表/汇总表落地,避免线上实时多表大 join。
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
- `ai-client`(Java 侧 AI 适配)
|
||||
- `python-ai`(AI 处理服务)
|
||||
- 业务域层(规划中)
|
||||
- `course`、`question`、`achievement`、`recommendation`
|
||||
- `course`、`question`、`achievement`
|
||||
- 数据与基础设施层
|
||||
- PostgreSQL(多 schema)
|
||||
- Redis(缓存、会话、热点)
|
||||
@@ -30,21 +30,18 @@ graph TD
|
||||
GW --> COURSE[Course Service]
|
||||
GW --> QUESTION[Question Service]
|
||||
GW --> ACHIEVE[Achievement Service]
|
||||
GW --> REC[Recommendation Service]
|
||||
|
||||
AUTH --> PG[(PostgreSQL)]
|
||||
UPMS --> PG
|
||||
COURSE --> PG
|
||||
QUESTION --> PG
|
||||
ACHIEVE --> PG
|
||||
REC --> PG
|
||||
|
||||
AUTH --> REDIS[(Redis)]
|
||||
UPMS --> REDIS
|
||||
COURSE --> REDIS
|
||||
QUESTION --> REDIS
|
||||
ACHIEVE --> REDIS
|
||||
REC --> REDIS
|
||||
|
||||
QUESTION --> AICLIENT[AI Client]
|
||||
AICLIENT --> PYAI[Python AI]
|
||||
@@ -63,7 +60,7 @@ graph TD
|
||||
- 教师发作业:题库/试卷/作业配置 -> 投放班级。
|
||||
- 学生提交:答题内容 + 文件(可选)。
|
||||
- 批改流程:自动批改 + 人工复核 -> 成绩汇总 -> 错题沉淀。
|
||||
- 复习与推荐:复习计划 -> 推荐内容 -> 用户反馈 -> 闭环效果。
|
||||
- 复习闭环:复习计划 -> 复习执行 -> 效果回写。
|
||||
- 成就激励:事件触发 -> 规则命中 -> 成就发放/进度更新。
|
||||
|
||||
### 3.3 AI 知识链路
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 问题陈述
|
||||
将 `gateway` 从“仅转发 auth/upms 的静态网关”升级为全域统一接入层,负责鉴权透传、租户隔离防线、端侧能力边界控制(尤其小程序学生端)。
|
||||
## 当前状态(已确认)
|
||||
* 架构定义中网关应承接 auth/upms/course/question/achievement/recommendation 多域入口。参考 `docs/architecture/logical-view.md (24-41)`。
|
||||
* 架构定义中网关应承接 auth/upms/course/question/achievement/ai 多域入口。参考 `docs/architecture/logical-view.md (24-41)`。
|
||||
* 现有网关路由仅配置 `auth` 与 `upms` 两条,且目标地址硬编码 localhost。参考 `backend/gateway/src/main/resources/application.yml (1-30)`。
|
||||
* `JwtRelayFilter` 仅做 token 校验并透传 `X-User-Id/X-Username/X-Display-Name/X-Tenant-Id/X-Dept-Id`。参考 `backend/gateway/src/main/java/com/k12study/gateway/filter/JwtRelayFilter.java (1-79)`、`backend/common/common-core/src/main/java/com/k12study/common/core/constants/SecurityConstants.java (1-13)`。
|
||||
* API 设计要求对外统一 `/api/*`,且后续需扩展到 course/question/ai。参考 `docs/architecture/api-design.md (1-82)`。
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# 问题陈述
|
||||
将 `question` 拆分为可演进的习题/作业/批改核心域,并在同一计划中处理错题复习、费曼讲解、推荐闭环与小程序学生端作业可见规则。
|
||||
将 `question` 拆分为可演进的习题/作业/批改核心域,并在同一计划中处理错题复习、费曼讲解与小程序学生端作业可见规则。
|
||||
## 当前状态(已确认)
|
||||
* 架构与 API 已定义 `question` 为核心业务域,覆盖题库、作业、提交、批改、复习。参考 `docs/architecture/api-design.md (42-61)`、`docs/architecture/logical-view.md (58-66)`。
|
||||
* 当前后端尚无 `question` 服务代码,能力主要体现在 `init/pg/question` 表结构。参考 `backend/pom.xml (11-20)`、`init/pg/question/10_create_question_tables.sql (1-1272)`。
|
||||
* SQL 已覆盖题库/作业/批改/错题/复习/讲解评估,并把推荐与画像并入 `question.rc_*`。参考 `init/pg/question/10_create_question_tables.sql (1041-1272)`。
|
||||
* SQL 已覆盖题库/作业/批改/错题/复习/讲解评估;当前阶段 `question` 不承载 recommendation 相关能力。参考 `init/pg/question/10_create_question_tables.sql (1-1272)`。
|
||||
* 复习策略已有租户级默认种子(E1-E6)。参考 `init/pg/question/20_init_question_seed.sql (8-56)`。
|
||||
* 功能清单对错题、变式题、费曼评估、复习提醒、推荐闭环都有明确诉求。参考 `docs/AI智能学习系统功能清单.md (11-24)`、`docs/AI智能学习系统功能清单.md (91-108)`。
|
||||
* 功能清单对错题、变式题、费曼评估、复习提醒都有明确诉求。参考 `docs/AI智能学习系统功能清单.md (11-24)`。
|
||||
## 模块拆分与设计细节
|
||||
### 1) 子模块边界
|
||||
* `question-bank`:题库、题目、题目知识点关联。
|
||||
@@ -13,7 +13,6 @@
|
||||
* `question-grading`:批改任务、答案评分、错因标签、知识点分析。
|
||||
* `question-review`:错题沉淀、艾宾浩斯计划与执行。
|
||||
* `question-explanation`:费曼讲解提交、评估与维度评分。
|
||||
* `question-recommendation-bridge`:保留 `rc_*` 闭环数据(中期可再独立 recommendation 服务)。
|
||||
### 2) 小程序学生端规则
|
||||
* 小程序仅面向学生,`assignment` 查询必须限制为“学生所在班级 + 已发布 + 节点类型为课堂练习/课后作业”。
|
||||
* 对应教师创建课程中的课件节点,不在学生端作业列表和详情返回。
|
||||
@@ -22,17 +21,16 @@
|
||||
* 强化 `hw_assignment_target.target_ref_id` 的对象完整性(按 `target_type` 校验 class_id/student_id 存在且同租户)。
|
||||
* 补充“变式题生成任务”数据结构(任务、来源错题、生成题、命中策略),连接功能清单中的举一反三链路。
|
||||
* `gd_answer_grade` 继续作为统一批改结果主表,避免客观/主观分表回退。
|
||||
* 推荐闭环暂存于 `question` 时,需定义清晰子包边界,避免与习题核心耦合扩散。
|
||||
### 4) 租户隔离策略
|
||||
* 所有 `hw_* / gd_* / rc_*` 读写统一按 `tenant_id` 强过滤。
|
||||
* 跨表关联(submission->student、assignment->class、recommendation->user)均执行租户一致性断言。
|
||||
* 所有 `hw_* / gd_*` 读写统一按 `tenant_id` 强过滤。
|
||||
* 跨表关联(submission->student、assignment->class)均执行租户一致性断言。
|
||||
* 对 AI 生成、图检索、向量检索调用记录 tenant 维度与来源对象,便于追溯越权风险。
|
||||
## 问题点与风险
|
||||
* `question` 当前“超大域”承载习题+复习+讲解+推荐,若不先做包级拆分,后续维护成本会快速上升。
|
||||
* `question` 当前域内职责仍较重(习题+复习+讲解),若不先做包级拆分,后续维护成本会快速上升。
|
||||
* 目前无运行时代码,尽管 SQL 完整,但缺业务规则执行层,容易出现“表有字段、行为缺失”。
|
||||
* `target_ref_id` 弱关联容易引发错投放与越权读取。
|
||||
* 功能清单的变式题追踪链路在现有表中仍缺专门任务模型。
|
||||
## 需确认的设计决策
|
||||
* 推荐相关 `rc_*` 是短期保留在 `question`,还是本阶段即拆到 `recommendation` 独立服务。
|
||||
* 当前阶段 recommendation 不纳入 `question`,`question` 仅交付习题/作业/批改/复习/讲解相关接口。
|
||||
* 变式题生成首期是否强依赖 AI 服务,或先以规则模板生成保障可交付。
|
||||
* 费曼评估通过阈值与回流规则(与系统文档口径)是否纳入一期强约束。
|
||||
|
||||
Reference in New Issue
Block a user