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,92 +1,92 @@
# 设计文档完成总结
> **瀹屾垚鏃堕棿锛?* 2025-10-10
> **鑰楁椂锛?* 绾?灏忔椂
> **鐘舵€侊細** 鉁?宸插畬鎴?
> **完成时间:** 2025-10-10
> **耗时:** 约3小时
> **状态:** ✅ 已完成
---
## 🎉 恭喜!核心设计文档已全部完成
鎴戜滑鎸夌収鎮ㄦ彁鍑虹殑涓撲笟寮€鍙戞祦绋嬶紝鎴愬姛鍒涘缓浜嗗畬鏁寸殑璁捐<EFBFBD>鏂囨。浣撶郴銆傝繖涓烘帴涓嬫潵鐨勫紑鍙戝伐浣滃<EFBFBD>瀹氫簡鍧氬疄鐨勫熀纭€銆?
我们按照您提出的专业开发流程,成功创建了完整的设计文档体系。这为接下来的开发工作奠定了坚实的基础。
---
## 📚 已完成的文档清单
### 鉁?1. 鏂囨。鐩<EFBFBD>綍缁撴瀯
**鏂囦欢锛?* `docs/README.md`
### 1. 文档目录结构
**文件:** `docs/README.md`
- 寤虹珛浜?涓<>枃妗垎绫荤洰褰?
- 娓呮櫚鐨勬枃妗<EFBFBD><EFBFBD>郴缁?
- 建立了8个文档分类目录
- 清晰的文档导航系统
- 文档维护指南
### 鉁?2. 鏁版嵁搴撹<EFBFBD>璁℃枃妗紙771琛岋級
**鏂囦欢锛?* `docs/01-璁捐<EFBFBD>鏂囨。/鏁版嵁搴撹<E690B4>璁℃枃妗?md`
### 2. 数据库设计文档771行
**文件:** `docs/01-设计文档/数据库设计文档.md`
**鍖呭惈鍐呭<EFBFBD>锛?*
**包含内容:**
- 7个核心数据表设计
- 瀹屾暣鐨凟R鍥?
- 瀛楁<EFBFBD>璇存槑鍜岀害鏉?
- 完整的ER图
- 字段说明和约束
- 索引设计
- Prisma Schema
- 数据安全策略
- 性能优化建议
**核心表:**
1. users - 鐢ㄦ埛琛?
2. projects - 椤圭洰/璇鹃<E79287>琛?
3. conversations - 瀵硅瘽琛?
4. messages - 娑堟伅琛?
1. users - 用户表
2. projects - 项目/课题表
3. conversations - 对话表
4. messages - 消息表
5. knowledge_bases - 知识库表
6. documents - 鏂囨。琛?
6. documents - 文档表
7. admin_logs - 管理员日志表
### 鉁?3. API璁捐<EFBFBD>瑙勮寖锛?023琛岋級
**鏂囦欢锛?* `docs/01-璁捐<EFBFBD>鏂囨。/API璁捐<E79281>瑙勮寖.md`
### 3. API设计规范1023行
**文件:** `docs/01-设计文档/API设计规范.md`
**鍖呭惈鍐呭<EFBFBD>锛?*
**包含内容:**
- RESTful API设计原则
- 瀹屾暣鐨?涓<>ā鍧桝PI瀹氫箟
- 完整的8个模块API定义
- 请求/响应格式规范
- 错误处理规范
- 认证授权机制
- 分页规范
- 性能优化建议
**API妯″潡锛?*
1. 璁よ瘉妯″潡锛堟敞鍐?鐧诲綍/鍒锋柊Token锛?
**API模块:**
1. 认证模块(注册/登录/刷新Token
2. 用户模块(个人信息管理)
3. 项目管理模块
4. 瀵硅瘽绠$悊妯″潡锛堝惈娴佸紡杈撳嚭锛?
5. 鏅鸿兘浣撴ā鍧?
6. 鐭ヨ瘑搴撴ā鍧?
4. 对话管理模块(含流式输出)
5. 智能体模块
6. 知识库模块
7. 历史记录模块
8. 管理后台模块
### 鉁?4. 寮€鍙戦噷绋嬬<EFBFBD>锛?86琛岋級
**鏂囦欢锛?* `docs/04-寮€鍙戣<EFBFBD>鍒?寮€鍙戦噷绋嬬<E7BB8B>.md`
### 4. 开发里程碑586行
**文件:** `docs/04-开发计划/开发里程碑.md`
**鍖呭惈鍐呭<EFBFBD>锛?*
- 10鍛ㄨ<EFBFBD>缁嗗紑鍙戣<EFBFBD>鍒?
**包含内容:**
- 10周详细开发计划
- 5个里程碑定义
- 姣忔棩浠诲姟鍒嗚В锛圖ay 1-70锛?
- 每日任务分解Day 1-70
- 验收标准
- 风险管理
- 进度跟踪机制
**里程碑:**
- 璁捐<EFBFBD>闃舵<EFBFBD>锛欴ay 1-3 鉁?
- 閲岀▼纰?锛氬熀纭€鏋舵瀯 + 鐢ㄦ埛璁よ瘉锛圵eek 1-2锛?
- 閲岀▼纰?锛氶」鐩<E3808D><E990A9>鐞?+ 3涓<33>櫤鑳戒綋锛圵eek 3-4锛?
- 閲岀▼纰?锛?2涓<32>櫤鑳戒綋 + 鐭ヨ瘑搴擄紙Week 5-6锛?
- 閲岀▼纰?锛氬巻鍙茶<E98D99>褰?+ 鏂囨。鐢熸垚锛圵eek 7-8锛?
- 閲岀▼纰?锛氳繍钀ュ悗鍙?+ 娴嬭瘯浼樺寲锛圵eek 9-10锛?
- 设计阶段Day 1-3
- 里程碑1基础架构 + 用户认证Week 1-2
- 里程碑2项目管理 + 3个智能体Week 3-4
- 里程碑312个智能体 + 知识库(Week 5-6
- 里程碑4历史记录 + 文档生成Week 7-8
- 里程碑5运营后台 + 测试优化Week 9-10
### 鉁?5. 浠g爜瑙勮寖锛?00+琛岋級
**鏂囦欢锛?* `docs/02-寮€鍙戣<EFBFBD>鑼?浠g爜瑙勮寖.md`
### 5. 代码规范600+行)
**文件:** `docs/02-开发规范/代码规范.md`
**鍖呭惈鍐呭<EFBFBD>锛?*
**包含内容:**
- TypeScript规范
- React组件规范
- Node.js后端规范
@@ -94,99 +94,99 @@
- 注释规范
- Git提交规范
- ESLint/Prettier配置
- Code Review妫€鏌ユ竻鍗?
- Code Review检查清单
### 鉁?6. 鏍稿績涓氬姟瑙勫垯锛?00+琛岋級
**鏂囦欢锛?* `docs/03-涓氬姟瑙勫垯/鏍稿績涓氬姟瑙勫垯鎬昏<E98EAC>.md`
### 6. 核心业务规则700+行)
**文件:** `docs/03-业务规则/核心业务规则总览.md`
**鍖呭惈鍐呭<EFBFBD>锛?*
- 鐢ㄦ埛绠$悊瑙勫垯锛堟敞鍐?鐧诲綍/鏉冮檺锛?
- 椤圭洰绠悊瑙勫垯锛圕RUD/鏉冮檺楠岃瘉锛?
- 鏅鸿兘浣撶<EFBFBD>鐞嗚<EFBFBD>鍒欙紙閰嶇疆/Prompt锛?
- 瀵硅瘽绠$悊瑙勫垯锛堜笂涓嬫枃/娴佸紡杈撳嚭锛?
- 鐭ヨ瘑搴撶<EFBFBD>鐞嗚<EFBFBD>鍒欙紙閰嶉<EFBFBD>/鏂囨。澶勭悊锛?
- 鏉冮檺鎺у埗瑙勫垯锛圧BAC/鏁版嵁闅旂<E99785>锛?
- 閰嶉<EFBFBD>闄愬埗瑙勫垯锛堢煡璇嗗簱/API闄愭祦锛?
**包含内容:**
- 用户管理规则(注册/登录/权限)
- 项目管理规则CRUD/权限验证)
- 智能体管理规则(配置/Prompt
- 对话管理规则(上下文/流式输出)
- 知识库管理规则(配额/文档处理)
- 权限控制规则RBAC/数据隔离)
- 配额限制规则(知识库/API限流
**鍏抽敭瑙勫垯锛?*
- BR-K001: 姣忕敤鎴锋渶澶?涓<>煡璇嗗簱
- BR-K002: 姣忕煡璇嗗簱鏈€澶?0涓<30>枃妗?
**关键规则:**
- BR-K001: 每用户最多3个知识库
- BR-K002: 每知识库最多50个文档
- BR-K003: 只支持PDF和DOCX格式
- BR-K004: 鍗曟枃浠舵渶澶?0MB
- BR-C003: 椤圭洰鑳屾櫙鑷<EFBFBD>姩娉ㄥ叆涓婁笅鏂?
- BR-C006: 鍥哄畾娑堟伅鍒伴」鐩<EFBFBD>儗鏅?
- BR-K004: 单文件最大50MB
- BR-C003: 项目背景自动注入上下文
- BR-C006: 固定消息到项目背景
---
## 📊 文档统计
| 鏂囨。绫诲瀷 | 鏂囦欢鏁?| 鎬昏<E98EAC>鏁?| 鐘舵€?|
| 文档类型 | 文件数 | 总行数 | 状态 |
|---------|-------|--------|------|
| 鏁版嵁搴撹<EFBFBD>璁?| 1 | 771 | 鉁?|
| API璁捐<EFBFBD> | 1 | 1,023 | 鉁?|
| 寮€鍙戣<EFBFBD>鍒?| 1 | 586 | 鉁?|
| 浠g爜瑙勮寖 | 1 | 600+ | 鉁?|
| 涓氬姟瑙勫垯 | 1 | 700+ | 鉁?|
| **鎬昏<EFBFBD>** | **5** | **3,680+** | **鉁?* |
| 数据库设计 | 1 | 771 | |
| API设计 | 1 | 1,023 | |
| 开发计划 | 1 | 586 | |
| 代码规范 | 1 | 600+ | |
| 业务规则 | 1 | 700+ | |
| **总计** | **5** | **3,680+** | **✅** |
---
## 馃幆 璁捐<E79281>鏂囨。鐨勬牳蹇冧环鍊?
## 🎯 设计文档的核心价值
### 1. 涓哄墠鍚庣<EFBFBD>寮€鍙戞彁渚涘<EFBFBD>绾?
- 鉁?API璁捐<EFBFBD>瑙勮寖鏄<EFBFBD>墠鍚庣<EFBFBD>鍗忎綔鐨勫<EFBFBD>绾?
- 鉁?鍙<>互骞惰<E9AA9E>寮€鍙戯紝浜掍笉闃诲<E99783>
- 鉁?閬垮厤鎺ュ彛棰戠箒鍙樻洿
### 1. 为前后端开发提供契约
- API设计规范是前后端协作的契约
- ✅ 可以并行开发,互不阻塞
- ✅ 避免接口频繁变更
### 2. 閬垮厤寮€鍙戣繃绋嬩腑鐨勮繑宸?
- 鉁?鏁版嵁搴撹<E690B4>璁℃彁鍓嶇瀹氾紝鏀瑰姩鎴愭湰浣?
- 鉁?涓氬姟瑙勫垯鏄庣‘锛屽噺灏戠悊瑙e亸宸?
- 鉁?浠g爜瑙勮寖缁熶竴锛屾彁楂樿川閲?
### 2. 避免开发过程中的返工
- ✅ 数据库设计提前确定,改动成本低
- ✅ 业务规则明确,减少理解偏差
- ✅ 代码规范统一,提高质量
### 3. 提高团队协作效率
- 鉁?鏂版垚鍛樺揩閫熶笂鎵?
- 鉁?鍑忓皯娌熼€氭垚鏈?
- 鉁?Review鏈夋嵁鍙<EFBFBD>
- ✅ 新成员快速上手
- ✅ 减少沟通成本
- Review有据可依
### 4. 渚夸簬鍚庢湡缁存姢鍜屾墿灞?
- 鉁?鏂囨。鍖栫殑璁捐<E79281>鍐崇瓥
- 鉁?娓呮櫚鐨勪笟鍔¢€昏緫
- 鉁?鍙<>拷婧<E68BB7>殑鍙樻洿鍘嗗彶
### 4. 便于后期维护和扩展
- ✅ 文档化的设计决策
- ✅ 清晰的业务逻辑
- ✅ 可追溯的变更历史
---
## 馃殌 涓嬩竴姝ヨ<E5A79D>鍔?
## 🚀 下一步行动
### 立即可做(今天)
**1. Review设计文档**
- [ ] 浠旂粏闃呰<EFBFBD>鏁版嵁搴撹<EFBFBD>璁℃枃妗?
- [ ] 仔细阅读数据库设计文档
- [ ] 仔细阅读API设计规范
- [ ] 仔细阅读业务规则
- [ ] 鎻愬嚭鐤戦棶鍜屼紭鍖栧缓璁?
- [ ] 提出疑问和优化建议
**2. 团队讨论(如有团队)**
- [ ] 召开设计Review会议
- [ ] <EFBFBD><EFBFBD>鎶€鏈<EFBFBD>粏鑺?
- [ ] 确认技术细节
- [ ] 调整不合理的地方
**3. 鍑嗗<EFBFBD>寮€鍙戠幆澧?*
**3. 准备开发环境**
- [ ] 安装Docker Desktop ✅(已完成)
- [ ] 申请DeepSeek API Key ✅(已完成)
- [ ] 申请Qwen API Key ✅(已完成)
### 鏄庡ぉ寮€濮?
### 明天开始
**Day 4: 环境搭建**
- [ ] 创建项目目录结构
- [ ] 启动Docker服务
- [ ] 初始化Git仓库
- [ ] 楠岃瘉鎵€鏈夋湇鍔?
- [ ] 验证所有服务
**Day 5-7: 基础框架**
- [ ] 后端框架搭建
- [ ] 前端框架搭建
- [ ] 鏁版嵁搴撹縼绉?
- [ ] 数据库迁移
---
@@ -197,103 +197,103 @@
AIclinicalresearch/docs/
├── README.md # 文档导航
├── 00-项目概述/
鈹? 鈹斺攢鈹€ 璁捐<E79281>鏂囨。瀹屾垚鎬荤粨.md # <EFBFBD>枃妗?
│ └── 设计文档完成总结.md # 本文档
├── 01-设计文档/
鈹? 鈹溾攢鈹€ 鏁版嵁搴撹<E690B4>璁℃枃妗?md 猸?
鈹? 鈹斺攢鈹€ API璁捐<E79281>瑙勮寖.md 猸?
鈹溾攢鈹€ 02-寮€鍙戣<E98D99>鑼?
鈹? 鈹斺攢鈹€ 浠g爜瑙勮寖.md 猸?
│ ├── 数据库设计文档.md
│ └── API设计规范.md
├── 02-开发规范/
│ └── 代码规范.md
├── 03-业务规则/
鈹? 鈹斺攢鈹€ 鏍稿績涓氬姟瑙勫垯鎬昏<E98EAC>.md 猸?
鈹斺攢鈹€ 04-寮€鍙戣<E98D99>鍒?
鈹斺攢鈹€ 寮€鍙戦噷绋嬬<E7BB8B>.md 猸?
│ └── 核心业务规则总览.md
└── 04-开发计划/
└── 开发里程碑.md
```
---
## 💡 使用建议
### 瀵逛簬寮€鍙戣€?
1. **寮€鍙戝墠蹇呰<EFBFBD>锛?*
### 对于开发者
1. **开发前必读:**
- 数据库设计文档(了解表结构)
- API设计规范了解接口定义
- 浠g爜瑙勮寖锛堢粺涓€浠g爜椋庢牸锛?
- 代码规范(统一代码风格)
2. **开发中参考:**
- 涓氬姟瑙勫垯鎬昏<EFBFBD>锛堢悊瑙笟鍔¢€昏緫锛?
- 业务规则总览(理解业务逻辑)
- 开发里程碑(明确当前任务)
3. **遇到问题时:**
- 鍏堟煡闃呯浉鍏虫枃妗?
- 鏂囨。涓嶆竻妤氭椂鍐嶈<EFBFBD>璁?
- 先查阅相关文档
- 文档不清楚时再讨论
- 讨论结果更新文档
### 对于项目经理
1. **杩涘害绠$悊锛?*
1. **进度管理:**
- 参考开发里程碑
- 每周更新进度
- 椋庨櫓鍙婃椂娌熼€?
- 风险及时沟通
2. **璐ㄩ噺鎶婃帶锛?*
- Code Review鍙傝€冧唬鐮佽<EFBFBD>鑼?
- 楠屾敹鍙傝€冮獙鏀舵爣鍑?
- 涓氬姟閫昏緫鍙傝€冧笟鍔¤<EFBFBD>鍒?
2. **质量把控:**
- Code Review参考代码规范
- 验收参考验收标准
- 业务逻辑参考业务规则
---
## 鉁?楠屾敹妫€鏌?
## ✅ 验收检查
### 璁捐<EFBFBD>鏂囨。璐ㄩ噺妫€鏌?
### 设计文档质量检查
- [x] 数据库设计完整,包含所有核心表
- [x] API璁捐<EFBFBD>瑕嗙洊鎵€鏈夊姛鑳芥ā鍧?
- [x] 涓氬姟瑙勫垯娓呮櫚锛屾棤浜屼箟鎬?
- [x] API设计覆盖所有功能模块
- [x] 业务规则清晰,无二义性
- [x] 开发计划详细,可执行性强
- [x] 代码规范全面,有示例代码
### <EFBFBD>敤鎬ф<EFBFBD>鏌?
- [x] 鏂囨。缁撴瀯娓呮櫚锛屾槗浜庢煡鎵?
### 可用性检查
- [x] 文档结构清晰,易于查找
- [x] 术语统一,无矛盾之处
- [x] 鏈夊厖瓒崇殑绀轰緥鍜岃<EFBFBD>鏄?
- [x] 渚夸簬缁存姢鍜屾洿鏂?
- [x] 有充足的示例和说明
- [x] 便于维护和更新
---
## 🎊 总结
**鎴戜滑瀹屾垚浜嗕竴浠堕潪甯搁噸瑕佺殑宸ヤ綔锛?*
**我们完成了一件非常重要的工作!**
閫氳繃杩?灏忔椂鐨勫姫鍔涳紝鎴戜滑寤虹珛浜嗭細
- 鉁?**瀹屾暣鐨勬枃妗d綋绯?*锛?涓<>牳蹇冩枃妗3680+琛岋級
- 鉁?**娓呮櫚鐨勫紑鍙戣矾绾垮浘**锛?0鍛?0澶╄<E6BEB6>缁嗚<E7BC81>鍒掞級
- 鉁?**缁熶竴鐨勬妧鏈<E5A6A7><E98F88>鑼?*锛堟暟鎹<E69A9F>簱銆丄PI銆佷唬鐮侊級
- 鉁?**鏄庣鐨勪笟鍔¤<E98D94>鍒?*锛?0+鏉笟鍔¤<E98D94>鍒欙級
通过这3小时的努力我们建立了
- **完整的文档体系**5个核心文档3680+行)
- **清晰的开发路线图**10周70天详细计划
- **统一的技术规范**数据库、API、代码
- **明确的业务规则**70+条业务规则)
**这些文档的价值:**
- 馃挵 **鑺傜渷鏃堕棿**锛氶伩鍏嶅悗鏈熻繑宸ワ紝棰勮<E6A3B0>鑺傜渷15-20澶?
- 馃搱 **鎻愰珮璐ㄩ噺**锛氱粺涓€瑙勮寖锛屼唬鐮佽川閲忔洿楂?
- <EFBFBD> **闄嶄綆椋庨櫓**锛氳<E9949B>璁℃槑纭<E6A791>紝鎶€鏈<E282AC><E98F88>闄╁彲鎺?
- 馃殌 **鍔犲揩寮€鍙?*锛氫换鍔℃竻鏅帮紝骞惰<E9AA9E>寮€鍙戞洿楂樻晥
- 💰 **节省时间**:避免后期返工,预计节省15-20
- 📈 **提高质量**:统一规范,代码质量更高
- 🤝 **降低风险**:设计明确,技术风险可控
- 🚀 **加快开发**:任务清晰,并行开发更高效
---
## 馃幆 鐜板湪鍙<E6B9AA>互淇″績婊℃弧鍦板紑濮嬪紑鍙戜簡锛?
## 🎯 现在可以信心满满地开始开发了!
**基于这些文档,我们可以:**
1. 鉁?鍓嶅悗绔<E68297>苟琛屽紑鍙戯紙API宸插畾涔夛級
2. 鉁?鏁版嵁搴撶粨鏋勭ǔ瀹氾紙寰堝皯闇€瑕佽縼绉伙級
3. 鉁?涓氬姟閫昏緫鏄庣锛堝噺灏戠悊瑙亸宸<E4BAB8>
4. 鉁?浠g爜椋庢牸缁熶竴锛堜究浜庡崗浣滃拰Review锛?
5. 鉁?杩涘害鍙<E5AEB3>帶锛堟瘡鏃ヤ换鍔℃竻鏅帮級
1. ✅ 前后端并行开发API已定义
2. ✅ 数据库结构稳定(很少需要迁移)
3. ✅ 业务逻辑明确(减少理解偏差)
4. ✅ 代码风格统一(便于协作和Review
5. ✅ 进度可控(每日任务清晰)
---
**鍑嗗<EFBFBD>濂戒簡鍚楋紵璁╂垜浠<EFBFBD>紑濮婦ay 4鐨勫紑鍙戝伐浣滃惂锛?* 馃殌
**准备好了吗让我们开始Day 4的开发工作吧** 🚀
---
**鏂囨。鐗堟湰锛?* v1.0
**瀹屾垚鏃堕棿锛?* 2025-10-10
**鍒涘缓鑰咃細** AI鎶€鏈<EFBFBD>【闂?+ 椤圭洰鍥㈤槦
**文档版本:** v1.0
**完成时间:** 2025-10-10
**创建者:** AI技术顾问 + 项目团队