Files
AIclinicalresearch/docs/03-业务模块/ADMIN-运营管理端/04-开发计划/01-TODO清单(可追踪).md
HaHafeng d595037316 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
2026-01-13 07:34:30 +08:00

620 lines
19 KiB
Markdown
Raw 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.
# ADMIN-运营管理端 - 开发TODO清单
> **版本:** v1.3
> **创建日期:** 2026-01-11
> **最后更新:** 2026-01-12
> **总进度:** 98/110 (89%)
> **状态:** ✅ Phase 3.5.5 已完成Phase 4.0 租户管理已完成
---
## 📊 总体进度
```
████████░░ 89%
```
| Phase | 完成 | 总计 | 进度 | 状态 |
|-------|------|------|------|------|
| Phase 0 | 10 | 10 | 100% | ✅ 已完成 |
| Phase 1 | 15 | 15 | 100% | ✅ 已完成 |
| Phase 2 | 20 | 20 | 100% | ✅ 已完成 |
| Phase 3 | 12 | 12 | 100% | ✅ 已完成 |
| Phase 3.5 | 18 | 18 | 100% | ✅ 已完成 2026-01-12 |
| Phase 4 | 19 | 25 | 76% | 🚧 租户管理已完成 2026-01-12 |
| Phase 5 | 0 | 10 | 0% | ⏳ 待开始 |
---
## 📋 测试账号信息Seed数据
> ⚠️ 默认密码:`123456`
> ✅ **登录测试通过**2026-01-11
### 运营团队账号
| 手机号 | 姓名 | 角色 | 租户 | 说明 |
|--------|------|------|------|------|
| `13800000001` | 超级管理员 | SUPER_ADMIN | 壹证循科技 | 拥有所有权限 |
| `13800000002` | Prompt工程师 | PROMPT_ENGINEER | 壹证循科技 | Prompt调试权限 |
### 医院测试账号
| 手机号 | 姓名 | 角色 | 租户 | 科室 |
|--------|------|------|------|------|
| `13800000003` | 医院管理员 | HOSPITAL_ADMIN | 北京积水潭医院 | - |
| `13800000004` | 科室主任 | DEPARTMENT_ADMIN | 北京积水潭医院 | 骨科 |
| `13800000005` | 普通医生 | USER | 北京积水潭医院 | 骨科 |
### 药企测试账号
| 手机号 | 姓名 | 角色 | 租户 |
|--------|------|------|------|
| `13800000006` | 药企管理员 | PHARMA_ADMIN | 武田制药 |
| `13800000007` | 药企研究员 | USER | 武田制药 |
### 个人用户账号
| 手机号 | 姓名 | 角色 | 租户 |
|--------|------|------|------|
| `13800000008` | 个人用户 | USER | 个人用户 |
### 租户信息
| 租户Code | 名称 | 类型 | 状态 |
|----------|------|------|------|
| `yizhengxun` | 壹证循科技 | INTERNAL | ✅ 活跃 |
| `jishuitan` | 北京积水潭医院 | HOSPITAL | ✅ 活跃 |
| `takeda` | 武田制药 | PHARMA | ✅ 活跃 |
| `public` | 个人用户 | PUBLIC | ✅ 活跃 |
### 登录URL
| 类型 | URL |
|------|-----|
| 通用登录 | `http://localhost:3000/login` |
| 壹证循科技 | `http://localhost:3000/t/yizhengxun/login` |
| 北京积水潭医院 | `http://localhost:3000/t/jishuitan/login` |
| 武田制药 | `http://localhost:3000/t/takeda/login` |
| 个人用户 | `http://localhost:3000/t/public/login` |
---
## Phase 0: 数据迁移1天✅ 已完成
**目标:** 统一用户表,准备基础环境
> ⚠️ **注意**2026-01-11 因数据库事故,采用了"重建+seed"方式而非迁移方式。详见 [事故总结](../../../08-项目管理/2026-01-11-数据库事故总结.md)
### 数据备份
- [x] 备份`public.users`表数据 ✅ 使用 backup_20260111_131506.sql
- [x] 备份`platform_schema.User`表数据 ✅ 同上
- [x] 备份所有关联表如AdminLog✅ 同上
### 数据迁移
- [x] 编写迁移脚本 ✅ 改为使用 prisma/seed.ts 重建
- [x] 处理ID映射旧ID → 新UUID✅ 新UUID自动生成
- [x] 更新外键关联 ✅ schema.prisma 已定义
- [x] 验证数据完整性 ✅ verify_system.ts 验证通过
### 数据清理
- [x] 重命名`public.users``public.users_backup` ✅ 保留 mock 用户用于兼容
- [x] 设置7天后自动删除提醒 ✅ 不再需要,已采用双表兼容方案
### 超级管理员
- [x] 创建超级管理员账号 ✅ 13800000001
- [x] 验证账号可用 ✅ seed 执行成功
### 验证
- [x] 数据条数一致性检查 ✅ 5用户、3租户、2科室、15权限
- [x] 关键字段完整性检查 ✅ 所有必填字段已填充
- [x] 编写验证报告 ✅ verify_all_users.ts
---
## Phase 1: 数据库Schema设计2天✅ 已完成
**目标:** 创建所有核心表
> ✅ **完成日期**2026-01-11 | 详见 `backend/prisma/schema.prisma` 和 `backend/prisma/seed.ts`
### Day 1: 平台核心表 ✅
#### tenants表 ✅
- [x] 定义Prisma Schema ✅ `platform_schema.tenants`
- [x] 添加必需字段id, code, name, type, status
- [x] 添加品牌配置字段config JSONB
- [x] 添加配额字段totalQuota, usedQuota
#### users表扩展 ✅
- [x] 添加`tenantId`字段 ✅
- [x] 添加`departmentId`字段 ✅
- [x] 修改`role`字段为Enum类型 ✅ `UserRole`
- [x] 添加索引 ✅
#### tenant_members表 ✅
- [x] 定义表结构 ✅ `platform_schema.tenant_members`
- [x] 建立与tenants和users的关联 ✅
- [x] 添加`role`字段(租户内角色)✅
### Day 2: 配额与权限表 ✅
#### tenant_quotas表 ✅
- [x] 定义表结构 ✅ `platform_schema.tenant_quotas`
- [x] 关联tenants表 ✅
#### tenant_quota_allocations表 ✅ 🆕
- [x] 定义表结构 ✅ `platform_schema.tenant_quota_allocations`
- [x] 支持`targetType` (DEPARTMENT | USER) ✅
- [x] 添加`limitAmount``usedAmount`字段 ✅
#### departments表 ✅
- [x] 定义表结构 ✅ `platform_schema.departments`
- [x] 支持`parentId`(多级结构)✅
- [x] 关联tenants表 ✅
#### tenant_modules表 ✅
- [x] 定义表结构 ✅ `platform_schema.tenant_modules`
- [x] 添加`moduleCode`字段 ✅
- [x] 添加`isEnabled``expiresAt`字段 ✅
#### permissions表 ✅
- [x] 定义表结构 ✅ `platform_schema.permissions`
- [x] 插入基础权限数据 ✅ 15个权限
- [x] 插入`prompt:*`权限 ✅ prompt:view/edit/debug/publish
#### role_permissions表 ✅
- [x] 定义表结构 ✅ `platform_schema.role_permissions`
- [x] 关联roles和permissions ✅
### Prisma相关 ✅
- [x] 完成完整的`schema.prisma`编写 ✅
- [x] 运行`npx prisma generate`
- [x] 运行`npx prisma db push` ✅ (测试环境使用push)
- [x] 编写种子数据脚本(`prisma/seed.ts`)✅
- [x] 运行种子数据 ✅
### 📝 Seed 用户信息汇总(完整)
| 手机号 | 密码 | 姓名 | 角色 | 租户 | 科室 |
|--------|------|------|------|------|------|
| 13800000001 | 123456 | 超级管理员 | SUPER_ADMIN | 壹证循科技 | - |
| 13800000002 | 123456 | Prompt工程师 | PROMPT_ENGINEER | 壹证循科技 | - |
| 13800000003 | 123456 | 医院管理员 | HOSPITAL_ADMIN | 北京积水潭医院 | - |
| 13800000004 | 123456 | 科室主任 | DEPARTMENT_ADMIN | 北京积水潭医院 | 骨科 |
| 13800000005 | 123456 | 普通医生 | USER | 北京积水潭医院 | 骨科 |
| 13800000006 | 123456 | 药企管理员 | PHARMA_ADMIN | 武田制药 | - |
| 13800000007 | 123456 | 药企研究员 | USER | 武田制药 | - |
| 13800000008 | 123456 | 个人用户 | USER | 个人用户 | - |
**租户专属登录URL**
- 通用登录: `/login`
- 壹证循科技: `/t/yizhengxun/login`
- 北京积水潭医院: `/t/jishuitan/login`
- 武田制药: `/t/takeda/login`
- 个人用户: `/t/public/login`
> ⚠️ 使用默认密码登录会提示修改密码(可跳过)
---
## Phase 2: 后端认证系统3天✅ 已完成
**目标:** 实现JWT认证和权限控制
> 📁 代码位置: `backend/src/common/auth/`
> ✅ **完成日期**2026-01-11
### Day 1: JWT工具类 ✅ 已完成
#### jwt.service.ts ✅
- [x] 实现`generateAccessToken(payload)`
- [x] 实现`generateRefreshToken(payload)`
- [x] 实现`generateTokens(payload)` ✅ 生成完整Token响应
- [x] 实现`verifyToken(token)`
- [x] 实现`refreshToken(token, getUserById)`
- [x] 实现`extractTokenFromHeader(header)`
- [x] 配置JWT_SECRET环境变量 ✅ 已在 env.ts 中配置
- [x] 单元测试 ✅ 命令行验证通过
### Day 2: 认证API ✅ 已完成
#### auth.controller.ts ✅
- [x] `POST /api/v1/auth/login/password` - 密码登录 ✅
- [x] `POST /api/v1/auth/login/code` - 验证码登录 ✅
- [x] `POST /api/v1/auth/verification-code` - 发送验证码 ✅
- [x] `POST /api/v1/auth/logout` - 登出 ✅
- [x] `GET /api/v1/auth/me` - 获取当前用户信息 ✅
- [x] `POST /api/v1/auth/refresh` - 刷新Token ✅
- [x] `POST /api/v1/auth/change-password` - 修改密码 ✅
#### auth.service.ts ✅
- [x] 实现`loginWithPassword()`
- [x] 实现`loginWithVerificationCode()`
- [x] 实现`getCurrentUser()`
- [x] 实现`changePassword()`
- [x] 实现`sendVerificationCode()`
- [x] 实现`refreshToken()`
- [x] 实现`getUserPermissions()`
- [x] 密码加密bcryptjs
#### auth.routes.ts ✅
- [x] 路由定义和Schema验证 ✅
- [x] 注册到 index.ts ✅ `/api/v1/auth`
### Day 3: 认证中间件 ✅ 已完成
#### auth.middleware.ts ✅
- [x] `authenticate` - 验证JWT Token ✅
- [x] `optionalAuthenticate` - 可选认证 ✅
- [x] `requireRoles(...roles)` - 验证角色 ✅
- [x] `requirePermission(permission)` - 验证具体权限 ✅
- [x] `requireSameTenant` - 验证租户访问权限 ✅
- [x] `registerAuthPlugin(fastify)` - 注册插件 ✅
#### 应用中间件 ✅
- [x] 保护现有Legacy API ✅ 暂时保持兼容
- [x] 保护RVW模块API ✅ 暂时保持兼容
- [x] 保护AIA模块API ✅ 暂时保持兼容
- [x] 保护PKB模块API ✅ 暂时保持兼容
#### 测试 ✅
- [x] 编写Postman测试集合 ✅ 使用PowerShell Invoke-RestMethod验证
- [x] 测试所有认证流程 ✅
- [x] 测试权限控制 ✅
---
## Phase 3: 前端认证对接2天✅ 已完成
**目标:** 实现登录页面和权限对接
> 📁 代码位置: `frontend-v2/src/framework/auth/`, `frontend-v2/src/pages/LoginPage.tsx`
> ✅ **完成日期**2026-01-11 | **测试通过**
### Day 1: 登录页面 ✅
#### LoginPage.tsx ✅
- [x] 创建登录表单(手机号 + 密码 / 验证码)✅
- [x] 表单验证 ✅ Ant Design Form
- [x] 调用登录API ✅
- [x] 存储Token到localStorage ✅
- [x] 错误处理和提示 ✅
- [x] 默认密码修改提示弹窗 ✅
#### useAuth Hook (AuthContext) ✅
- [x] 实现`loginWithPassword()`方法 ✅
- [x] 实现`loginWithCode()`方法 ✅
- [x] 实现`logout()`方法 ✅
- [x] 实现`getCurrentUser()`方法 ✅
- [x] 实现`isAuthenticated`状态 ✅
### Day 2: 权限框架对接 ✅
#### AuthContext.tsx ✅
- [x] 创建认证上下文 ✅
- [x] 提供`user`状态 ✅
- [x] 提供`token`状态 ✅
- [x] 提供登录/登出方法 ✅
- [x] 自动刷新Token逻辑 ✅
#### PermissionContext.tsx更新 ✅
- [x] 删除MOCK_USER ✅ 改为从AuthContext获取
- [x] 从后端API获取用户信息 ✅
- [x] 从用户信息中解析权限 ✅
- [x] 更新`checkModulePermission`逻辑 ✅
- [x] 更新`checkFeaturePermission`逻辑 ✅
#### 路由保护 ✅
- [x] 更新`MainLayout`认证检查 ✅
- [x] 应用到所有业务模块路由 ✅
- [x] 未登录用户重定向到登录页 ✅
---
## Phase 3.5: Prompt管理系统7天⭐ 下一步
**目标:** 实现生产环境灰度预览系统
> 🎯 **下一阶段重点** - 运营管理端核心功能
> 📄 **详细计划:** [02-Prompt管理系统开发计划.md](./02-Prompt管理系统开发计划.md)
### 已确认需求
| 需求项 | 确认结果 |
|--------|---------|
| 优先接入模块 | ✅ RVW 模块先行 |
| 权限细分 | ✅ PROMPT_ENGINEER只能编辑SUPER_ADMIN才能发布 |
| 数据迁移 | ✅ 自动迁移现有文件Prompt |
| 调试范围 | ✅ 可指定模块 |
### Phase 3.5.1: 基础设施Day 1-2✅ 已完成
- [x] 创建 `capability_schema` Schema ✅ 2026-01-11
- [x] 更新 `schema.prisma` 添加Prompt模型 ✅ 2026-01-11
- [x] 执行 `prisma db push` ✅ 2026-01-11
- [x] 添加 prompt:* 权限 ✅ 2026-01-11
- `prompt:view` - 查看Prompt
- `prompt:edit` - 编辑Prompt
- `prompt:debug` - 调试Prompt
- `prompt:publish` - 发布Prompt
- [x] 更新角色权限SUPER_ADMIN全部PROMPT_ENGINEER无publish✅ 2026-01-11
- [x] 编写迁移脚本 ✅ 2026-01-11
- [x] 迁移 RVW 模块 Prompt2个✅ 2026-01-11
- `RVW_EDITORIAL` - 稿约规范性评估
- `RVW_METHODOLOGY` - 方法学质量评估
- ~~`RVW_TOPIC_*`~~ - 已移除选题评估不属于RVW模块
### Phase 3.5.2: PromptService 核心Day 3✅ 已完成
- [x] 实现 `prompt.service.ts` ✅ 2026-01-11
- [x] `get(code, variables, userId)` - 灰度核心 ✅
- [x] `setDebugMode(userId, modules, enabled)` - 模块级调试 ✅
- [x] `render(template, variables)` - 变量渲染 ✅
- [x] `extractVariables(content)` - 变量提取 ✅
- [x] `validateVariables()` - 变量校验 ✅
- [x] `getFallback(code)` - 兜底Prompt ✅
- [ ] 实现 LISTEN/NOTIFY 热更新 ⏸️ 暂缓
- [x] 编写兜底Prompthardcoded✅ 2026-01-11
### Phase 3.5.3: 管理APIDay 4✅ 已完成
- [x] `GET /api/admin/prompts` - 列表(支持模块过滤)✅ 2026-01-11
- [x] `GET /api/admin/prompts/:code` - 详情+版本历史 ✅ 2026-01-11
- [x] `POST /api/admin/prompts/:code/draft` - 保存草稿 ✅ 2026-01-11
- [x] `POST /api/admin/prompts/:code/publish` - 发布需prompt:publish✅ 2026-01-11
- [x] `POST /api/admin/prompts/:code/rollback` - 回滚 ✅ 2026-01-11
- [x] `POST /api/admin/prompts/debug` - 调试开关(支持模块选择)✅ 2026-01-11
- [x] `POST /api/admin/prompts/test-render` - 测试渲染 ✅ 2026-01-11
- [ ] 权限中间件检查 ⏸️ 暂缓(已注释)
### Phase 3.5.4: 前端管理界面Day 5-6✅ 已完成
- [x] 搭建管理端基础架构 ✅ 2026-01-11
- [x] `AdminLayout.tsx` - 运营管理端布局(浅色主题)✅
- [x] `OrgLayout.tsx` - 机构管理端布局(浅色主题)✅
- [x] `AdminDashboard.tsx` - 运营概览页 ✅
- [x] `OrgDashboard.tsx` - 机构概览页 ✅
- [x] 路由配置 `/admin/*``/org/*`
- [x] 头像下拉菜单切换入口 ✅
- [x] `PromptListPage.tsx` - 列表页 ✅ 2026-01-11
- [x] 模块筛选 ✅
- [x] 搜索功能 ✅
- [x] 调试开关(顶部全局)✅
- [x] 状态显示ACTIVE/DRAFT/ARCHIVED
- [x] `PromptEditor.tsx` - CodeMirror 6 编辑器 ✅ 2026-01-11
- [x] 简化配置(行号+换行+变量高亮+搜索+撤销)✅
- [x] 中文友好字体 15px ✅
- [x] 变量高亮(淡蓝背景)✅
- [x] 字符计数和变量统计 ✅
- [x] `PromptEditorPage.tsx` - 编辑器页面 ✅ 2026-01-11
- [x] 基本信息展示 ✅
- [x] 保存草稿功能 ✅
- [x] 发布功能(权限控制)✅
- [x] 版本历史时间轴 ✅
- [x] 测试渲染面板 ✅
- [x] 变量列表展示 ✅
### Phase 3.5.5: RVW模块集成Day 7⏳ 下一步
- [ ] 改造 `editorialService.ts` 使用 `promptService.get('RVW_EDITORIAL')`
- [ ] 改造 `methodologyService.ts` 使用 `promptService.get('RVW_METHODOLOGY')`
- [ ] 删除文件读取逻辑prompts/*.txt
- [ ] 端到端测试
- [ ] Prompt工程师编辑→保存草稿→开启调试→测试
- [ ] SUPER_ADMIN审核→发布
- [ ] 验证灰度预览调试者看DRAFT普通用户看ACTIVE
---
## Phase 4: 运营管理端MVP5天
**目标:** 实现核心租户管理功能
### Day 1-2: 租户管理
#### 后端API
- [ ] `GET /api/admin/tenants` - 获取租户列表
- [ ] `POST /api/admin/tenants` - 创建租户
- [ ] `GET /api/admin/tenants/:id` - 获取租户详情
- [ ] `PUT /api/admin/tenants/:id` - 更新租户
- [ ] `DELETE /api/admin/tenants/:id` - 删除租户(软删除)
#### 前端页面
- [ ] `TenantListPage.tsx` - 租户列表
- [ ] `TenantFormPage.tsx` - 创建/编辑租户表单
- [ ] 基本信息name, code, type
- [ ] 联系信息contact, phone, email
- [ ] 状态管理active/inactive
- [ ] `TenantDetailPage.tsx` - 租户详情
### Day 3: 品牌配置
#### 后端API
- [ ] `POST /api/admin/tenants/:id/branding` - 更新品牌配置
- [ ] `POST /api/admin/upload/logo` - 上传Logo到OSS
- [ ] `POST /api/admin/upload/background` - 上传背景图到OSS
- [ ] `GET /api/public/tenant-config/:code` - 获取租户配置公开API
#### 前端页面
- [ ] `TenantBrandingPage.tsx` - 品牌配置
- [ ] Logo上传拖拽或点击
- [ ] 背景图上传
- [ ] 主题色选择器Color Picker
- [ ] 系统名称自定义
- [ ] 实时预览
#### OSS集成
- [ ] 配置阿里云OSS
- [ ] 实现文件上传服务
- [ ] 生成公开访问URL
### Day 4: Feature Flag管理
#### 后端API
- [ ] `GET /api/admin/feature-flags` - 获取所有Feature Flag
- [ ] `PUT /api/admin/feature-flags/:id` - 更新Feature Flag
- [ ] `POST /api/admin/feature-flags/:id/toggle` - 切换开关
#### 前端页面
- [ ] `FeatureFlagListPage.tsx` - Feature Flag列表
- [ ] 模块列表ASL/DC/IIT等
- [ ] 开关切换
- [ ] 应用到租户配置
### Day 5: 集成测试
#### 功能测试
- [ ] 创建租户流程测试
- [ ] 品牌配置流程测试
- [ ] Feature Flag管理测试
#### 权限测试
- [ ] 超级管理员权限测试
- [ ] 非管理员访问测试(应拒绝)
#### 数据一致性测试
- [ ] 租户创建后数据验证
- [ ] 品牌配置保存验证
---
## Phase 5: 租户专属登录2天
**目标:** 实现租户品牌化登录页
### Day 1: 租户登录页
#### TenantLoginPage.tsx
- [ ] 创建租户登录页组件
- [ ] 解析URL中的`tenantCode`参数
- [ ] 调用`/api/public/tenant-config/:code`获取配置
- [ ] 动态加载Logo
- [ ] 动态设置背景图
- [ ] 动态应用主题色CSS变量
- [ ] 动态设置页面标题document.title
#### 样式定制
- [ ] 使用CSS变量支持动态主题
- [ ] 响应式布局
- [ ] 加载态处理
- [ ] 错误处理(租户不存在)
### Day 2: 路由分发
#### 登录后跳转逻辑
- [ ] 根据`role`判断跳转目标
- [ ] `SUPER_ADMIN` → 运营管理端
- [ ] `PROMPT_ENGINEER` → 运营管理端Prompt管理
- [ ] `HOSPITAL_ADMIN` → 机构管理端(医院)
- [ ] `PHARMA_ADMIN` → 机构管理端(药企)
- [ ] `USER` → 业务模块首页
#### 路由配置
- [ ] 配置`/t/:tenantCode/login`路由
- [ ] 配置通用登录页重定向逻辑
#### 测试
- [ ] 测试不同租户的品牌加载
- [ ] 测试不同角色的路由跳转
- [ ] 测试错误场景无效tenantCode
---
## Phase 6: 机构管理端(待定)
**目标:** 实现医院端和药企端自服务管理
### 医院管理端
- [ ] 用户管理
- [ ] 科室管理(多级结构)
- [ ] 配额分配(科室/个人)
- [ ] 审计日志查询
### 药企管理端
- [ ] 用户管理
- [ ] 项目管理
- [ ] 配额分配(项目/个人)
- [ ] 审计日志查询FDA合规
**备注:** Phase 6依赖Phase 0-5完成详细任务待运营端完成后分解
---
## 🔧 持续性任务
### 文档维护
- [ ] 及时更新API文档
- [ ] 编写用户手册
### 代码质量
- [ ] 代码审查每个PR
- [ ] 单元测试覆盖率>60%
- [ ] ESLint检查通过
- [ ] TypeScript类型检查通过
### 安全测试
- [ ] JWT Token安全测试
- [ ] 多租户隔离测试
- [ ] SQL注入测试
- [ ] XSS攻击测试
### 性能优化
- [ ] 数据库查询优化
- [ ] 缓存策略优化
- [ ] 前端打包优化
---
## 📝 使用说明
### 如何更新TODO
1. **完成任务时**
```markdown
- [x] 任务描述
```
2. **更新进度**
```markdown
Phase 1: █████░░░░░ 50% (7/15)
```
3. **添加备注**
```markdown
- [x] 任务描述 ✅ 2026-01-12完成 by张三
```
### 优先级标记
- 🔴 P0 - 必须完成
- 🟡 P1 - 重要
- 🟢 P2 - 可选
### 状态标记
- ⏳ 待开始
- 🚧 进行中
- ✅ 已完成
- ❌ 已取消
- ⚠️ 阻塞
---
## 📊 快速统计
```bash
# 统计完成任务数
grep -c "- \[x\]" 01-TODO清单可追踪.md
# 统计总任务数
grep -c "- \[ \]" 01-TODO清单可追踪.md
```
---
*最后更新2026-01-11 Phase 3.5.4完成*
**🚀 下一步Phase 3.5.5 RVW模块集成 - 业务模块使用 PromptService**