Features - User Management (Phase 4.1): - Database: Add user_modules table for fine-grained module permissions - Database: Add 4 user permissions (view/create/edit/delete) to role_permissions - Backend: UserService (780 lines) - CRUD with tenant isolation - Backend: UserController + UserRoutes (648 lines) - 13 API endpoints - Backend: Batch import users from Excel - Frontend: UserListPage (412 lines) - list/filter/search/pagination - Frontend: UserFormPage (341 lines) - create/edit with module config - Frontend: UserDetailPage (393 lines) - details/tenant/module management - Frontend: 3 modal components (592 lines) - import/assign/configure - API: GET/POST/PUT/DELETE /api/admin/users/* endpoints Architecture Upgrade - Module Permission System: - Backend: Add getUserModules() method in auth.service - Backend: Login API returns modules array in user object - Frontend: AuthContext adds hasModule() method - Frontend: Navigation filters modules based on user.modules - Frontend: RouteGuard checks requiredModule instead of requiredVersion - Frontend: Remove deprecated version-based permission system - UX: Only show accessible modules in navigation (clean UI) - UX: Smart redirect after login (avoid 403 for regular users) Fixes: - Fix UTF-8 encoding corruption in ~100 docs files - Fix pageSize type conversion in userService (String to Number) - Fix authUser undefined error in TopNavigation - Fix login redirect logic with role-based access check - Update Git commit guidelines v1.2 with UTF-8 safety rules Database Changes: - CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled) - ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code) - INSERT 4 permissions + role assignments - UPDATE PUBLIC tenant with 8 module subscriptions Technical: - Backend: 5 new files (~2400 lines) - Frontend: 10 new files (~2500 lines) - Docs: 1 development record + 2 status updates + 1 guideline update - Total: ~4900 lines of code Status: User management 100% complete, module permission system operational
279 lines
10 KiB
Markdown
279 lines
10 KiB
Markdown
# 系统总体设计
|
||
|
||
> **目录说明:** 本目录包含壹证循AI科研平台的系统总体设计文档
|
||
> **文档层级:** 总体层面(Platform Level)
|
||
> **目标读者:** 技术架构师、产品经理、项目负责人
|
||
|
||
---
|
||
|
||
## 📚 文档导航
|
||
|
||
### 📌 快速导航
|
||
|
||
**🎉 重要:** [2025-11-06 架构设计完成报告](./%5B重要%5D%202025-11-06%20架构设计完成报告.md) - 今日重大里程碑!
|
||
|
||
**👉 第一次阅读:** [00-阅读指南](./00-阅读指南.md) - 如何阅读这些文档
|
||
|
||
**👉 需要决策:** [99-下一步行动决策建议](./99-下一步行动决策建议.md) - 3个方案对比
|
||
|
||
---
|
||
|
||
### 核心文档
|
||
|
||
| 文档 | 说明 | 状态 | 优先级 |
|
||
|------|------|------|-------|
|
||
| **[00-阅读指南](./00-阅读指南.md)** | **如何阅读这些文档?** | ✅ 完成 | ⭐⭐⭐ **首次必读** |
|
||
| [00-今日架构设计总结](./00-今日架构设计总结.md) | 2025-11-06工作总结 | ✅ 完成 | ⭐⭐ 推荐阅读 |
|
||
| **[99-下一步行动决策建议](./99-下一步行动决策建议.md)** | **3个方案对比+决策建议** | ✅ 完成 | ⭐⭐⭐ **决策必读** |
|
||
| [00-核心问题解答](./00-核心问题解答.md) | 回答关键架构问题 | ✅ 完成 | P0 |
|
||
| [01-系统架构分层设计](./01-系统架构分层设计.md) | 三层架构设计(平台、能力、业务) | ✅ 完成 | P0 |
|
||
| [02-文档体系重构方案](./02-文档体系重构方案.md) | 文档结构重组方案v2.0 | ✅ 完成 | P0 |
|
||
| [03-数据库架构说明](./03-数据库架构说明.md) | PostgreSQL Docker部署说明 | ✅ 完成 | P0 |
|
||
| [04-运营管理端架构设计](./04-运营管理端架构设计.md) | 15个功能模块设计 | ✅ 完成 | P0 |
|
||
| [05-Schema隔离方案与成本分析](./05-Schema隔离方案与成本分析.md) | 逻辑隔离vs物理隔离 | ✅ 完成 | P0 |
|
||
| [06-模块独立部署与单机版方案](./06-模块独立部署与单机版方案.md) | 完整打包+Electron方案 | ✅ 完成 | P0 |
|
||
| [07-Monorepo架构评估](./07-Monorepo架构评估.md) | 当前阶段是否需要Monorepo | ✅ 完成 | P0 |
|
||
| [08-架构设计全景图](./08-架构设计全景图.md) | 一图看懂整个系统架构 | ✅ 完成 | ⭐ 推荐阅读 |
|
||
| 09-总体需求文档(PRD).md | 产品总体需求 | ⏳ 待迁移 | P1 |
|
||
| 10-技术架构白皮书.md | 技术架构总览 | ⏳ 待迁移 | P1 |
|
||
| 11-商业模式设计.md | 商业模式与定价 | ⏳ 待创建 | P2 |
|
||
| 12-版本规划.md | 版本演进路线图 | ⏳ 待创建 | P2 |
|
||
|
||
---
|
||
|
||
## 🎯 核心内容概要
|
||
|
||
### 📌 快速开始
|
||
|
||
**如果您是第一次阅读,强烈推荐:**
|
||
1. ⭐ [今日架构设计总结](./00-今日架构设计总结.md) - 快速了解今天的成果
|
||
2. ⭐ [架构设计全景图](./08-架构设计全景图.md) - 一图看懂整个系统
|
||
|
||
---
|
||
|
||
### 1. 系统架构分层
|
||
|
||
**三层架构 + 8个业务模块:**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 业务模块层(8个模块) │
|
||
│ AIA | ASL | PKB | DC | SSA | ST | RVW | ADMIN │
|
||
└──────────────────────────────────────────────────┘
|
||
↓ 依赖
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 通用能力层(5个能力) │
|
||
│ LLM网关(71%) | 文档处理(86%) | RAG(43%) │
|
||
│ ETL(29%) | 医学NLP(14%) │
|
||
└──────────────────────────────────────────────────┘
|
||
↓ 依赖
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 平台基础层 │
|
||
│ 用户权限 | 存储 | 通知 | 监控 | 配置 │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**详见:** [01-系统架构分层设计.md](./01-系统架构分层设计.md)
|
||
|
||
---
|
||
|
||
### 2. 文档体系结构
|
||
|
||
**新文档结构:**
|
||
```
|
||
docs/
|
||
├── 00-系统总体设计/ # 总体层面
|
||
├── 01-平台基础层/ # 平台层(UAM、存储、通知等)
|
||
├── 02-通用能力层/ # 通用能力(LLM网关、文档处理等)
|
||
├── 03-业务模块/ # 7个独立业务模块
|
||
│ ├── AIA-AI智能问答/
|
||
│ ├── ASL-AI智能文献/
|
||
│ ├── PKB-个人知识库/
|
||
│ ├── DC-数据清洗整理/
|
||
│ ├── SSA-智能统计分析/
|
||
│ ├── ST-统计分析工具/
|
||
│ └── RVW-稿件审查系统/
|
||
├── 04-开发规范/
|
||
├── 05-部署文档/
|
||
├── 06-测试文档/
|
||
├── 07-运维文档/
|
||
└── 08-项目管理/
|
||
```
|
||
|
||
**详见:** [02-文档体系重构方案.md](./02-文档体系重构方案.md)
|
||
|
||
---
|
||
|
||
### 3. 核心决策
|
||
|
||
#### 部署模式(4种)
|
||
- ✅ 云端SaaS版(P0,当前)
|
||
- ✅ 独立产品包(P1,阶段二)- 支持模块化销售
|
||
- ✅ Electron单机版(P2,阶段二)- 代码复用85%+
|
||
- ✅ 私有化部署(P1,阶段二)
|
||
- ❌ ~~混合部署~~(不考虑)
|
||
|
||
#### 模块划分(8个业务模块)
|
||
1. **AIA** - AI智能问答 ✅ 已完成
|
||
2. **ASL** - AI智能文献 ⏳ 下一步重点
|
||
3. **PKB** - 个人知识库 ✅ 已完成
|
||
4. **DC** - 数据清洗整理 ⏳ 规划中
|
||
5. **SSA** - 智能统计分析 ⏳ 规划中
|
||
6. **ST** - 统计分析工具 ⏳ 规划中
|
||
7. **RVW** - 稿件审查系统 ⚡ 独立系统
|
||
8. **ADMIN** - 运营管理端 ⭐ v2.0新增
|
||
|
||
#### 核心能力(5个通用能力)
|
||
1. **LLM网关** ⭐ 最高优先级,5个模块依赖(71%复用率)
|
||
2. **文档处理引擎** ✅ 已实现,6个模块依赖(86%复用率)
|
||
3. **RAG引擎** ✅ 已实现,3个模块依赖(43%复用率)
|
||
4. **ETL引擎** ⏳ 待实现,2个模块依赖(29%复用率)
|
||
5. **医学NLP** ⏳ 待实现,1个模块依赖(14%复用率)
|
||
|
||
#### 技术改造决策
|
||
1. **Schema隔离** - 建议:现在做(1周)vs 未来做(3-5周)⭐⭐⭐⭐⭐
|
||
2. **Monorepo转换** - 建议:现在做(2-3天)vs 未来做(7-11天)⭐⭐⭐⭐⭐
|
||
|
||
**详见:** [00-核心问题解答.md](./00-核心问题解答.md)
|
||
|
||
---
|
||
|
||
## 🚀 架构演进路径
|
||
|
||
### 阶段一:模块化单体(当前 - 6个月)
|
||
|
||
**目标:** 云端SaaS版MVP
|
||
|
||
**关键纪律:**
|
||
- ✅ 严格按模块划分代码
|
||
- ✅ 数据表使用模块前缀(逻辑隔离)
|
||
- ✅ 模块间不直接import
|
||
|
||
**优先开发:**
|
||
- ASL(AI智能文献)
|
||
- DC(数据清洗)
|
||
- LLM网关
|
||
- Schema隔离
|
||
|
||
---
|
||
|
||
### 阶段二:首次拆分(6-18个月)
|
||
|
||
**触发条件:**
|
||
- 有客户要求私有化部署
|
||
- 有客户要求单机版
|
||
- 需要独立销售某个模块
|
||
|
||
**架构调整:**
|
||
- 引入API网关
|
||
- 引入K8s(可选)
|
||
- 拆分RVW(审稿系统)为独立服务
|
||
|
||
---
|
||
|
||
### 阶段三:全面微服务(18个月+)
|
||
|
||
**目标:** 所有模块独立部署,支持灵活组合
|
||
|
||
---
|
||
|
||
## 📊 关键指标
|
||
|
||
### 模块复用分析
|
||
|
||
| 通用能力 | 使用频率 | 复用模块数 | 优先级 |
|
||
|---------|---------|-----------|--------|
|
||
| LLM网关 | 71% | 5/7 | P0 |
|
||
| 文档处理 | 86% | 6/7 | P0 |
|
||
| RAG引擎 | 43% | 3/7 | P1 |
|
||
| ETL引擎 | 29% | 2/7 | P2 |
|
||
| 医学NLP | 14% | 1/7 | P2 |
|
||
|
||
### 模块独立性分析
|
||
|
||
| 模块 | 独立性 | 商业价值 | 可独立销售 |
|
||
|------|-------|---------|-----------|
|
||
| RVW(审稿) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 是 |
|
||
| ASL(文献) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 是 |
|
||
| DC(数据清洗) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 是 |
|
||
| SSA(统计分析) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⚠️ 与ST协同 |
|
||
| ST(分析工具) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⚠️ 与SSA协同 |
|
||
| AIA(AI问答) | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⚠️ 与PKB关联 |
|
||
| PKB(知识库) | ⭐⭐⭐ | ⭐⭐⭐ | ⚠️ 与AIA关联 |
|
||
|
||
---
|
||
|
||
## ✅ 当前任务清单
|
||
|
||
### P0任务(已完成)✅
|
||
|
||
- [x] 系统架构分层设计
|
||
- [x] 文档体系重构方案v2.0
|
||
- [x] 核心问题解答
|
||
- [x] 数据库架构说明
|
||
- [x] 运营管理端架构设计
|
||
- [x] Schema隔离方案与成本分析
|
||
- [x] 模块独立部署与单机版方案
|
||
- [x] Monorepo架构评估
|
||
- [x] 架构设计全景图
|
||
- [x] 今日工作总结
|
||
|
||
### P1任务(待决策)⏳
|
||
|
||
**关键决策点:**
|
||
- [ ] 是否现在做Schema隔离?(建议:是,1周)
|
||
- [ ] 是否现在转换Monorepo?(建议:是,2-3天)
|
||
|
||
**如果决定先做架构改造(方案B):**
|
||
- [ ] Week 1:Schema隔离 + Monorepo转换(6天)
|
||
- [ ] Week 2+:ASL模块开发
|
||
|
||
**如果决定立即开发(方案A):**
|
||
- [ ] Week 1+:ASL模块开发
|
||
- [ ] 未来:架构改造(成本更高)
|
||
|
||
### P2任务(后续)
|
||
|
||
- [ ] 迁移总体需求文档和技术架构白皮书
|
||
- [ ] 补充ASL模块缺失文档
|
||
- [ ] LLM网关详细设计
|
||
- [ ] RVW独立系统规划
|
||
- [ ] 补充运营管理端详细文档
|
||
|
||
---
|
||
|
||
## 📖 相关文档
|
||
|
||
### 平台基础层
|
||
- [01-平台基础层/](../01-平台基础层/) - 用户权限、存储、通知等
|
||
|
||
### 通用能力层
|
||
- [02-通用能力层/](../02-通用能力层/) - LLM网关、文档处理、RAG等
|
||
|
||
### 业务模块
|
||
- [03-业务模块/](../03-业务模块/) - 7个独立业务模块
|
||
|
||
### 项目管理
|
||
- [08-项目管理/](../08-项目管理/) - 开发计划、里程碑、每日进度
|
||
|
||
---
|
||
|
||
## 🤝 贡献指南
|
||
|
||
### 如何更新文档
|
||
|
||
1. **总体架构调整**:需要团队讨论,更新本目录文档
|
||
2. **模块设计调整**:更新对应模块目录文档
|
||
3. **文档格式**:遵循Markdown规范,包含目录、表格、代码块
|
||
|
||
### 文档审核流程
|
||
|
||
1. 技术架构师审核总体文档
|
||
2. 模块负责人审核模块文档
|
||
3. 定期同步文档与代码
|
||
|
||
---
|
||
|
||
**最后更新:** 2025-11-06
|
||
**维护人:** 技术架构师
|
||
|