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
This commit is contained in:
2026-01-16 13:42:10 +08:00
parent 98d862dbd4
commit 66255368b7
560 changed files with 70424 additions and 52353 deletions

View File

@@ -1,22 +1,22 @@
# 荳壼苅讓。蝮怜ア?
# 业务模块层
> **螻らコァ螳壻ス搾シ?* 髱「蜷醍畑謌キ逧<EFBDB7>コァ蜩∝粥閭?
> **譬ク蠢<EFBFBD>次蛻呻シ?* 迢ャ遶矩Κ鄂イ縲∫峡遶矩楳蜚ョ縲∽ス手€ヲ蜷医€<E58CBB>ォ伜<EFBDAB><EFBFBD>
> **层级定位:** 面向用户的产品功能
> **核心原则:** 独立部署、独立销售、低耦合、高内聚
---
## 📋 模块清单
| 讓。蝮<EFBFBD> | 蜷咲ァー | 蝠<>ク壻サキ蛟?| 迢ャ遶区€?| 迥カ諤?| 莨伜<E88EA8>郤?|
| 模块 | 名称 | 商业价值 | 独立性 | 状态 | 优先级 |
|------|------|---------|-------|------|--------|
| **AIA** | AI譎コ閭ス髣ョ遲<EFBFBD> | 箝絶ュ絶ュ絶ュ<E7B5B6> | 箝絶ュ絶ュ?| 笨?蟾イ螳梧<E89EB3>?| - |
| **ASL** | AI譎コ閭ス譁<EFBFBD>鍵 | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 竢?荳倶ク€豁?| P0 |
| **PKB** | 荳ェ莠コ遏・隸<EFBFBD>コ?| 箝絶ュ絶ュ?| 箝絶ュ絶ュ?| 笨?蟾イ螳梧<E89EB3>?| - |
| **DC** | 謨ー謐ョ貂<EFBFBD>エ玲紛逅<EFBFBD> | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 竢?隗<><E99A97>荳?| P1 |
| **SSA** | 譎コ閭ス扈溯ョ。蛻<EFBFBD>梵 | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ<E7B5B6> | 竢?隗<><E99A97>荳?| P2 |
| **ST** | 扈溯ョ。蛻<EFBFBD>梵蟾・蜈キ | 箝絶ュ絶ュ絶ュ<E7B5B6> | 箝絶ュ絶ュ絶ュ<E7B5B6> | 竢?隗<><E99A97>荳?| P2 |
| **RVW** | 遞ソ莉カ螳。譟・邉サ扈<EFBFBD> | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 笞?迢ャ遶狗ウサ扈<EFBDBB> | P1 |
| **ADMIN** | 霑占是邂。逅<EFBFBD>ォ?| 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 竢?隗<><E99A97>荳?| P1 |
| **AIA** | AI智能问答 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ✅ 已完成 | - |
| **ASL** | AI智能文献 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⏳ 下一步 | P0 |
| **PKB** | 个人知识库 | ⭐⭐⭐ | ⭐⭐⭐ | ✅ 已完成 | - |
| **DC** | 数据清洗整理 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⏳ 规划中 | P1 |
| **SSA** | 智能统计分析 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⏳ 规划中 | P2 |
| **ST** | 统计分析工具 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⏳ 规划中 | P2 |
| **RVW** | 稿件审查系统 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⚡ 独立系统 | P1 |
| **ADMIN** | 运营管理端 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⏳ 规划中 | P1 |
---
@@ -25,19 +25,19 @@
### 1. 独立部署
- 每个模块可以单独部署
- 支持Docker打包
- 謾ッ謖・lectron蜊墓惻迚?
- 支持Electron单机版
### 2. 迢ャ遶矩楳蜚?
### 2. 独立销售
- 每个模块可以单独售卖
- 完整的文档和部署指南
- 迢ャ遶狗噪螳壻サキ遲也<EFBFBD>?
- 独立的定价策略
### 3. 低耦合
- 模块间不直接依赖
- 騾夊ソ<EFBFBD>€夂畑閭ス蜉帛アゆコ、莠?
- 通过通用能力层交互
### 4. 鬮伜<EFBFBD>閨?
- 讓。蝮怜<EFBFBD>蜉溯<EFBFBD>螳梧<EFBFBD>?
### 4. 高内聚
- 模块内功能完整
- 业务逻辑闭环
---
@@ -45,21 +45,21 @@
## 📊 模块分类
### 核心差异化模块(可独立销售)
1. **ASL** - AI譎コ閭ス譁<EFBFBD>鍵 箝絶ュ絶ュ絶ュ絶ュ?
- 逶ョ譬<EFBFBD>ョ「謌キ<EFBFBD>夂ウサ扈溯ッ<EFBFBD>サキ遐皮ゥカ閠<EFBFBD>€∝セェ隸∝現蟄ヲ荳ュ蠢?
- <EFBFBD>ク壽ィ。蠑擾シ夂峡遶句醗蜊?
1. **ASL** - AI智能文献 ⭐⭐⭐⭐⭐
- 目标客户:系统评价研究者、循证医学中心
- 商业模式:独立售卖
2. **DC** - 謨ー謐ョ貂<EFBFBD>エ玲紛逅<EFBFBD> 箝絶ュ絶ュ絶ュ絶ュ?
2. **DC** - 数据清洗整理 ⭐⭐⭐⭐⭐
- 目标客户:临床科室、数据管理员
- <EFBFBD>ク壽ィ。蠑擾シ夂峡遶句醗蜊?
- 商业模式:独立售卖
3. **RVW** - 遞ソ莉カ螳。譟・邉サ扈<EFBFBD> 箝絶ュ絶ュ絶ュ絶ュ?
3. **RVW** - 稿件审查系统 ⭐⭐⭐⭐⭐
- 目标客户:期刊编辑部、出版社
- 商业模式:按期刊订阅
### 协同模块(组合销售)
4. **SSA** + **ST** - 统计分析套件
- 蜊丞酔謨亥コ泌シ?
- 协同效应强
- 组合售卖
### 基础模块(平台功能)
@@ -67,27 +67,27 @@
- 平台标配功能
### 管理模块
6. **ADMIN** - 霑占是邂。逅<EFBFBD>ォ?
6. **ADMIN** - 运营管理端
- SaaS运营必备
---
## <EFBFBD>答 蠢ォ騾溷ッシ闊?
## 📚 快速导航
### 快速上下文
- **[AI蟇ケ謗・] 荳壼苅讓。蝮怜ソォ騾滉ク贋ク区枚.md** - 2-3蛻<33>帖莠<E5B896>ァ」荳壼苅讓。蝮怜ア?
- **[AI对接] 业务模块快速上下文.md** - 2-3分钟了解业务模块层
### 核心模块(按优先级)
1. [ASL-AI譎コ閭ス譁<EFBFBD>](./ASL-AI譎コ閭ス譁<EFBFBD>/README.md) - P0<EFBFBD>御ク倶ク€豁・蠑€蜿?
1. [ASL-AI智能文献](./ASL-AI智能文献/README.md) - P0,下一步开发
2. [DC-数据清洗整理](./DC-数据清洗整理/README.md) - P1核心竞争力
3. [RVW-遞ソ莉カ螳。譟・邉サ扈歉(./RVW-遞ソ莉カ螳。譟・邉サ扈<EFBDBB>/README.md) - P1<EFBFBD>檎峡遶狗ウサ扈?
4. [ADMIN-霑占是邂。逅<EFBFBD>ォッ](./ADMIN-霑占是邂。逅<EFBFBD>ォ?README.md) - P1<EFBFBD>悟膚荳壼渕遑€
3. [RVW-稿件审查系统](./RVW-稿件审查系统/README.md) - P1,独立系统
4. [ADMIN-运营管理端](./ADMIN-运营管理端/README.md) - P1,商业基础
### 蟾イ螳梧<EFBFBD>讓。蝮?
5. [AIA-AI譎コ閭ス髣ョ遲脳(./AIA-AI譎コ閭ス髣ョ遲<EFBDAE>/README.md) - 蟾イ螳梧<EFBFBD>?
6. [PKB-荳ェ莠コ遏・隸<EFBFBD>コ転(./PKB-荳ェ莠コ遏・隸<EFBDA5>コ?README.md) - 蟾イ螳梧<EFBFBD>?
### 已完成模块
5. [AIA-AI智能问答](./AIA-AI智能问答/README.md) - 已完成
6. [PKB-个人知识库](./PKB-个人知识库/README.md) - 已完成
### <EFBFBD><EFBFBD>荳ュ讓。蝮?
### 规划中模块
7. [SSA-智能统计分析](./SSA-智能统计分析/README.md) - P2
8. [ST-统计分析工具](./ST-统计分析工具/README.md) - P2
@@ -96,8 +96,8 @@
## 🔗 相关文档
- [系统架构分层设计](../00-系统总体设计/01-系统架构分层设计.md)
- [蟷ウ蜿ー蝓コ遑€<EFBFBD>(../01-蟷ウ蜿ー蝓コ遑€螻?README.md)
- [騾夂畑閭ス蜉帛ア<EFBFBD>(../02-騾夂畑閭ス蜉帛ア?README.md)
- [平台基础层](../01-平台基础层/README.md)
- [通用能力层](../02-通用能力层/README.md)
---