# 需求文档:从正式系统恢复源码 ## 简介 本项目的源码在之前的操作中丢失,现在需要从正式系统(192.168.58.20:4320)的 Docker 镜像中恢复完整的源码。正式系统目前正在运行,包含所有完整功能。 ## 术语表 - **正式系统(Production_System)**: 运行在 192.168.58.20:4320 的生产环境系统,容器名 `youyidian-3d-material` - **影子系统(Shadow_System)**: 运行在 192.168.58.20:5320 的测试环境系统,容器名 `youyidian-3d-material-shadow` - **本地源码(Local_Source)**: 当前工作目录 D:\gongxiangp2 中的源代码 - **Docker镜像(Docker_Image)**: 正式系统使用的 Docker 容器镜像 ## 需求 ### 需求 1: 从正式系统提取源码 **用户故事:** 作为开发者,我需要从正式系统的 Docker 容器中提取完整的源码,以便恢复本地开发环境。 #### 验收标准 1. WHEN 连接到正式系统容器时,THE System SHALL 能够访问容器内的文件系统 2. WHEN 提取源码文件时,THE System SHALL 保持文件的目录结构完整 3. WHEN 提取源码文件时,THE System SHALL 包含所有必要的配置文件(package.json, tsconfig.json, next.config.js 等) 4. WHEN 提取源码文件时,THE System SHALL 排除 node_modules、.next、uploads 等运行时生成的目录 ### 需求 2: 对比本地源码与正式系统 **用户故事:** 作为开发者,我需要对比本地源码和正式系统的差异,以便识别缺失或不一致的文件。 #### 验收标准 1. WHEN 对比源码时,THE System SHALL 列出本地缺失的文件 2. WHEN 对比源码时,THE System SHALL 列出内容不一致的文件 3. WHEN 对比源码时,THE System SHALL 生成详细的差异报告 4. WHEN 发现差异时,THE System SHALL 标注文件的重要性级别(核心功能/辅助功能) ### 需求 3: 验证功能完整性 **用户故事:** 作为开发者,我需要验证恢复后的源码包含正式系统的所有功能,以确保功能完整性。 #### 验收标准 1. WHEN 验证功能时,THE System SHALL 检查所有 API 路由是否存在 2. WHEN 验证功能时,THE System SHALL 检查所有页面组件是否存在 3. WHEN 验证功能时,THE System SHALL 检查所有工具库文件是否存在 4. WHEN 验证功能时,THE System SHALL 生成功能完整性报告 ### 需求 4: 恢复缺失的源码文件 **用户故事:** 作为开发者,我需要将正式系统中的源码文件复制到本地,以恢复完整的开发环境。 #### 验收标准 1. WHEN 恢复文件时,THE System SHALL 从正式系统容器复制缺失的文件到本地 2. WHEN 恢复文件时,THE System SHALL 保持文件的原始权限和时间戳 3. WHEN 恢复文件时,THE System SHALL 创建必要的目录结构 4. WHEN 恢复文件时,THE System SHALL 生成恢复操作日志 ### 需求 5: 验证恢复后的源码 **用户故事:** 作为开发者,我需要验证恢复后的源码能够正常构建和运行,以确保恢复成功。 #### 验收标准 1. WHEN 验证构建时,THE System SHALL 执行 `npm install` 安装依赖 2. WHEN 验证构建时,THE System SHALL 执行 `npm run build` 构建项目 3. WHEN 构建失败时,THE System SHALL 报告具体的错误信息 4. WHEN 构建成功时,THE System SHALL 确认所有必要的文件都已生成 ### 需求 6: 部署到影子系统测试 **用户故事:** 作为开发者,我需要将恢复的源码部署到影子系统进行测试,以验证功能正确性。 #### 验收标准 1. WHEN 部署到影子系统时,THE System SHALL 使用 deploy-local-build.ps1 脚本 2. WHEN 部署到影子系统时,THE System SHALL 指定 -Target shadow 参数 3. WHEN 部署成功时,THE System SHALL 确认影子系统容器正在运行 4. WHEN 部署成功时,THE System SHALL 能够通过浏览器访问影子系统(http://192.168.58.20:5320) ### 需求 7: 功能测试验证 **用户故事:** 作为开发者,我需要在影子系统上测试关键功能,以确保恢复的源码功能正常。 #### 验收标准 1. WHEN 测试用户认证时,THE System SHALL 支持钉钉登录和邮箱登录 2. WHEN 测试素材管理时,THE System SHALL 支持上传、浏览、下载、编辑素材 3. WHEN 测试筛选功能时,THE System SHALL 支持按类型、店铺、场景、产品类别等筛选 4. WHEN 测试搜索功能时,THE System SHALL 实现防抖处理,避免频繁刷新 5. WHEN 测试滚动位置时,THE System SHALL 在返回首页时保持原来的滚动位置 6. WHEN 测试模特素材时,THE System SHALL 支持自动打包图片下载 7. WHEN 测试管理员功能时,THE System SHALL 支持用户管理、素材管理、分类管理等 ### 需求 8: 文档更新 **用户故事:** 作为开发者,我需要更新相关文档,记录源码恢复的过程和结果。 #### 验收标准 1. WHEN 恢复完成时,THE System SHALL 更新功能恢复进度文档 2. WHEN 恢复完成时,THE System SHALL 记录恢复过程中遇到的问题和解决方案 3. WHEN 恢复完成时,THE System SHALL 更新部署文档 4. WHEN 恢复完成时,THE System SHALL 标注已验证的功能清单