feat(admin): Complete tenant management and module access control system

Major Features:
- Tenant management CRUD (list, create, edit, delete, module configuration)
- Dynamic module management system (modules table with 8 modules)
- Multi-tenant module permission merging (ModuleService)
- Module access control middleware (requireModule)
- User module permission API (GET /api/v1/auth/me/modules)
- Frontend module permission filtering (HomePage + TopNavigation)

Module Integration:
- RVW module integrated with PromptService (editorial + methodology)
- All modules (RVW/PKB/ASL/DC) added authenticate + requireModule middleware
- Fixed ReviewTask foreign key constraint (cross-schema issue)
- Removed all MOCK_USER_ID, unified to request.user?.userId

Prompt Management Enhancements:
- Module names displayed in Chinese (RVW -> 智能审稿)
- Enhanced version history with view content and rollback features
- List page shows both activeVersion and draftVersion columns

Database Changes:
- Added platform_schema.modules table
- Modified tenant_modules table (added index and UUID)
- Removed ReviewTask foreign key to public.users (cross-schema fix)
- Seeded 8 modules: RVW, PKB, ASL, DC, IIT, AIA, SSA, ST

Documentation Updates:
- Updated ADMIN module development status
- Updated TODO checklist (89% progress)
- Updated Prompt management plan (Phase 3.5.5 completed)
- Added module authentication specification

Files Changed: 80+
Status: All features tested and verified locally
Next: User management module development
This commit is contained in:
2026-01-13 07:34:30 +08:00
parent 5523ef36ea
commit d595037316
51 changed files with 3550 additions and 287 deletions

View File

@@ -1,8 +1,8 @@
# ADMIN-运营管理端 - 模块当前状态与开发指南
> **最后更新:** 2026-01-11
> **状态:** 🚧 Phase 3.5.1-3.5.4 已完成Phase 3.5.5 待开发
> **版本:** v0.3 (Alpha)
> **最后更新:** 2026-01-12
> **状态:** Phase 3.5.5 已完成Phase 4.0 租户管理已完成
> **版本:** v0.4 (Alpha)
---
@@ -49,26 +49,40 @@
- [x] PromptEditorCodeMirror 6 简化版,中文友好)
- [x] PromptEditorPage编辑、保存、发布、测试、版本历史
### 🚧 进行中
**Phase 3.5.5RVW 模块集成** ✅ 已完成2026-01-12
- [x] RVW editorialService 集成 PromptService
- [x] RVW methodologyService 集成 PromptService
- [x] RVW reviewWorker 传递 userId
- [x] 修复 ReviewTask 外键约束问题(跨 schema 外键)
- [x] 全模块认证规范化RVW, PKB, ASL, DC
- [ ] **Phase 3.5.5RVW 模块集成**(下一步
**Phase 4.0:租户与模块管理** ✅ 已完成2026-01-12
- [x] 新增 modules 表(动态模块管理)
- [x] ModuleService多租户模块权限合并
- [x] requireModule 中间件(模块访问控制)
- [x] 所有业务模块添加 requireModule 检查
- [x] 租户管理后端 APICRUD + 模块配置)
- [x] 租户管理前端界面(列表、详情、编辑、模块配置)
- [x] 前端模块权限动态过滤(首页 + 导航)
- [x] Prompt 界面优化(模块中文显示、版本历史增强)
### ⏳ 待开发(按优先级)
**P0 - Prompt 系统收尾Day 7**
- [ ] RVW 模块集成(使用 PromptService
- [ ] 端到端测试
**P1 - 租户管理Week 3-4**
- [ ] 租户CRUD API
- [ ] 租户管理前端
- [ ] 品牌定制配置
- [ ] 租户专属登录页
**P1 - 用户与权限Week 4**
- [ ] 用户管理界面
**P1 - 用户管理Week 4-5**
- [ ] 用户管理界面(列表、创建、编辑
- [ ] 用户多租户关联配置
- [ ] 角色分配功能
- [ ] 权限配置界面
- [ ] 用户权限查看
**P2 - Prompt 管理优化**
- [ ] Prompt 版本对比功能
- [ ] Prompt 批量操作
- [ ] Prompt 导入/导出
**P2 - 租户高级功能**
- [ ] 品牌定制配置logo、主题色
- [ ] 租户专属登录页
- [ ] 配额管理界面
---
@@ -85,19 +99,20 @@ platform_schema.User -- 新的用户表Prisma
public.AdminLog -- 旧的审计日志
```
### ✅ 已创建的表2026-01-11
### ✅ 已创建的表2026-01-12
**platform_schema平台基础**
-`users` - 用户表(含 phone, password, role, is_default_password
-`tenants` - 租户表(含 PUBLIC 类型)
-`tenant_members` - 租户成员
-`tenant_modules` - 租户订阅模块
-`tenant_members` - 租户成员(支持用户加入多个租户)
-`tenant_modules` - 租户订阅模块(控制租户可访问的功能)
-`tenant_quotas` - 租户配额
-`tenant_quota_allocations` - 配额分配
-`departments` - 科室表
-`permissions` - 权限表(含 prompt:view/edit/debug/publish
-`permissions` - 权限表(含 prompt:*/tenant:* 权限
-`role_permissions` - 角色权限
-`verification_codes` - 验证码表
-`modules` - 系统模块表(动态管理可用模块)🆕 2026-01-12
**capability_schema通用能力** ✅ 新增
-`prompt_templates` - Prompt模板
@@ -156,7 +171,7 @@ public.AdminLog -- 旧的审计日志
## 📁 代码结构
### ✅ 实际已完成的结构2026-01-11
### ✅ 实际已完成的结构2026-01-12
**后端**
```
@@ -164,24 +179,41 @@ backend/src/
├── common/
│ ├── auth/ # ✅ 认证模块
│ │ ├── jwt.service.ts # JWT Token管理
│ │ ├── auth.service.ts # 业务逻辑437行
│ │ ├── auth.middleware.ts # 认证中间件
│ │ ├── auth.controller.ts # API控制器
│ │ ├── auth.service.ts # 业务逻辑
│ │ ├── auth.middleware.ts # 认证中间件 + requireModule 🆕
│ │ ├── module.service.ts # 🆕 模块权限服务(多租户合并)
│ │ ├── auth.controller.ts # API控制器 + getUserModules 🆕
│ │ ├── auth.routes.ts # 路由
│ │ └── index.ts
│ │
│ └── prompt/ # ✅ Prompt管理
│ ├── prompt.types.ts # 类型定义
│ ├── prompt.service.ts # 核心服务596行
│ ├── prompt.controller.ts # API控制器419行
│ ├── prompt.routes.ts # 路由224行
│ ├── prompt.service.ts # 核心服务
│ ├── prompt.controller.ts # API控制器增强版本返回)🆕
│ ├── prompt.routes.ts # 路由
│ ├── prompt.fallbacks.ts # 兜底Prompt
│ └── index.ts
├── modules/
│ ├── admin/ # 🆕 租户管理模块
│ │ ├── types/
│ │ │ └── tenant.types.ts # 租户类型定义
│ │ ├── services/
│ │ │ └── tenantService.ts # 租户业务逻辑
│ │ ├── controllers/
│ │ │ └── tenantController.ts # 租户控制器
│ │ └── routes/
│ │ └── tenantRoutes.ts # 租户路由
│ │
│ ├── rvw/ # ✅ RVW模块已集成PromptService
│ ├── pkb/ # ✅ PKB模块已添加认证
│ ├── asl/ # ✅ ASL模块已添加认证
│ └── dc/ # ✅ DC模块已添加认证
backend/scripts/
├── setup-prompt-system.ts # 初始化脚本
├── migrate-rvw-prompts.ts # ✅ RVW迁移脚本
└── test-prompt-service.ts # ✅ 测试脚本
├── seed-modules.js # 🆕 模块数据初始化
├── query-users.js # 查询用户和租户信息
└── [其他脚本]
```
**前端**
@@ -189,19 +221,32 @@ backend/scripts/
frontend-v2/src/
├── framework/
│ ├── auth/ # ✅ 认证框架
│ │ ├── AuthContext.tsx # 认证上下文207行
│ │ ├── api.ts # 认证API243行
│ │ ├── AuthContext.tsx # 认证上下文
│ │ ├── api.ts # 认证API
│ │ ├── moduleApi.ts # 🆕 用户模块权限API
│ │ └── types.ts
│ │
│ ├── modules/ # ✅ 模块注册
│ │ ├── moduleRegistry.ts # 模块注册新增moduleCode🆕
│ │ └── types.ts # 模块类型定义
│ │
│ └── layout/ # ✅ 布局组件
│ ├── MainLayout.tsx # 业务端布局
│ ├── AdminLayout.tsx # 运营管理端布局237行
│ ├── OrgLayout.tsx # 机构管理端布局257行
│ └── TopNavigation.tsx # 顶部导航(含切换入口)
│ ├── AdminLayout.tsx # 运营管理端布局
│ ├── OrgLayout.tsx # 机构管理端布局
│ └── TopNavigation.tsx # 顶部导航(模块权限过滤)🆕
├── pages/
│ ├── HomePage.tsx # 首页(模块权限过滤)🆕
│ ├── admin/ # ✅ 运营管理端页面
│ │ ├── AdminDashboard.tsx # 概览页
│ │ ├── PromptListPage.tsx # Prompt列表模块中文显示🆕
│ │ ├── PromptEditorPage.tsx # Prompt编辑版本历史增强🆕
│ │ ├── tenants/ # 🆕 租户管理页面
│ │ │ ├── TenantListPage.tsx # 租户列表
│ │ │ ├── TenantDetailPage.tsx # 租户详情/编辑/模块配置
│ │ │ └── api/
│ │ │ └── tenantApi.ts # 租户API调用
│ │ ├── PromptListPage.tsx # ✅ Prompt列表254行
│ │ ├── PromptEditorPage.tsx # ✅ Prompt编辑器399行
│ │ ├── components/