247 lines
9.6 KiB
Markdown
247 lines
9.6 KiB
Markdown
# 会话记录
|
||
|
||
## 元数据
|
||
- 需求编号:005
|
||
- 开始时间:2026-02-03
|
||
- 结束时间:进行中
|
||
- 当前阶段:阶段 1:需求定义与入库
|
||
|
||
## 需求澄清记录
|
||
|
||
### 原始需求
|
||
调整 Apex 模块,将代码提取出来使用 file 模块进行存储。
|
||
|
||
### 第一轮澄清
|
||
**AI 提问**:
|
||
1. 这个重构涉及 Apex 模块的哪些具体功能?
|
||
2. 代码提取后需要存储到 file 模块的哪种存储方式?
|
||
3. 数据库中已存在的代码如何处理?
|
||
4. 这个重构对现有功能的影响范围是什么?
|
||
|
||
**用户回答**:
|
||
- 涉及所有需要的子需求
|
||
- 多种存储方式,可以自定义
|
||
- 不处理数据库中的
|
||
- 对现有功能为向后兼容
|
||
|
||
### 第二轮澄清
|
||
**AI 提问**:
|
||
1. 具体涉及的子需求有哪些?
|
||
2. file 模块支持 local、minio、oss 三种存储方式,用户如何选择?
|
||
3. 数据库表结构是否需要调整?
|
||
4. "向后兼容"是指 API 接口保持不变吗?
|
||
5. file 模块存储后,代码下载的响应时间要求是多少?
|
||
6. 是否需要对存储的代码文件进行加密?
|
||
7. 是否需要记录代码文件的访问日志?
|
||
|
||
**用户回答**:
|
||
- 所有有可能需要的模块,都提取
|
||
- 存储默认 local,可以切换其它
|
||
- 需要调整数据库表结构
|
||
- (未回答 API 接口、响应时间、加密、日志等问题)
|
||
|
||
### 第三轮澄清
|
||
**AI 提问**:
|
||
1. 数据库表结构调整的具体方式是什么?
|
||
2. 向后兼容性的实现方式是什么?
|
||
3. 存储切换机制是什么?
|
||
4. 代码文件命名规则是什么?
|
||
5. 文件删除策略是什么?
|
||
|
||
**用户回答**:
|
||
- 改为 file_path 字段
|
||
- API 接口是否保持不变
|
||
- 数据库配置切换存储方式
|
||
- /apex/wsdl/{conversionId}/{className}.cls
|
||
- 文件同步删除
|
||
- 建议所有 apex 代码文件的唯一索引,所有文件的增删都需要更新该唯一索引
|
||
|
||
### 澄清总结
|
||
- **功能范围**:所有可能需要存储代码的 Apex 模块子需求(002-01 到 002-07)
|
||
- **业务流程**:代码生成 → 存储到 file 模块 → 数据库存储 file_path → 下载时从 file 模块读取
|
||
- **数据交互**:
|
||
- 数据库表结构调整:将代码字段改为 file_path 字段
|
||
- 集成 datai-scene-file 模块进行文件存储
|
||
- 数据库配置存储方式(local/minio/oss)
|
||
- **性能要求**:响应时间保持现有水平
|
||
- **安全要求**:文件同步删除,建立唯一索引防止重复
|
||
- **兼容性要求**:API 接口保持不变,向后兼容
|
||
|
||
## 需求描述
|
||
调整 Apex 模块,将代码提取出来使用 file 模块进行存储。涉及所有需要的子需求,多种存储方式,可以自定义。不处理数据库中的,对现有功能为向后兼容。改为 file_path 字段,API 接口保持不变,数据库配置切换存储方式,/apex/wsdl/{conversionId}/{className}.cls,文件同步删除。建议所有 apex 代码文件的唯一索引,所有文件的增删都需要更新该唯一索引。
|
||
|
||
## 执行阶段
|
||
|
||
### 阶段 1:需求定义与入库
|
||
- **状态**:已完成
|
||
- **生成文档**:[需求文档](../requirements/2026-02-03-005-Apex模块代码存储重构.md)
|
||
- **关键决策**:
|
||
- 需求编号:005
|
||
- 优先级:高
|
||
- 涉及所有 Apex 模块子需求(002-01 到 002-07)
|
||
- 数据库表结构调整:将代码字段改为 file_path 字段
|
||
- 集成 datai-scene-file 模块
|
||
- 支持多种存储方式(local、minio、oss),默认 local
|
||
- API 接口保持不变,向后兼容
|
||
- 文件同步删除机制
|
||
- 建立 Apex 代码文件的唯一索引
|
||
|
||
### 阶段 2:方案设计
|
||
- **状态**:未开始
|
||
|
||
### 阶段 3:方案决策
|
||
- **状态**:未开始
|
||
|
||
### 阶段 4:数据库结构
|
||
- **状态**:未开始
|
||
|
||
### 阶段 5:提示词生成
|
||
- **状态**:未开始
|
||
|
||
### 阶段 6:代码生成
|
||
- **状态**:未开始
|
||
|
||
### 阶段 7:会话记录
|
||
- **状态**:未开始
|
||
|
||
### 阶段 8:变更日志
|
||
- **状态**:未开始
|
||
|
||
## 对话记录
|
||
|
||
### 用户:调整 Apex 模块,将代码提取出来使用 file 模块进行存储。
|
||
|
||
### AI:好的,我理解了您的需求。在创建需求文档前,我需要先进行需求澄清,以确保需求的完整性和准确性。
|
||
|
||
## 需求澄清
|
||
|
||
### 原始需求
|
||
调整 Apex 模块,将代码提取出来使用 file 模块进行存储。
|
||
|
||
### 第一轮澄清
|
||
|
||
让我先了解一些关键信息:
|
||
|
||
1. **功能范围**:这个重构涉及 Apex 模块的哪些具体功能?
|
||
- 是否只涉及 002-07 WSDL 转换功能?
|
||
- 还是涉及所有子需求(002-01 到 002-07)?
|
||
- 是否包括编译历史、测试结果等存储的代码?
|
||
|
||
2. **存储目标**:代码提取后需要存储到 file 模块的哪种存储方式?
|
||
- 本地存储(local)
|
||
- MinIO 分布式存储
|
||
- 阿里云 OSS 对象存储
|
||
- 还是支持多种存储方式?
|
||
|
||
3. **数据迁移**:数据库中已存在的代码如何处理?
|
||
- 是否需要将数据库中的历史代码迁移到 file 模块?
|
||
- 还是只处理新产生的代码?
|
||
- 如果需要迁移,是否需要保留数据库中的代码副本?
|
||
|
||
4. **业务影响**:这个重构对现有功能的影响范围是什么?
|
||
- 是否需要修改现有的 API 接口?
|
||
- 前端是否需要相应调整?
|
||
- 是否需要保持向后兼容?
|
||
|
||
请您回答以上问题,我将根据您的回答进行更深入的分析和澄清。
|
||
|
||
### 用户:涉及到所有需要的子需求 多种存储方式,可以自定义 不处理数据库中的 对现有功能为向后兼容,
|
||
|
||
### AI:感谢您的回答。让我继续了解更多细节:
|
||
|
||
### 第二轮澄清
|
||
|
||
基于您的回答,我需要进一步了解以下内容:
|
||
|
||
1. **具体涉及的子需求**:
|
||
- 根据之前的分析,Apex 模块中涉及代码存储的主要是 002-07 WSDL 转换功能(生成的 Apex 类代码)
|
||
- 其他子需求(002-02 编译、002-03 测试、002-04 覆盖率等)是否也需要将代码提取到 file 模块?
|
||
- 请明确列出需要重构的所有子需求编号
|
||
|
||
2. **存储策略**:
|
||
- file 模块支持 local、minio、oss 三种存储方式,用户如何选择?
|
||
- 是否需要配置化(如在 application.yml 中配置默认存储方式)?
|
||
- 是否需要支持运行时动态切换存储方式?
|
||
|
||
3. **数据库字段变更**:
|
||
- 不处理数据库中的历史代码,那么数据库表结构是否需要调整?
|
||
- 是否需要在数据库中保留 file 模块返回的文件路径(file_path)?
|
||
- 还是完全删除 `class_code` 等代码字段?
|
||
|
||
4. **向后兼容性**:
|
||
- "向后兼容"是指 API 接口保持不变吗?
|
||
- 还是说需要同时支持数据库存储和 file 模块存储两种方式?
|
||
- 如果是同时支持,如何判断使用哪种方式?
|
||
|
||
5. **性能和安全**:
|
||
- file 模块存储后,代码下载的响应时间要求是多少?
|
||
- 是否需要对存储的代码文件进行加密?
|
||
- 是否需要记录代码文件的访问日志?
|
||
|
||
请您回答以上问题,我将进行总结并创建需求文档。
|
||
|
||
### 用户:所有有可能需要的模块,都提取 存储默认local,可以切换其它。。需要调整数据库表结构
|
||
|
||
### AI:感谢您的回答。让我继续了解关键细节:
|
||
|
||
### 第三轮澄清
|
||
|
||
基于您的回答,我需要明确以下关键问题:
|
||
|
||
1. **数据库表结构调整**:
|
||
- 是否将 `class_code` 等代码字段改为 `file_path` 字段?
|
||
- 还是保留 `class_code` 字段,新增 `file_path` 字段?
|
||
- 如果保留两个字段,如何判断优先使用哪个?
|
||
|
||
2. **向后兼容性的实现方式**:
|
||
- API 接口是否保持不变(前端无需修改)?
|
||
- 下载接口的响应内容是否保持一致(仍然是代码内容或 ZIP 文件)?
|
||
- 如果数据库中既有代码又有文件路径,优先读取哪个?
|
||
|
||
3. **存储切换机制**:
|
||
- 如何配置存储方式(application.yml?数据库配置?)?
|
||
- 是否需要支持不同租户使用不同的存储方式?
|
||
- 存储方式切换后,已存储的文件是否需要迁移?
|
||
|
||
4. **代码文件命名规则**:
|
||
- 存储到 file 模块时,文件路径如何命名?
|
||
- 例如:`/apex/wsdl/{conversionId}/{className}.cls`?
|
||
- 是否需要按日期、用户、租户等维度组织目录结构?
|
||
|
||
5. **文件删除策略**:
|
||
- 当删除数据库记录时,file 模块中的文件是否同步删除?
|
||
- 是否需要提供文件清理机制(定期清理孤立的文件)?
|
||
|
||
请您回答以上问题,我将进行最终总结并创建需求文档。
|
||
|
||
### 用户:改为 file_path 字段
|
||
API 接口是否保持不变
|
||
数据库配置切换存储方式
|
||
/apex/wsdl/{conversionId}/{className}.cls
|
||
文件同步删除
|
||
建议所有apex代码文件的唯一索引,所有文件的增删都需要更新该唯一索引
|
||
|
||
### AI:感谢您的详细回答。让我总结一下需求并创建需求文档。
|
||
|
||
### 澄清总结
|
||
|
||
- **功能范围**:所有可能需要存储代码的 Apex 模块子需求(002-01 到 002-07)
|
||
- **业务流程**:代码生成 → 存储到 file 模块 → 数据库存储 file_path → 下载时从 file 模块读取
|
||
- **数据交互**:
|
||
- 数据库表结构调整:将代码字段改为 file_path 字段
|
||
- 集成 datai-scene-file 模块进行文件存储
|
||
- 数据库配置存储方式(local/minio/oss)
|
||
- **性能要求**:响应时间保持现有水平
|
||
- **安全要求**:文件同步删除,建立唯一索引防止重复
|
||
- **兼容性要求**:API 接口保持不变,向后兼容
|
||
|
||
现在让我查找现有需求编号,确定新需求的编号。
|
||
|
||
(执行查找需求编号和创建需求文档的操作)
|
||
|
||
## 生成的文档
|
||
- [需求文档](../requirements/2026-02-03-005-Apex模块代码存储重构.md)
|
||
|
||
## 回退记录
|
||
无
|