furniture-3d-system-Wu/docs/IMPLEMENTATION_PLAN.md
WuYongJie 3d2014db37 feat: Phase 1 完成 - 数据库模型重构
- 更新 User 模型:添加 name、isFirstLogin、role 枚举、team 关联
- 创建 Department 模型:支持层级结构和部门负责人
- 创建 Team 模型:小组管理和组长关联
- 更新 Product 模型:添加 createdBy、collaborators、visibility、软删除
- 更新 ProductSKU 模型:添加 ownerId、transferHistory、软删除
- 创建 Feedback 模型:问题反馈系统
- 创建 ActivityLog 模型:操作日志记录
- 添加 6 种角色枚举:SUPER_ADMIN、ADMIN、DEPARTMENT_MANAGER、TEAM_LEADER、DESIGNER、VIEWER
- 添加用户状态枚举:ACTIVE、INACTIVE、SUSPENDED
- 运行数据库迁移并生成 Prisma Client
- 更新文档:TODO.md、PHASE1_COMPLETE.md
2025-12-12 21:45:58 +08:00

8.8 KiB
Raw Blame History

家具 3D 系统 - 实施计划

📋 项目概述

项目名称:3D 家具安装展示系统
部署模式:私有部署(每个企业独立部署)
技术栈:Next.js 16 + React 19 + TypeScript + Prisma + PostgreSQL + MinIO


📚 设计文档


🎯 核心功能

1. 用户认证系统

  • 邮箱 + 姓名/花名注册
  • 支持邮箱或姓名登录
  • 超级管理员首次登录强制修改信息
  • 密码强度验证
  • JWT Token 认证

2. 权限管理系统

  • 6 种角色:超级管理员、管理员、部门管理员、组长、设计师、查看者
  • 部门管理
  • 小组管理
  • 权限检查中间件

3. 产品管理

  • 产品上传(已完成 UI)
  • Product-SKU 结构
  • 产品协作者
  • SKU 负责人

4. 离职交接

  • 自动检测离职
  • SKU 交接界面
  • 交接历史记录

5. 问题反馈

  • 反馈提交
  • 反馈处理
  • 自动分配

6. 3D 展示

  • 分享页面(已完成)
  • 装配动画
  • 交互控制

🚀 实施阶段

Phase 1: 数据库模型重构(1 周)

目标

更新数据库模型,支持新的权限和认证系统

任务清单

  • 1.1 更新 User 模型

    • 移除 username 字段
    • 添加 name 字段(姓名/花名)
    • 添加 isFirstLogin 字段
    • 添加 role 枚举(6 种角色)
    • 添加 teamId 字段
    • 添加 managedTeamId 字段
  • 1.2 创建 Team 模型

    • 小组基本信息
    • 组长关联
    • 部门关联
  • 1.3 更新 Product 模型

    • 添加 collaborators 字段(JSON)
    • 添加 visibility 字段
  • 1.4 更新 ProductSKU 模型

    • 添加 ownerId 字段(负责人)
    • 添加 transferHistory 字段(JSON)
  • 1.5 创建 Feedback 模型

    • 反馈基本信息
    • 状态和优先级
    • 提交者和处理者
  • 1.6 创建 ActivityLog 模型

    • 操作类型
    • 操作详情
    • 时间戳
  • 1.7 运行数据库迁移

    • 生成迁移文件
    • 执行迁移
    • 验证数据完整性

预计时间:5-7 天


Phase 2: 认证系统实现(1-2 周)

目标

实现完整的用户注册和登录功能

任务清单

  • 2.1 系统初始化

    • 创建初始化脚本
    • 自动创建默认超级管理员
    • 数据完整性检查
  • 2.2 注册功能

    • 注册 API 接口
    • 邮箱唯一性验证
    • 姓名唯一性验证
    • 密码强度验证
    • 注册界面(Apple 风格)
  • 2.3 登录功能

    • 登录 API 接口
    • 支持邮箱/姓名登录
    • 智能提示逻辑
    • JWT Token 生成
    • 登录界面(Apple 风格)
  • 2.4 首次登录强制修改

    • 首次登录检查中间件
    • 强制修改页面
    • 更新信息 API
    • Token 失效处理
  • 2.5 密码管理

    • 忘记密码功能
    • 修改密码功能
    • 密码加密存储

预计时间:7-10 天


Phase 3: 权限系统实现(1-2 周)

目标

实现完整的权限检查和管理功能

任务清单

  • 3.1 权限检查函数

    • canEditProduct()
    • canDeleteProduct()
    • canEditSKU()
    • canTransferSKU()
    • canManageUser()
    • canHandleFeedback()
  • 3.2 权限中间件

    • API 路由保护
    • 角色验证
    • 部门范围验证
  • 3.3 前端权限控制

    • 按钮显示/隐藏
    • 路由保护
    • 组件权限包装器
  • 3.4 用户管理界面

    • 用户列表
    • 创建用户
    • 编辑用户
    • 设置角色
    • 分配部门/小组

预计时间:7-10 天


Phase 4: 组织架构实现(1 周)

目标

实现部门和小组管理功能

任务清单

  • 4.1 部门管理

    • 部门列表
    • 创建部门
    • 编辑部门
    • 删除部门
    • 部门层级展示
  • 4.2 小组管理

    • 小组列表
    • 创建小组
    • 编辑小组
    • 删除小组
    • 分配组长
  • 4.3 成员分配

    • 分配用户到部门
    • 分配用户到小组
    • 批量分配

预计时间:5-7 天


Phase 5: 产品归属实现(1-2 周)

目标

实现 Product-SKU 归属和协作功能

任务清单

  • 5.1 产品协作者

    • 添加协作者界面
    • 移除协作者
    • 协作者权限管理
    • 协作历史记录
  • 5.2 SKU 负责人

    • 设置 SKU 负责人
    • 负责人显示
    • 负责人筛选
  • 5.3 产品列表权限过滤

    • 根据角色过滤
    • 根据部门过滤
    • 根据可见性过滤
  • 5.4 产品详情权限

    • 编辑权限检查
    • 删除权限检查
    • 协作者管理权限

预计时间:7-10 天


Phase 6: 离职交接实现(1-2 周)

目标

实现完整的离职交接流程

任务清单

  • 6.1 离职检测

    • 用户状态变更监听
    • 自动生成交接清单
    • 通知相关管理员
  • 6.2 SKU 交接

    • 交接界面
    • 批量交接
    • 交接权限验证
    • 交接历史记录
  • 6.3 产品协作者处理

    • 移除离职用户的协作者身份
    • 添加新的协作者
  • 6.4 通知系统

    • 交接通知
    • 邮件通知(可选)

预计时间:7-10 天


Phase 7: 问题反馈实现(1 周)

目标

实现问题反馈和处理功能

任务清单

  • 7.1 反馈提交

    • 反馈表单
    • 上传截图
    • 选择优先级
    • 关联产品/SKU
  • 7.2 反馈处理

    • 反馈列表
    • 反馈详情
    • 添加评论
    • 解决反馈
    • 关闭反馈
  • 7.3 自动分配

    • 分配给 SKU 负责人
    • 分配给产品创建者
    • 通知相关人员
  • 7.4 反馈统计

    • 待处理数量
    • 已解决数量
    • 按优先级统计

预计时间:5-7 天


Phase 8: 数据安全与日志(3-5 天)

目标

完善数据安全和操作日志

任务清单

  • 8.1 操作日志

    • 记录所有关键操作
    • 日志查询界面
    • 日志导出
  • 8.2 软删除

    • Product 软删除
    • ProductSKU 软删除
    • 恢复功能
  • 8.3 数据备份

    • 备份脚本
    • 恢复脚本
    • 定时备份
  • 8.4 审计报表

    • 用户活动报表
    • 产品变更报表
    • 交接记录报表

预计时间:3-5 天


Phase 9: 测试与优化(1 周)

目标

全面测试和性能优化

任务清单

  • 9.1 功能测试

    • 注册登录测试
    • 权限测试
    • 产品管理测试
    • 交接流程测试
    • 反馈流程测试
  • 9.2 性能优化

    • 数据库查询优化
    • 接口响应时间优化
    • 前端加载优化
  • 9.3 安全测试

    • 权限绕过测试
    • SQL 注入测试
    • XSS 测试
  • 9.4 用户体验优化

    • 界面优化
    • 交互优化
    • 错误提示优化

预计时间:5-7 天


📅 时间规划

阶段 任务 预计时间 累计时间
Phase 1 数据库模型重构 5-7 天 1 周
Phase 2 认证系统实现 7-10 天 3 周
Phase 3 权限系统实现 7-10 天 5 周
Phase 4 组织架构实现 5-7 天 6 周
Phase 5 产品归属实现 7-10 天 8 周
Phase 6 离职交接实现 7-10 天 10 周
Phase 7 问题反馈实现 5-7 天 11 周
Phase 8 数据安全与日志 3-5 天 12 周
Phase 9 测试与优化 5-7 天 13 周

总计:约 12-13 周(3 个月)


🎯 里程碑

Milestone 1: 基础系统(4 周)

  • ✅ 数据库模型完成
  • ✅ 认证系统完成
  • ✅ 权限系统完成
  • ✅ 可以注册、登录、管理用户

Milestone 2: 核心功能(8 周)

  • ✅ 组织架构完成
  • ✅ 产品归属完成
  • ✅ 可以管理产品、SKU、协作者

Milestone 3: 完整系统(12 周)

  • ✅ 离职交接完成
  • ✅ 问题反馈完成
  • ✅ 数据安全完成
  • ✅ 系统可以正式使用

📝 开发规范

代码规范

  • 使用 TypeScript 严格模式
  • 遵循 ESLint 规则
  • 使用 Prettier 格式化
  • 组件使用 PascalCase
  • 函数使用 camelCase

提交规范

feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建/工具相关

分支策略

main: 生产环境
develop: 开发环境
feature/*: 功能分支
bugfix/*: 修复分支

🔍 下一步行动

立即开始

  1. Phase 1: 数据库模型重构

    • 更新 prisma/schema.prisma
    • 运行数据库迁移
    • 验证数据完整性
  2. 创建开发分支

    git checkout -b feature/auth-system
    
  3. 开始实施

    • 按照任务清单逐项完成
    • 每完成一个任务提交一次代码
    • 定期合并到 develop 分支

📞 需要帮助?

如果在实施过程中遇到问题,可以:

  1. 查看设计文档
  2. 查看代码注释
  3. 运行测试用例
  4. 查看操作日志

准备好开始了吗?让我们从 Phase 1 开始! 🚀