Files
HaHafeng 66255368b7 feat(admin): Add user management and upgrade to module permission system
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
2026-01-16 13:42:10 +08:00

279 lines
10 KiB
Markdown
Raw Permalink 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.
# 系统总体设计
> **目录说明:** 本目录包含壹证循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
**优先开发:**
- ASLAI智能文献
- 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协同 |
| AIAAI问答 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⚠️ 与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 1Schema隔离 + 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
**维护人:** 技术架构师