1781 lines
21 KiB
Markdown
1781 lines
21 KiB
Markdown
明白,你要的不是“现在别做什么”,而是:
|
||
|
||
```text
|
||
知习后端完全体到底有哪些工作?
|
||
这些工作按什么顺序做?
|
||
哪些是地基,哪些是核心业务,哪些是后期运营能力?
|
||
```
|
||
|
||
我给你按**完整后端系统**来排。
|
||
|
||
---
|
||
|
||
# 知习后端完全体优先级
|
||
|
||
## P0:后端地基层
|
||
|
||
这一层不直接产生业务价值,但不做后面会全部返工。
|
||
|
||
### 1. 安全与配置
|
||
|
||
优先级:最高。
|
||
|
||
包括:
|
||
|
||
```text
|
||
环境变量管理
|
||
密钥轮换
|
||
CI/CD Secrets
|
||
生产 Swagger 保护
|
||
HTTPS
|
||
CORS
|
||
请求日志
|
||
错误日志
|
||
限流
|
||
```
|
||
|
||
对应工作:
|
||
|
||
```text
|
||
.env 分环境
|
||
JWT_SECRET / DB_PASSWORD / REDIS_PASSWORD 不进 Git
|
||
Swagger 生产环境关闭或强认证
|
||
统一异常返回
|
||
全局 ValidationPipe
|
||
统一日志格式
|
||
```
|
||
|
||
---
|
||
|
||
### 2. 数据库基础
|
||
|
||
优先级:最高。
|
||
|
||
包括:
|
||
|
||
```text
|
||
Prisma
|
||
MySQL
|
||
Migration
|
||
Repository 接真实数据库
|
||
软删除
|
||
分页
|
||
时间字段
|
||
索引
|
||
```
|
||
|
||
你现在后端所有核心模块都要围绕真实数据库跑,不能继续依赖内存 Map。
|
||
|
||
基础表:
|
||
|
||
```text
|
||
users
|
||
auth_accounts
|
||
refresh_tokens
|
||
knowledge_bases
|
||
knowledge_items
|
||
```
|
||
|
||
---
|
||
|
||
### 3. 统一工程规范
|
||
|
||
优先级:很高。
|
||
|
||
包括:
|
||
|
||
```text
|
||
统一响应格式
|
||
统一错误码
|
||
统一分页格式
|
||
DTO 校验
|
||
CurrentUser 装饰器
|
||
JwtAuthGuard
|
||
RoleGuard
|
||
Resource ownership 校验
|
||
```
|
||
|
||
这一步会影响你所有接口。
|
||
|
||
---
|
||
|
||
# P1:身份、登录、权限层
|
||
|
||
这层是所有业务数据的入口。
|
||
|
||
## 4. Auth 登录模块
|
||
|
||
优先级:最高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/auth/dev-login
|
||
POST /api/auth/apple
|
||
POST /api/auth/refresh
|
||
POST /api/auth/logout
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
users
|
||
auth_accounts
|
||
refresh_tokens
|
||
```
|
||
|
||
当前因为 Apple 开发者审核没下来,先做:
|
||
|
||
```text
|
||
dev-login
|
||
refresh token
|
||
/users/me
|
||
```
|
||
|
||
后面 Apple 审核下来,再补 Apple provider。
|
||
|
||
---
|
||
|
||
## 5. User 用户模块
|
||
|
||
优先级:最高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/users/me
|
||
PATCH /api/users/me
|
||
DELETE /api/users/me
|
||
```
|
||
|
||
用户字段:
|
||
|
||
```text
|
||
id
|
||
email
|
||
nickname
|
||
avatarUrl
|
||
role
|
||
status
|
||
onboardingCompleted
|
||
createdAt
|
||
updatedAt
|
||
```
|
||
|
||
这里是 App 启动、我的页、学习数据、会员权益的基础。
|
||
|
||
---
|
||
|
||
## 6. 权限系统
|
||
|
||
优先级:最高。
|
||
|
||
先做两层权限。
|
||
|
||
### 平台角色
|
||
|
||
```text
|
||
USER
|
||
ADMIN
|
||
SUPER_ADMIN
|
||
```
|
||
|
||
### 资源权限
|
||
|
||
第一版先简单:
|
||
|
||
```text
|
||
知识库 userId = 当前用户 id
|
||
```
|
||
|
||
后期扩展:
|
||
|
||
```text
|
||
OWNER
|
||
EDITOR
|
||
VIEWER
|
||
```
|
||
|
||
完整权限相关表:
|
||
|
||
```text
|
||
users.role
|
||
knowledge_bases.userId
|
||
knowledge_base_members
|
||
admin_audit_logs
|
||
```
|
||
|
||
权限规则:
|
||
|
||
```text
|
||
普通用户只能访问自己的资源
|
||
管理员才能访问 /api/admin/*
|
||
用户创建知识库后是该知识库 Owner
|
||
Owner 不是平台管理员
|
||
管理员查看敏感内容要写审计日志
|
||
```
|
||
|
||
---
|
||
|
||
# P2:知识系统层
|
||
|
||
这是知习的内容基础。
|
||
|
||
## 7. KnowledgeBase 知识库模块
|
||
|
||
优先级:很高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/knowledge-bases
|
||
POST /api/knowledge-bases
|
||
GET /api/knowledge-bases/:id
|
||
PATCH /api/knowledge-bases/:id
|
||
DELETE /api/knowledge-bases/:id
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
knowledge_bases
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
title
|
||
description
|
||
coverColor
|
||
visibility
|
||
status
|
||
itemCount
|
||
createdAt
|
||
updatedAt
|
||
deletedAt
|
||
```
|
||
|
||
`visibility` 可以先有字段:
|
||
|
||
```text
|
||
PRIVATE
|
||
UNLISTED
|
||
PUBLIC
|
||
```
|
||
|
||
但第一版默认 `PRIVATE`。
|
||
|
||
---
|
||
|
||
## 8. KnowledgeItem 知识点模块
|
||
|
||
优先级:很高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/knowledge-bases/:knowledgeBaseId/items
|
||
POST /api/knowledge-bases/:knowledgeBaseId/items
|
||
GET /api/knowledge-items/:id
|
||
PATCH /api/knowledge-items/:id
|
||
DELETE /api/knowledge-items/:id
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
knowledge_items
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
knowledgeBaseId
|
||
title
|
||
content
|
||
summary
|
||
tags
|
||
sourceType
|
||
masteryLevel
|
||
createdAt
|
||
updatedAt
|
||
deletedAt
|
||
```
|
||
|
||
这是主动回忆和 AI 分析的对象。
|
||
|
||
---
|
||
|
||
## 9. 标签 / 分类 / 搜索模块
|
||
|
||
优先级:中高。
|
||
|
||
可以后面接,但完整体需要。
|
||
|
||
包括:
|
||
|
||
```text
|
||
知识点标签
|
||
知识库分类
|
||
全文搜索
|
||
按掌握度筛选
|
||
按待复习状态筛选
|
||
```
|
||
|
||
可能接口:
|
||
|
||
```text
|
||
GET /api/knowledge-items/search
|
||
GET /api/tags
|
||
POST /api/tags
|
||
```
|
||
|
||
---
|
||
|
||
# P3:学习闭环核心层
|
||
|
||
这是知习真正区别于普通笔记和 AI 聊天壳的核心。
|
||
|
||
## 10. LearningSession 学习会话模块
|
||
|
||
优先级:很高。
|
||
|
||
表示一次学习过程。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/learning-sessions
|
||
GET /api/learning-sessions/:id
|
||
POST /api/learning-sessions/:id/complete
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
learning_sessions
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
knowledgeBaseId
|
||
status
|
||
startedAt
|
||
completedAt
|
||
durationSeconds
|
||
createdAt
|
||
updatedAt
|
||
```
|
||
|
||
---
|
||
|
||
## 11. ActiveRecall 主动回忆模块
|
||
|
||
优先级:很高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/active-recall/answers
|
||
GET /api/active-recall/answers/:id
|
||
GET /api/knowledge-items/:id/active-recall/answers
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
active_recall_answers
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
knowledgeItemId
|
||
learningSessionId
|
||
mode
|
||
answerText
|
||
durationSeconds
|
||
createdAt
|
||
```
|
||
|
||
`mode`:
|
||
|
||
```text
|
||
ACTIVE_RECALL
|
||
FEYNMAN
|
||
RETRIEVAL_PRACTICE
|
||
```
|
||
|
||
---
|
||
|
||
## 12. AIAnalysis AI 学习分析模块
|
||
|
||
优先级:很高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/ai-analysis/active-recall
|
||
GET /api/ai-analysis/:id
|
||
GET /api/active-recall/answers/:answerId/analysis
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
ai_analysis_results
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
knowledgeItemId
|
||
activeRecallAnswerId
|
||
score
|
||
masteryLevel
|
||
summary
|
||
strengths
|
||
weaknesses
|
||
missingKeyPoints
|
||
misconceptions
|
||
rawResult
|
||
promptVersion
|
||
model
|
||
createdAt
|
||
```
|
||
|
||
这是知习最重要的核心模块之一。
|
||
|
||
---
|
||
|
||
## 13. FocusItem 待巩固项模块
|
||
|
||
优先级:很高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/focus-items
|
||
GET /api/focus-items/today
|
||
GET /api/focus-items/:id
|
||
PATCH /api/focus-items/:id
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
focus_items
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
knowledgeBaseId
|
||
knowledgeItemId
|
||
aiAnalysisId
|
||
title
|
||
description
|
||
reason
|
||
priority
|
||
status
|
||
createdAt
|
||
resolvedAt
|
||
```
|
||
|
||
状态:
|
||
|
||
```text
|
||
OPEN
|
||
REVIEWING
|
||
RESOLVED
|
||
DISMISSED
|
||
```
|
||
|
||
---
|
||
|
||
## 14. Review 间隔复习模块
|
||
|
||
优先级:很高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/reviews/due
|
||
GET /api/reviews/cards/:id
|
||
POST /api/reviews/cards/:id/answer
|
||
POST /api/reviews/cards/:id/skip
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
review_cards
|
||
review_attempts
|
||
```
|
||
|
||
`review_cards`:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
knowledgeItemId
|
||
focusItemId
|
||
question
|
||
answerReference
|
||
cardType
|
||
dueAt
|
||
intervalDays
|
||
easeFactor
|
||
status
|
||
createdAt
|
||
updatedAt
|
||
```
|
||
|
||
`review_attempts`:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
reviewCardId
|
||
answerText
|
||
selfRating
|
||
aiRating
|
||
result
|
||
createdAt
|
||
```
|
||
|
||
---
|
||
|
||
## 15. LearningActivity 学习活跃模块
|
||
|
||
优先级:高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/learning-activity/summary
|
||
GET /api/learning-activity/daily
|
||
POST /api/learning-activity/events
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
learning_activity_events
|
||
```
|
||
|
||
事件:
|
||
|
||
```text
|
||
KNOWLEDGE_BASE_CREATED
|
||
KNOWLEDGE_ITEM_CREATED
|
||
LEARNING_SESSION_STARTED
|
||
ACTIVE_RECALL_SUBMITTED
|
||
AI_ANALYSIS_COMPLETED
|
||
FOCUS_ITEM_CREATED
|
||
REVIEW_CARD_CREATED
|
||
REVIEW_COMPLETED
|
||
LEARNING_SESSION_COMPLETED
|
||
```
|
||
|
||
这个模块后面会支撑:
|
||
|
||
```text
|
||
连续学习天数
|
||
最近 7 天学习趋势
|
||
学习活跃记录
|
||
分析首页
|
||
我的页数据
|
||
```
|
||
|
||
---
|
||
|
||
# P4:AI 基础设施层
|
||
|
||
这一层支撑 AI 成本、质量、可扩展性。
|
||
|
||
## 16. AIGateway 模型网关
|
||
|
||
优先级:高。
|
||
|
||
包括:
|
||
|
||
```text
|
||
统一模型调用
|
||
provider 抽象
|
||
DeepSeek provider
|
||
MiniMax provider
|
||
OpenAI provider
|
||
Qwen provider
|
||
超时控制
|
||
错误重试
|
||
JSON 解析
|
||
fallback
|
||
```
|
||
|
||
结构:
|
||
|
||
```text
|
||
AIGatewayService
|
||
AIProvider
|
||
DeepSeekProvider
|
||
MiniMaxProvider
|
||
OpenAIProvider
|
||
```
|
||
|
||
---
|
||
|
||
## 17. PromptTemplate 提示词模块
|
||
|
||
优先级:高。
|
||
|
||
表:
|
||
|
||
```text
|
||
prompt_templates
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
key
|
||
version
|
||
systemPrompt
|
||
userPromptTemplate
|
||
outputSchema
|
||
model
|
||
temperature
|
||
maxTokens
|
||
isActive
|
||
createdAt
|
||
updatedAt
|
||
```
|
||
|
||
Prompt 不要散落在业务代码里。
|
||
|
||
---
|
||
|
||
## 18. AIUsageLog AI 成本日志
|
||
|
||
优先级:高。
|
||
|
||
表:
|
||
|
||
```text
|
||
ai_usage_logs
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
feature
|
||
provider
|
||
model
|
||
promptVersion
|
||
inputTokens
|
||
outputTokens
|
||
cachedInputTokens
|
||
totalTokens
|
||
inputCost
|
||
outputCost
|
||
totalCost
|
||
currency
|
||
latencyMs
|
||
status
|
||
errorCode
|
||
errorMessage
|
||
createdAt
|
||
```
|
||
|
||
这是后面定价、限流、后台成本看板的基础。
|
||
|
||
---
|
||
|
||
## 19. AIQuota / UsageLimit AI 额度模块
|
||
|
||
优先级:中高。
|
||
|
||
表:
|
||
|
||
```text
|
||
usage_quotas
|
||
usage_records
|
||
```
|
||
|
||
负责:
|
||
|
||
```text
|
||
免费用户 AI 次数
|
||
Pro 用户 AI 次数
|
||
高级分析额度
|
||
文件解析额度
|
||
每日限制
|
||
每月限制
|
||
异常限流
|
||
```
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/usage/me
|
||
```
|
||
|
||
---
|
||
|
||
## 20. AIWorkflow 工作流模块
|
||
|
||
优先级:中高。
|
||
|
||
后期完整体需要。
|
||
|
||
表:
|
||
|
||
```text
|
||
ai_workflows
|
||
ai_workflow_steps
|
||
ai_workflow_runs
|
||
```
|
||
|
||
用于:
|
||
|
||
```text
|
||
知识导入工作流
|
||
主动回忆分析工作流
|
||
长期趋势分析工作流
|
||
复习卡生成工作流
|
||
学习报告生成工作流
|
||
```
|
||
|
||
---
|
||
|
||
# P5:文件、导入、知识生成层
|
||
|
||
这层让知识库从“手动输入”升级为“资料导入”。
|
||
|
||
## 21. File / Storage 文件模块
|
||
|
||
优先级:中高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/files/upload-url
|
||
POST /api/files/complete
|
||
GET /api/files/:id
|
||
DELETE /api/files/:id
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
files
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
userId
|
||
bucket
|
||
objectKey
|
||
filename
|
||
mimeType
|
||
size
|
||
purpose
|
||
status
|
||
createdAt
|
||
```
|
||
|
||
用途:
|
||
|
||
```text
|
||
头像
|
||
反馈截图
|
||
文档上传
|
||
知识库文件
|
||
```
|
||
|
||
---
|
||
|
||
## 22. DocumentImport 文档导入模块
|
||
|
||
优先级:中高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/document-imports
|
||
GET /api/document-imports/:id
|
||
POST /api/document-imports/:id/confirm
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
document_import_jobs
|
||
document_import_items
|
||
```
|
||
|
||
流程:
|
||
|
||
```text
|
||
上传文件
|
||
→ 创建导入任务
|
||
→ 解析文本
|
||
→ AI 切分知识点
|
||
→ 用户确认
|
||
→ 写入 knowledge_items
|
||
```
|
||
|
||
需要:
|
||
|
||
```text
|
||
Redis
|
||
BullMQ
|
||
Worker
|
||
COS
|
||
文本解析
|
||
AI 切分
|
||
```
|
||
|
||
---
|
||
|
||
## 23. KnowledgeGeneration 知识点生成模块
|
||
|
||
优先级:中。
|
||
|
||
用于:
|
||
|
||
```text
|
||
AI 生成知识点标题
|
||
AI 生成摘要
|
||
AI 提取关键点
|
||
AI 生成标签
|
||
AI 生成主动回忆问题
|
||
```
|
||
|
||
可以作为 document-import 的子模块。
|
||
|
||
---
|
||
|
||
# P6:会员、订阅、商业化层
|
||
|
||
这层决定你后端能不能真正商业化。
|
||
|
||
## 24. Plans 套餐模块
|
||
|
||
优先级:中。
|
||
|
||
表:
|
||
|
||
```text
|
||
plans
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
id
|
||
key
|
||
name
|
||
price
|
||
currency
|
||
billingPeriod
|
||
features
|
||
isActive
|
||
```
|
||
|
||
---
|
||
|
||
## 25. Membership 权益模块
|
||
|
||
优先级:中高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/membership/me
|
||
GET /api/plans
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
membership_entitlements
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
userId
|
||
planKey
|
||
status
|
||
aiAnalysisLimit
|
||
knowledgeBaseLimit
|
||
knowledgeItemLimit
|
||
fileUploadLimit
|
||
advancedReportEnabled
|
||
expiresAt
|
||
```
|
||
|
||
---
|
||
|
||
## 26. Subscription 订阅模块
|
||
|
||
优先级:中。
|
||
|
||
接口后期:
|
||
|
||
```text
|
||
POST /api/subscriptions/apple/verify
|
||
POST /api/subscriptions/apple/notifications
|
||
POST /api/subscriptions/google/notifications
|
||
GET /api/subscriptions/me
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
subscriptions
|
||
subscription_events
|
||
payment_transactions
|
||
refund_records
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
platform
|
||
originalTransactionId
|
||
productId
|
||
status
|
||
startedAt
|
||
expiresAt
|
||
renewalStatus
|
||
```
|
||
|
||
---
|
||
|
||
# P7:用户 Web 后台层
|
||
|
||
这是你说的用户 Web 端上传知识库。
|
||
|
||
## 27. User Web Console 用户后台
|
||
|
||
优先级:中。
|
||
|
||
它不是 Admin 后台,而是普通用户自己的 Web 工作台。
|
||
|
||
后端复用普通用户接口:
|
||
|
||
```text
|
||
/api/users/me
|
||
/api/knowledge-bases
|
||
/api/knowledge-items
|
||
/api/files
|
||
/api/document-imports
|
||
/api/membership/me
|
||
```
|
||
|
||
新增可能需要:
|
||
|
||
```text
|
||
批量上传
|
||
批量编辑知识点
|
||
导入历史
|
||
导出数据
|
||
Web 端文件管理
|
||
```
|
||
|
||
对应模块:
|
||
|
||
```text
|
||
files
|
||
document-import
|
||
knowledge-bases
|
||
knowledge-items
|
||
membership
|
||
```
|
||
|
||
---
|
||
|
||
# P8:管理员后台层
|
||
|
||
这是平台运营后台。
|
||
|
||
## 28. Admin Auth / Admin Guard
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/admin/me
|
||
```
|
||
|
||
权限:
|
||
|
||
```text
|
||
ADMIN
|
||
SUPER_ADMIN
|
||
```
|
||
|
||
---
|
||
|
||
## 29. Admin Users 用户管理
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/admin/users
|
||
GET /api/admin/users/:id
|
||
PATCH /api/admin/users/:id/status
|
||
```
|
||
|
||
功能:
|
||
|
||
```text
|
||
查看用户
|
||
禁用用户
|
||
查看会员状态
|
||
查看学习数据概览
|
||
```
|
||
|
||
---
|
||
|
||
## 30. Admin Knowledge 知识库管理
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/admin/knowledge-bases
|
||
GET /api/admin/knowledge-bases/:id
|
||
```
|
||
|
||
默认只看元数据:
|
||
|
||
```text
|
||
标题
|
||
创建者
|
||
创建时间
|
||
知识点数量
|
||
文件数量
|
||
状态
|
||
可见性
|
||
是否被举报
|
||
```
|
||
|
||
敏感内容查看需要:
|
||
|
||
```text
|
||
权限
|
||
原因
|
||
审计日志
|
||
```
|
||
|
||
---
|
||
|
||
## 31. Admin AI Usage AI 成本后台
|
||
|
||
优先级:中高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/admin/ai-usage
|
||
GET /api/admin/ai-usage/summary
|
||
```
|
||
|
||
看:
|
||
|
||
```text
|
||
每日 AI 调用
|
||
用户 AI 消耗
|
||
功能成本排行
|
||
模型成本
|
||
失败率
|
||
平均耗时
|
||
```
|
||
|
||
---
|
||
|
||
## 32. Admin Feedback 反馈管理
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/admin/feedback
|
||
GET /api/admin/feedback/:id
|
||
PATCH /api/admin/feedback/:id
|
||
POST /api/admin/feedback/:id/reply
|
||
```
|
||
|
||
---
|
||
|
||
## 33. Admin Audit 审计日志
|
||
|
||
优先级:中高。
|
||
|
||
表:
|
||
|
||
```text
|
||
admin_audit_logs
|
||
```
|
||
|
||
记录:
|
||
|
||
```text
|
||
谁
|
||
什么时候
|
||
做了什么
|
||
操作对象
|
||
操作前
|
||
操作后
|
||
原因
|
||
IP
|
||
UserAgent
|
||
```
|
||
|
||
---
|
||
|
||
# P9:客服、反馈、帮助中心层
|
||
|
||
## 34. Feedback 用户反馈模块
|
||
|
||
优先级:中高。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/feedback
|
||
GET /api/feedback/my
|
||
```
|
||
|
||
---
|
||
|
||
## 35. SupportTicket 工单模块
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/support/tickets
|
||
GET /api/support/tickets/my
|
||
GET /api/support/tickets/:id
|
||
```
|
||
|
||
---
|
||
|
||
## 36. Dify 智能客服模块
|
||
|
||
优先级:中低。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/support/chat
|
||
GET /api/support/conversations
|
||
```
|
||
|
||
架构:
|
||
|
||
```text
|
||
iOS / Web
|
||
→ NestJS
|
||
→ Dify API
|
||
→ 官方帮助知识库
|
||
```
|
||
|
||
不能让 iOS 直接调 Dify。
|
||
|
||
---
|
||
|
||
## 37. HelpCenter 帮助中心模块
|
||
|
||
优先级:中低。
|
||
|
||
表:
|
||
|
||
```text
|
||
help_articles
|
||
faq_items
|
||
```
|
||
|
||
功能:
|
||
|
||
```text
|
||
常见问题
|
||
订阅说明
|
||
退款说明
|
||
功能说明
|
||
隐私政策摘要
|
||
```
|
||
|
||
---
|
||
|
||
# P10:通知、任务、调度层
|
||
|
||
## 38. Notifications 通知模块
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/notifications
|
||
PATCH /api/notifications/:id/read
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
notifications
|
||
```
|
||
|
||
用于:
|
||
|
||
```text
|
||
复习提醒
|
||
系统通知
|
||
订阅通知
|
||
反馈回复
|
||
```
|
||
|
||
---
|
||
|
||
## 39. Push 推送模块
|
||
|
||
优先级:中低。
|
||
|
||
包括:
|
||
|
||
```text
|
||
APNs
|
||
设备 token
|
||
推送偏好
|
||
复习提醒推送
|
||
```
|
||
|
||
表:
|
||
|
||
```text
|
||
device_tokens
|
||
notification_preferences
|
||
```
|
||
|
||
---
|
||
|
||
## 40. Jobs / Worker 后台任务模块
|
||
|
||
优先级:中高。
|
||
|
||
需要:
|
||
|
||
```text
|
||
BullMQ
|
||
Redis
|
||
Worker
|
||
Job logs
|
||
Retry
|
||
Dead letter queue
|
||
```
|
||
|
||
用于:
|
||
|
||
```text
|
||
文档解析
|
||
AI 批量分析
|
||
学习报告生成
|
||
通知推送
|
||
订阅状态同步
|
||
```
|
||
|
||
---
|
||
|
||
# P11:学习分析与长期画像层
|
||
|
||
## 41. LearningAnalytics 学习分析模块
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/analytics/learning/overview
|
||
GET /api/analytics/learning/trends
|
||
GET /api/analytics/learning/weaknesses
|
||
```
|
||
|
||
数据来源:
|
||
|
||
```text
|
||
learning_activity_events
|
||
active_recall_answers
|
||
ai_analysis_results
|
||
focus_items
|
||
review_attempts
|
||
```
|
||
|
||
---
|
||
|
||
## 42. UserLearningProfile 用户学习画像
|
||
|
||
优先级:中。
|
||
|
||
表:
|
||
|
||
```text
|
||
user_learning_profiles
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
userId
|
||
weakTypes
|
||
preferredExplanationStyle
|
||
recallAccuracyAvg
|
||
reviewCompletionRate
|
||
repeatedMistakes
|
||
updatedAt
|
||
```
|
||
|
||
这是后期 Learning Agent 的基础。
|
||
|
||
---
|
||
|
||
## 43. LearningReport 学习报告模块
|
||
|
||
优先级:中低。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/reports/weekly
|
||
GET /api/reports/monthly
|
||
POST /api/reports/generate
|
||
```
|
||
|
||
可以异步生成。
|
||
|
||
---
|
||
|
||
# P12:公开知识库、分享、社区层
|
||
|
||
这层是完整体可能会有的,但复杂度高。
|
||
|
||
## 44. Knowledge Visibility 公开权限模块
|
||
|
||
优先级:中低。
|
||
|
||
支持:
|
||
|
||
```text
|
||
PRIVATE
|
||
UNLISTED
|
||
PUBLIC
|
||
```
|
||
|
||
需要:
|
||
|
||
```text
|
||
公开链接
|
||
可见性变更日志
|
||
举报机制
|
||
内容审核
|
||
```
|
||
|
||
---
|
||
|
||
## 45. Knowledge Sharing 分享模块
|
||
|
||
优先级:中低。
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/knowledge-bases/:id/share-links
|
||
GET /api/share/:token
|
||
DELETE /api/share-links/:id
|
||
```
|
||
|
||
---
|
||
|
||
## 46. Public Knowledge 官方 / 公共知识库
|
||
|
||
优先级:低到中。
|
||
|
||
功能:
|
||
|
||
```text
|
||
官方模板库
|
||
公开知识库市场
|
||
精选知识库
|
||
复制到我的知识库
|
||
```
|
||
|
||
需要强审核。
|
||
|
||
---
|
||
|
||
# P13:合规、系统配置、运营层
|
||
|
||
## 47. SystemConfig 系统配置模块
|
||
|
||
优先级:中。
|
||
|
||
接口:
|
||
|
||
```text
|
||
GET /api/system/config
|
||
GET /api/health
|
||
```
|
||
|
||
配置:
|
||
|
||
```text
|
||
最低 App 版本
|
||
强制升级版本
|
||
隐私政策版本
|
||
用户协议版本
|
||
备案号
|
||
客服邮箱
|
||
功能开关
|
||
AI 模型配置
|
||
```
|
||
|
||
---
|
||
|
||
## 48. Compliance 合规模块
|
||
|
||
优先级:中。
|
||
|
||
包括:
|
||
|
||
```text
|
||
用户协议
|
||
隐私政策
|
||
数据导出
|
||
账号注销
|
||
内容举报
|
||
违规处理
|
||
备案信息
|
||
```
|
||
|
||
接口:
|
||
|
||
```text
|
||
POST /api/account/delete-request
|
||
GET /api/account/export
|
||
POST /api/reports/content
|
||
```
|
||
|
||
---
|
||
|
||
## 49. DataExport 用户数据导出
|
||
|
||
优先级:中低。
|
||
|
||
完整体需要:
|
||
|
||
```text
|
||
导出知识库
|
||
导出学习记录
|
||
导出账户数据
|
||
```
|
||
|
||
---
|
||
|
||
# P14:增长、归因、营销数据层
|
||
|
||
如果你后端要支持营销闭环,后面可以做。
|
||
|
||
## 50. Attribution 归因模块
|
||
|
||
优先级:中低。
|
||
|
||
表:
|
||
|
||
```text
|
||
marketing_campaigns
|
||
attribution_events
|
||
```
|
||
|
||
字段:
|
||
|
||
```text
|
||
campaignId
|
||
utmSource
|
||
utmMedium
|
||
utmCampaign
|
||
utmContent
|
||
userId
|
||
eventName
|
||
createdAt
|
||
```
|
||
|
||
用于:
|
||
|
||
```text
|
||
内容 → 注册 → 激活 → 付费
|
||
```
|
||
|
||
---
|
||
|
||
## 51. ProductAnalytics 产品行为埋点
|
||
|
||
优先级:中。
|
||
|
||
事件:
|
||
|
||
```text
|
||
app_opened
|
||
signup_completed
|
||
knowledge_base_created
|
||
active_recall_submitted
|
||
ai_analysis_completed
|
||
review_completed
|
||
paywall_viewed
|
||
subscription_started
|
||
```
|
||
|
||
可以先用 PostHog / Firebase,后端只接关键事件。
|
||
|
||
---
|
||
|
||
# 总优先级总表
|
||
|
||
| 优先级 | 工作层级 | 核心模块 |
|
||
| --- | --------- | ------------------------------------------------------------------------- |
|
||
| P0 | 后端地基 | 安全、配置、数据库、统一异常、DTO、日志 |
|
||
| P1 | 身份权限 | Auth、Users、RefreshToken、Role、Resource Permission |
|
||
| P2 | 知识系统 | KnowledgeBase、KnowledgeItem、Tag、Search |
|
||
| P3 | 学习闭环 | LearningSession、ActiveRecall、AIAnalysis、FocusItem、Review、LearningActivity |
|
||
| P4 | AI 基础设施 | AIGateway、PromptTemplate、AIUsageLog、Quota、AIWorkflow |
|
||
| P5 | 文件导入 | File、Storage、DocumentImport、KnowledgeGeneration |
|
||
| P6 | 商业化 | Plans、Membership、Subscription、Payment、Refund |
|
||
| P7 | 用户 Web 后台 | Web Console、批量上传、导入、导出 |
|
||
| P8 | 管理员后台 | Admin Users、Admin Knowledge、AI Cost、Feedback、Audit |
|
||
| P9 | 客服反馈 | Feedback、SupportTicket、Dify、HelpCenter |
|
||
| P10 | 通知任务 | Notifications、Push、BullMQ Worker、Scheduler |
|
||
| P11 | 学习画像 | LearningAnalytics、UserLearningProfile、LearningReport |
|
||
| P12 | 公开分享 | Visibility、ShareLink、Public Knowledge |
|
||
| P13 | 合规配置 | SystemConfig、Privacy、Delete Account、Data Export |
|
||
| P14 | 增长归因 | Attribution、ProductAnalytics、Campaign Tracking |
|
||
|
||
---
|
||
|
||
# 如果按“完全体开发路线”分阶段
|
||
|
||
## 第一阶段:能真实使用
|
||
|
||
```text
|
||
安全
|
||
数据库
|
||
登录
|
||
用户
|
||
权限
|
||
知识库
|
||
知识点
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
用户可以登录并创建自己的知识库。
|
||
```
|
||
|
||
---
|
||
|
||
## 第二阶段:形成学习闭环
|
||
|
||
```text
|
||
学习会话
|
||
主动回忆
|
||
AI 分析
|
||
待巩固项
|
||
复习卡片
|
||
学习活跃
|
||
AI usage log
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
用户可以从输入知识走到主动输出、AI 反馈、复习。
|
||
```
|
||
|
||
---
|
||
|
||
## 第三阶段:支持真实内容导入
|
||
|
||
```text
|
||
文件上传
|
||
文档导入
|
||
AI 切分知识点
|
||
导入任务队列
|
||
Worker
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
用户可以上传资料并转成知识库。
|
||
```
|
||
|
||
---
|
||
|
||
## 第四阶段:商业化
|
||
|
||
```text
|
||
会员权益
|
||
AI 额度
|
||
套餐
|
||
Apple IAP
|
||
订阅通知
|
||
退款处理
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
用户可以付费,系统可以控制成本。
|
||
```
|
||
|
||
---
|
||
|
||
## 第五阶段:运营后台
|
||
|
||
```text
|
||
管理员后台
|
||
用户管理
|
||
知识库元数据
|
||
反馈管理
|
||
AI 成本看板
|
||
订阅管理
|
||
审计日志
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
你和后续合作的人可以运营这个产品。
|
||
```
|
||
|
||
---
|
||
|
||
## 第六阶段:客服和支持
|
||
|
||
```text
|
||
反馈
|
||
工单
|
||
Dify 智能客服
|
||
帮助中心
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
基础问题自动回答,复杂问题进入工单。
|
||
```
|
||
|
||
---
|
||
|
||
## 第七阶段:学习画像和 Agent
|
||
|
||
```text
|
||
用户学习画像
|
||
长期趋势分析
|
||
周报月报
|
||
AI 工作流
|
||
Learning Agent
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
系统开始越来越懂用户。
|
||
```
|
||
|
||
---
|
||
|
||
## 第八阶段:公开知识库和社区
|
||
|
||
```text
|
||
公开知识库
|
||
分享链接
|
||
官方知识库
|
||
精选模板
|
||
举报审核
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
从个人学习工具扩展到内容和社区。
|
||
```
|
||
|
||
---
|
||
|
||
# 最终结论
|
||
|
||
知习后端完全体不是一个简单 CRUD 后端,它最终会变成:
|
||
|
||
```text
|
||
用户系统
|
||
+ 权限系统
|
||
+ 知识库系统
|
||
+ 学习闭环系统
|
||
+ AI 工作流系统
|
||
+ 复习系统
|
||
+ 成本控制系统
|
||
+ 订阅系统
|
||
+ 文件导入系统
|
||
+ 后台管理系统
|
||
+ 客服工单系统
|
||
+ 学习画像系统
|
||
+ 合规系统
|
||
+ 增长归因系统
|
||
```
|
||
|
||
但是优先级一定是:
|
||
|
||
```text
|
||
身份权限
|
||
→ 知识系统
|
||
→ 学习闭环
|
||
→ AI 基础设施
|
||
→ 文件导入
|
||
→ 商业化
|
||
→ 后台
|
||
→ 客服
|
||
→ 学习画像
|
||
→ 公开分享
|
||
→ 增长归因
|
||
```
|
||
|
||
你现在如果要写后端开发文档,可以直接按这个顺序作为总路线图。
|