datai/docs/archive/changelog/2026-01-27-014-1-changelog.md

153 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 变更日志
## 元数据
- 需求编号014-1
- 创建时间2026-01-27
- 创建人SSOT 架构师
- 版本号v1.0.0
## 变更概述
实现 Apex 类与触发器基础管理功能,包括与 Salesforce Tooling API 的连接建立、Apex 类和触发器的 CRUD 操作、RESTful API 接口、异常处理机制和数据模型封装。
## 变更内容
### 新增功能
#### 1. Tooling API 连接管理
- 实现 Tooling 连接工厂 `ToolingConnectionFactory`
- 继承 `AbstractConnectionFactory<ToolingConnection>`
- 使用 `ConnectionProxy` 创建代理连接
- 复用 `SessionManager` 获取 Session 信息
- 支持 API 版本 61.0
#### 2. Apex 类基础管理
- **创建功能**:支持创建 Apex 类,包含类名和类体
- **查询功能**
- 根据类 ID 查询 Apex 类详情
- 根据类名查询 Apex 类详情
- 分页查询 Apex 类列表
- **更新功能**:支持更新 Apex 类的类名和类体
- **删除功能**:支持根据类 ID 删除 Apex 类
#### 3. Apex 触发器基础管理
- **创建功能**:支持创建 Apex 触发器,包含触发器名称、对象、触发事件、状态等
- **查询功能**
- 根据触发器 ID 查询 Apex 触发器详情
- 根据触发器名称查询 Apex 触发器详情
- 分页查询 Apex 触发器列表
- **更新功能**:支持更新 Apex 触发器的名称、对象、触发事件、状态等
- **删除功能**:支持根据触发器 ID 删除 Apex 触发器
#### 4. RESTful API 接口
- **Apex 类接口**4 个):
- `POST /tooling/apex-class` - 创建 Apex 类
- `GET /tooling/apex-class/{id}` - 查询 Apex 类详情
- `PUT /tooling/apex-class` - 更新 Apex 类
- `DELETE /tooling/apex-class/{id}` - 删除 Apex 类
- **Apex 触发器接口**4 个):
- `POST /tooling/apex-trigger` - 创建 Apex 触发器
- `GET /tooling/apex-trigger/{id}` - 查询 Apex 触发器详情
- `PUT /tooling/apex-trigger` - 更新 Apex 触发器
- `DELETE /tooling/apex-trigger/{id}` - 删除 Apex 触发器
#### 5. 异常处理机制
- `ToolingConnectionException` - Tooling 连接异常
- `ApexClassException` - Apex 类操作异常
- `ApexTriggerException` - Apex 触发器操作异常
#### 6. 数据模型封装
- **Domain 层**2 个):
- `ApexClass` - Apex 类领域对象
- `ApexTrigger` - Apex 触发器领域对象
- **DTO 层**6 个):
- `ApexClassDto` - Apex 类数据传输对象
- `ApexTriggerDto` - Apex 触发器数据传输对象
- `ApexClassCreateRequest` - Apex 类创建请求
- `ApexClassUpdateRequest` - Apex 类更新请求
- `ApexTriggerCreateRequest` - Apex 触发器创建请求
- `ApexTriggerUpdateRequest` - Apex 触发器更新请求
- **VO 层**2 个):
- `ApexClassVo` - Apex 类视图对象
- `ApexTriggerVo` - Apex 触发器视图对象
#### 7. 单元测试
- `ToolingConnectionFactoryTest` - Tooling 连接工厂测试
- `ApexClassManagerTest` - Apex 类管理器测试
- `ApexTriggerManagerTest` - Apex 触发器管理器测试
### 新增文档
- [需求文档](../requirements/REQ-014-1.md) - Apex 类与触发器基础管理需求
- [设计文档](../design/2026-01-27-014-1-Apex类与触发器基础管理-设计.md) - Apex 类与触发器基础管理设计
- [决策记录](../decisions/adr/2026-01-27-014-1-ADR-ToolingAPI客户端代码生成方案.md) - Tooling API 客户端代码生成方案
- [提示词文档](../prompts/2026-01-27-014-1-prompt-Apex类与触发器基础管理.md) - Apex 类与触发器基础管理提示词
- [会话记录](../sessions/2026-01-27-014-1-session.md) - REQ-014-1 Apex 类与触发器基础管理会话记录
- [变更日志](./2026-01-27-014-1-changelog.md) - Apex 类与触发器基础管理变更日志
### 新增代码文件
#### Exception 层3 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/ToolingConnectionException.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/ApexClassException.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/ApexTriggerException.java`
#### Model 层 - Domain2 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ApexClass.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ApexTrigger.java`
#### Model 层 - DTO6 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/ApexClassDto.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/ApexTriggerDto.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/ApexClassCreateRequest.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/ApexClassUpdateRequest.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/ApexTriggerCreateRequest.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/ApexTriggerUpdateRequest.java`
#### Model 层 - VO2 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/ApexClassVo.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/ApexTriggerVo.java`
#### Factory 层1 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/factory/impl/ToolingConnectionFactory.java`
#### Manager 层2 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/ApexClassManager.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/ApexTriggerManager.java`
#### Service 层4 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/service/IApexClassService.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/service/impl/ApexClassServiceImpl.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/service/IApexTriggerService.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/service/impl/ApexTriggerServiceImpl.java`
#### Controller 层2 个)
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/controller/ApexClassController.java`
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/controller/ApexTriggerController.java`
#### 单元测试3 个)
- `datai-salesforce-tooling/src/test/java/com/datai/tooling/factory/impl/ToolingConnectionFactoryTest.java`
- `datai-salesforce-tooling/src/test/java/com/datai/tooling/manager/ApexClassManagerTest.java`
- `datai-salesforce-tooling/src/test/java/com/datai/tooling/manager/ApexTriggerManagerTest.java`
## 影响范围
### 模块级别
- **新增模块**`datai-salesforce-tooling`
- **影响模块**`datai-salesforce-integration`(复用连接工厂和会话管理)
### 文件级别
- **新增文件**20 个代码文件
- **新增文档**6 个文档文件
### 功能级别
- **新增功能**Apex 类与触发器基础管理
- **新增接口**8 个 RESTful API 接口
- **新增异常**3 个自定义异常类
## 相关文档
- [需求文档](../requirements/REQ-014-1.md)
- [设计文档](../design/2026-01-27-014-1-Apex类与触发器基础管理-设计.md)
- [决策记录](../decisions/adr/2026-01-27-014-1-ADR-ToolingAPI客户端代码生成方案.md)
- [提示词文档](../prompts/2026-01-27-014-1-prompt-Apex类与触发器基础管理.md)
- [会话记录](../sessions/2026-01-27-014-1-session.md)
- [主索引](../index.md)