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
8.6 KiB
8.6 KiB
ADMIN-运营管理端 - 总体开发计划
版本: v1.0
创建日期: 2026-01-11
基于文档:00-权限与角色体系梳理报告_v1.0.md
状态: 📋 计划中
预计工期: 3-4周(20人天)
📅 开发时间表
总览
| Phase | 名称 | 工期 | 状态 | 开始日期 | 结束日期 |
|---|---|---|---|---|---|
| Phase 0 | 数据迁移 | 1天 | ⏳ 待开始 | TBD | TBD |
| Phase 1 | 数据库Schema设计 | 2天 | ⏳ 待开始 | TBD | TBD |
| Phase 2 | 后端认证系统 | 3天 | ⏳ 待开始 | TBD | TBD |
| Phase 3 | 前端认证对接 | 2天 | ⏳ 待开始 | TBD | TBD |
| Phase 3.5 | 🆕 Prompt管理系统 | 5天 | ⏳ 待开始 | TBD | TBD |
| Phase 4 | 运营管理端MVP | 5天 | ⏳ 待开始 | TBD | TBD |
| Phase 5 | 租户专属登录 | 2天 | ⏳ 待开始 | TBD | TBD |
| Phase 6 | 机构管理端 | TBD | ⏳ 待开始 | TBD | TBD |
总计: 20天(不含Phase 6机构管理端)
🎯 里程碑
M1: 基础设施就绪(Phase 0-1,3天)
- ✅ 用户表统一(public.users → platform_schema.users)
- ✅ 数据库Schema完整创建
- ✅ 超级管理员种子数据
M2: 认证系统可用(Phase 2-3,5天)
- ✅ JWT认证系统实现
- ✅ 登录/登出功能可用
- ✅ 所有API加上认证保护
M3: Prompt管理系统可用(Phase 3.5,5天)⭐
- ✅ PromptService实现
- ✅ Prompt管理API
- ✅ Prompt管理前端界面
- ✅ 全局调试开关
M4: 运营管理端MVP(Phase 4,5天)
- ✅ 租户管理(CRUD)
- ✅ 品牌配置(Logo/背景/主题色)
- ✅ Feature Flag管理
M5: 租户专属登录(Phase 5,2天)
- ✅ 租户专属登录页(
/t/{code}/login) - ✅ 品牌动态加载
- ✅ 智能路由分发
M6: 机构管理端(Phase 6,待定)
- 🔄 医院管理端
- 🔄 药企管理端
👥 人力资源需求
核心团队配置
| 角色 | 人数 | 工作内容 | 时间投入 |
|---|---|---|---|
| 后端开发 | 1人 | Phase 0-2, 3.5后端, Phase 4后端 | 12天 |
| 前端开发 | 1人 | Phase 3, 3.5前端, Phase 4前端, Phase 5 | 10天 |
| 测试 | 0.5人 | 集成测试、安全测试 | 3天 |
| 产品/UI | 0.2人 | 需求确认、UI审核 | 按需 |
总人天: 约25人天(含测试)
技能要求
后端开发:
- ✅ Node.js + Fastify
- ✅ Prisma ORM
- ✅ PostgreSQL
- ✅ JWT认证
- ✅ 多租户架构经验
前端开发:
- ✅ React 19 + TypeScript
- ✅ Ant Design 6.0
- ✅ React Context/Hooks
- ✅ 权限控制经验
📦 交付物清单
Phase 0: 数据迁移
- 数据迁移脚本(SQL)
- 数据验证报告
- 回滚方案文档
Phase 1: 数据库Schema
- 完整的Prisma Schema
- 迁移脚本
- 种子数据脚本
- 数据库ER图
Phase 2: 后端认证
- JWT工具类(
jwt.service.ts) - 认证API(register/login/logout)
- 认证中间件(
auth.middleware.ts) - Postman测试集合
- API文档(Swagger)
Phase 3: 前端认证
- 登录页面(
LoginPage.tsx) - 认证上下文(
AuthContext.tsx) - 权限上下文更新(对接后端)
- 前端测试用例
Phase 3.5: Prompt管理系统 ⭐
- PromptService(
prompt.service.ts) - Prompt管理API
- Prompt管理前端界面
- 全局调试开关组件
- Prompt管理用户手册
Phase 4: 运营管理端MVP
- 租户管理界面
- 品牌配置界面
- Feature Flag管理界面
- 运营端用户手册
Phase 5: 租户专属登录
- 租户登录页(
TenantLoginPage.tsx) - 租户配置API(
/api/public/tenant-config) - 品牌加载逻辑
- 路由分发逻辑
🔧 技术依赖
新增npm包(后端)
{
"dependencies": {
"jsonwebtoken": "^9.0.0",
"bcryptjs": "^2.4.3",
"handlebars": "^4.7.8"
},
"devDependencies": {
"@types/jsonwebtoken": "^9.0.0",
"@types/bcryptjs": "^2.4.2"
}
}
新增npm包(前端)
{
"dependencies": {
// 无需新增,使用现有技术栈
}
}
基础设施要求
- ✅ PostgreSQL 14+(支持LISTEN/NOTIFY)
- ✅ 阿里云OSS(品牌资源存储)
- ✅ Node.js 18+
- ✅ React 19
📊 进度跟踪
进度计算公式
总进度 = (已完成任务数 / 总任务数) × 100%
当前进度(示例)
Phase 0: █░░░░░░░░░ 10% (1/10)
Phase 1: ░░░░░░░░░░ 0% (0/15)
Phase 2: ░░░░░░░░░░ 0% (0/20)
Phase 3: ░░░░░░░░░░ 0% (0/12)
Phase 3.5: ░░░░░░░░░░ 0% (0/18)
Phase 4: ░░░░░░░░░░ 0% (0/25)
Phase 5: ░░░░░░░░░░ 0% (0/10)
总进度: █░░░░░░░░░ 1% (1/110)
⚠️ 风险与应对
高风险项(需重点关注)
| 风险 | 级别 | 影响 | 应对措施 | 负责人 |
|---|---|---|---|---|
| 数据迁移失败 | 🔴 高 | 无法启动开发 | 1. 完整备份 2. 分步迁移 3. 准备回滚方案 |
后端负责人 |
| 多租户隔离漏洞 | 🔴 高 | 数据泄露 | 1. 严格代码审查 2. 自动化测试 3. 安全测试 |
全员 |
| JWT安全问题 | 🟡 中 | 认证绕过 | 1. 使用强密钥 2. 短过期时间 3. Token刷新机制 |
后端负责人 |
| Prompt管理复杂度 | 🟡 中 | 开发延期 | 1. 参考设计文档 2. 先实现核心功能 3. 灰度发布 |
全员 |
| 前端权限对接 | 🟢 低 | 轻微延期 | 1. 复用现有框架 2. 详细接口文档 |
前端负责人 |
📋 验收标准
Phase 0-1: 基础设施
platform_schema.users表存在且包含所有必需字段- 超级管理员账号可以登录
- 所有表结构符合Schema设计
Phase 2-3: 认证系统
- 登录成功后返回有效JWT Token
- Token验证通过后可访问受保护API
- 未登录用户访问受保护API返回401
- 前端登录/登出流程正常
Phase 3.5: Prompt管理系统
- 可以创建、编辑、发布Prompt
- 调试者开启Debug模式后看到DRAFT版本
- 普通用户始终看到ACTIVE版本
- 发布Prompt后,缓存自动更新
Phase 4: 运营管理端MVP
- 可以创建租户并配置基本信息
- 可以上传Logo和背景图到OSS
- 可以配置主题色并实时预览
- 可以管理Feature Flag开关
Phase 5: 租户专属登录
/t/{code}/login显示租户品牌- Logo、背景图、主题色正确加载
- 登录后根据角色跳转到正确页面
🔗 相关文档
设计文档
00-系统设计/00-权限与角色体系梳理报告_v1.0.md- 总体架构00-系统设计/02-通用能力层_10-权限体系梳理反馈与修正建议.md- 反馈建议
需求文档
01-需求分析/02-通用能力层_07-运营与机构管理端PRD_v2.1.md- 需求详述
技术文档
02-技术设计/03-Prompt管理系统快速参考.md- Prompt管理实现02-技术设计/02-通用能力层_03-Prompt管理系统与灰度预览设计方案.md- 详细设计
开发文档(本文件夹)
01-TODO清单(可追踪).md- 详细任务清单,实时跟踪进度
📞 联系方式
项目组
| 角色 | 姓名 | 联系方式 | 主要职责 |
|---|---|---|---|
| 产品负责人 | [待定] | - | 需求澄清、验收 |
| 技术负责人 | [待定] | - | 架构设计、技术决策 |
| 后端开发 | [待定] | - | 后端实现、数据库设计 |
| 前端开发 | [待定] | - | 前端实现、UI对接 |
| 测试 | [待定] | - | 测试计划、质量保障 |
🎯 成功标准
项目成功的定义
-
功能完整性
- ✅ 所有P0功能实现
- ✅ 验收标准通过
-
质量标准
- ✅ 无P0/P1 Bug
- ✅ 代码审查通过
- ✅ 安全测试通过
-
时间标准
- ✅ 按计划完成(允许±3天)
- ✅ 无严重延期
-
文档标准
- ✅ API文档完整
- ✅ 用户手册完整
📝 备注
重要提醒
-
数据安全第一
- Phase 0必须有完整备份和回滚方案
- 多租户隔离必须严格测试
-
Prompt管理是核心
- Phase 3.5不可省略
- 建议与Phase 4并行开发
-
渐进式开发
- 不要一次性改造所有API
- 优先保护敏感API
-
持续测试
- 每个Phase完成后立即测试
- 不要等到最后集成测试
最后更新:2026-01-11