106 lines
5.1 KiB
Markdown
106 lines
5.1 KiB
Markdown
# 需求文档:从正式系统恢复源码
|
||
|
||
## 简介
|
||
|
||
本项目的源码在之前的操作中丢失,现在需要从正式系统(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 标注已验证的功能清单
|