- 更新 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
8.8 KiB
家具 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/*: 修复分支
🔍 下一步行动
立即开始
-
Phase 1: 数据库模型重构
- 更新
prisma/schema.prisma - 运行数据库迁移
- 验证数据完整性
- 更新
-
创建开发分支
git checkout -b feature/auth-system -
开始实施
- 按照任务清单逐项完成
- 每完成一个任务提交一次代码
- 定期合并到 develop 分支
📞 需要帮助?
如果在实施过程中遇到问题,可以:
- 查看设计文档
- 查看代码注释
- 运行测试用例
- 查看操作日志
准备好开始了吗?让我们从 Phase 1 开始! 🚀