|
|
|
@ -1,5 +1,206 @@ |
|
|
|
# 修改记录 |
|
|
|
|
|
|
|
## 2025-01-22 - CaseStepConfig 添加 FormType 字段数据库迁移 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
1. **创建数据库迁移**: |
|
|
|
- 新建迁移文件:`20250822101301_AddFormTypeToCaseStepConfig.cs` |
|
|
|
- 迁移名称:`AddFormTypeToCaseStepConfig` |
|
|
|
- 迁移时间:2025-08-22 10:13:01 |
|
|
|
|
|
|
|
2. **迁移内容**: |
|
|
|
- 为 `tb_casestepconfig` 表添加 `formtype` 字段 |
|
|
|
- 字段类型:`integer`(对应 FormType 枚举) |
|
|
|
- 约束:`NOT NULL` |
|
|
|
- 默认值:`0`(对应 FormType.None) |
|
|
|
|
|
|
|
3. **迁移应用**: |
|
|
|
- 成功应用迁移到数据库 |
|
|
|
- 执行 SQL:`ALTER TABLE tb_casestepconfig ADD formtype integer NOT NULL DEFAULT 0;` |
|
|
|
- 更新迁移历史表:`__EFMigrationsHistory` |
|
|
|
|
|
|
|
### 解决的问题 |
|
|
|
- **数据库同步**:CaseStepConfig 实体已添加 FormType 属性,但数据库表缺少对应字段 |
|
|
|
- **数据一致性**:确保实体模型与数据库表结构完全一致 |
|
|
|
- **功能支持**:为表单类型功能提供数据库支持 |
|
|
|
|
|
|
|
### 技术特点 |
|
|
|
- 使用 Entity Framework Core 迁移机制 |
|
|
|
- 保持数据完整性,设置合理的默认值 |
|
|
|
- 支持回滚操作(Down 方法) |
|
|
|
- 完整的迁移历史记录 |
|
|
|
|
|
|
|
### 修改时间 |
|
|
|
2025-01-22 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户反映 CaseStepConfig 有更新,需要重新迁移数据库表以反映实体模型的变更,特别是添加的 FormType 字段。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2025-01-21 - 添加表单类型到用例步骤配置 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
1. **创建表单类型枚举**: |
|
|
|
- 新建 `X1.Domain/Entities/TestCase/FormType.cs` 文件 |
|
|
|
- 定义 `FormType` 枚举,包含以下类型: |
|
|
|
- `None = 0` - 无表单(默认) |
|
|
|
- `Registration = 1` - 注册表单 |
|
|
|
- `Ping = 2` - Ping表单 |
|
|
|
- `Iperf = 3` - iperf表单 |
|
|
|
- `Call = 4` - 打电话表单 |
|
|
|
|
|
|
|
2. **更新 CaseStepConfig 实体**: |
|
|
|
- 在 `X1.Domain/Entities/TestCase/CaseStepConfig.cs` 中添加 `FormType` 属性 |
|
|
|
- 默认值设置为 `FormType.None` |
|
|
|
- 更新 `Create` 方法,添加 `formType` 参数,默认值为 `FormType.None` |
|
|
|
- 更新默认构造函数,设置 `FormType = FormType.None` |
|
|
|
|
|
|
|
3. **更新数据库配置**: |
|
|
|
- 在 `X1.Infrastructure/Configurations/TestCase/CaseStepConfigConfiguration.cs` 中添加 `FormType` 字段映射 |
|
|
|
- 字段名设置为 `formtype`,设置为必填字段 |
|
|
|
|
|
|
|
4. **更新应用层命令和响应**: |
|
|
|
- 在 `X1.Application/Features/CaseStepConfigs/Commands/CreateCaseStepConfig/CreateCaseStepConfigCommand.cs` 中添加 `FormType` 属性 |
|
|
|
- 在 `X1.Application/Features/CaseStepConfigs/Queries/GetCaseStepConfigs/GetCaseStepConfigsResponse.cs` 中添加 `FormType` 和 `FormTypeName` 属性 |
|
|
|
|
|
|
|
### 解决的问题 |
|
|
|
- **表单类型支持**:为用例步骤配置添加表单类型支持 |
|
|
|
- **默认值设置**:启动和结束步骤默认使用 `FormType.None` |
|
|
|
- **扩展性**:支持注册表单、Ping表单、iperf表单、打电话表单等多种表单类型 |
|
|
|
|
|
|
|
### 技术特点 |
|
|
|
- 使用枚举类型确保类型安全 |
|
|
|
- 默认值设置为 `None`,符合启动和结束步骤的需求 |
|
|
|
- 完整的数据库映射配置 |
|
|
|
- 前后端数据传输对象更新 |
|
|
|
|
|
|
|
### 修改时间 |
|
|
|
2025-01-21 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户要求为用例步骤配置添加表单类型支持,包括注册表单、Ping表单、iperf表单、打电话表单,并且启动和结束步骤默认使用None类型。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2025-01-21 - 添加FormType到CaseStepType转换工具 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
1. **创建转换工具类**: |
|
|
|
- 新建 `X1.Application/Features/CaseStepConfigs/Queries/FormTypeStepTypeConverter.cs` 文件 |
|
|
|
- 提供 `FormType` 到 `CaseStepType` 的转换功能 |
|
|
|
- 包含以下方法: |
|
|
|
- `GetRecommendedStepType(FormType formType)` - 根据表单类型获取推荐的步骤类型 |
|
|
|
- `GetFormTypeToStepTypeMapping()` - 获取表单类型与步骤类型的映射关系 |
|
|
|
- `GetSupportedFormTypes(CaseStepType stepType)` - 获取步骤类型支持的表单类型列表 |
|
|
|
- `IsCompatible(FormType formType, CaseStepType stepType)` - 检查表单类型是否与步骤类型兼容 |
|
|
|
- `GetFormTypeDescriptions()` - 获取所有表单类型及其描述 |
|
|
|
- `GetStepTypeDescriptions()` - 获取所有步骤类型及其描述 |
|
|
|
- `GetCompleteMappingInfo()` - 获取表单类型和步骤类型的完整映射信息 |
|
|
|
|
|
|
|
2. **创建查询API**: |
|
|
|
- 新建 `X1.Application/Features/CaseStepConfigs/Queries/GetFormTypeStepTypeMapping/` 目录 |
|
|
|
- 创建 `GetFormTypeStepTypeMappingQuery.cs` - 查询请求 |
|
|
|
- 创建 `GetFormTypeStepTypeMappingResponse.cs` - 响应DTO,包含: |
|
|
|
- `FormTypeDto` - 表单类型信息 |
|
|
|
- `StepTypeDto` - 步骤类型信息 |
|
|
|
- `MappingDto` - 映射关系信息 |
|
|
|
- 创建 `GetFormTypeStepTypeMappingQueryHandler.cs` - 查询处理器 |
|
|
|
|
|
|
|
### 功能特点 |
|
|
|
- **智能推荐**:根据表单类型自动推荐合适的步骤类型 |
|
|
|
- **兼容性检查**:验证表单类型与步骤类型的兼容性 |
|
|
|
- **完整映射**:提供完整的表单类型和步骤类型映射关系 |
|
|
|
- **API支持**:通过查询API提供映射信息给前端使用 |
|
|
|
- **类型安全**:使用强类型枚举确保类型安全 |
|
|
|
|
|
|
|
### 映射规则 |
|
|
|
- **开始步骤 (Start)**:仅支持 `FormType.None` |
|
|
|
- **结束步骤 (End)**:仅支持 `FormType.None` |
|
|
|
- **处理步骤 (Process)**:支持所有表单类型 |
|
|
|
- **判断步骤 (Decision)**:仅支持 `FormType.None` |
|
|
|
|
|
|
|
### 修改时间 |
|
|
|
2025-01-21 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户要求在 `X1.Application.Features.CaseStepConfigs/Queries` 目录中添加 `FormType` 到 `CaseStepType` 的转换集合/工具。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2025-01-21 - CreateCaseStepConfigCommand 已包含 FormType 属性 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
经过检查发现,`CreateCaseStepConfigCommand` 类中已经包含了 `FormType` 属性: |
|
|
|
|
|
|
|
```csharp |
|
|
|
/// <summary> |
|
|
|
/// 表单类型 |
|
|
|
/// </summary> |
|
|
|
public FormType FormType { get; set; } = FormType.None; |
|
|
|
``` |
|
|
|
|
|
|
|
### 当前状态 |
|
|
|
- **FormType 属性已存在**:`CreateCaseStepConfigCommand` 类中已经正确添加了 `FormType` 属性 |
|
|
|
- **默认值已设置**:默认值为 `FormType.None`,符合业务需求 |
|
|
|
- **验证特性已配置**:属性已正确配置,无需额外修改 |
|
|
|
|
|
|
|
### 修改时间 |
|
|
|
2025-01-21 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户要求为 `CreateCaseStepConfigCommand` 添加 `FormType` 属性,但检查后发现该属性已经存在且配置正确。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2025-01-21 - 修复 CreateCaseStepConfigCommandHandler 中 FormType 传递问题 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
修复了 `CreateCaseStepConfigCommandHandler` 中 `FormType` 参数未传递给 `CaseStepConfig.Create` 方法的问题: |
|
|
|
|
|
|
|
1. **修复命令处理器**:在 `CreateCaseStepConfigCommandHandler.cs` 中,将 `request.FormType` 传递给 `CaseStepConfig.Create` 方法 |
|
|
|
2. **更新响应对象**:在 `CreateCaseStepConfigResponse.cs` 中添加了 `FormType` 和 `FormTypeName` 属性 |
|
|
|
3. **完善响应构建**:在命令处理器中构建响应时包含表单类型信息 |
|
|
|
|
|
|
|
### 修改的文件 |
|
|
|
- `X1.Application/Features/CaseStepConfigs/Commands/CreateCaseStepConfig/CreateCaseStepConfigCommandHandler.cs` |
|
|
|
- `X1.Application/Features/CaseStepConfigs/Commands/CreateCaseStepConfig/CreateCaseStepConfigResponse.cs` |
|
|
|
|
|
|
|
### 修改时间 |
|
|
|
2025-01-21 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户反馈 `CreateCaseStepConfigCommand` 的 `FormType` 属性没有正确传递给 `CaseStepConfig.Create` 方法,导致表单类型信息丢失。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2025-01-21 - 修复查询处理器中的 FormType 处理问题 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
修复了查询处理器中 `FormType` 信息缺失的问题: |
|
|
|
|
|
|
|
1. **修复 GetCaseStepConfigsQueryHandler**:在 `UseCaseStepConfigDto` 映射中添加了 `FormType` 和 `FormTypeName` 属性 |
|
|
|
2. **修复 GetCaseStepConfigByIdQueryHandler**:在响应构建中添加了 `FormType` 和 `FormTypeName` 信息 |
|
|
|
3. **更新响应类**: |
|
|
|
- `GetCaseStepConfigByIdResponse.cs` 添加了 `FormType` 和 `FormTypeName` 属性 |
|
|
|
- `UpdateCaseStepConfigResponse.cs` 添加了 `FormType` 和 `FormTypeName` 属性 |
|
|
|
4. **完善更新命令**:在 `UpdateCaseStepConfigCommand.cs` 中添加了 `FormType` 属性 |
|
|
|
|
|
|
|
### 修改的文件 |
|
|
|
- `X1.Application/Features/CaseStepConfigs/Queries/GetCaseStepConfigs/GetCaseStepConfigsQueryHandler.cs` |
|
|
|
- `X1.Application/Features/CaseStepConfigs/Queries/GetCaseStepConfigById/GetCaseStepConfigByIdQueryHandler.cs` |
|
|
|
- `X1.Application/Features/CaseStepConfigs/Queries/GetCaseStepConfigById/GetCaseStepConfigByIdResponse.cs` |
|
|
|
- `X1.Application/Features/CaseStepConfigs/Commands/UpdateCaseStepConfig/UpdateCaseStepConfigResponse.cs` |
|
|
|
- `X1.Application/Features/CaseStepConfigs/Commands/UpdateCaseStepConfig/UpdateCaseStepConfigCommand.cs` |
|
|
|
|
|
|
|
### 修改时间 |
|
|
|
2025-01-21 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户反馈查询处理器中缺少 `FormType` 信息的处理,需要确保所有相关的查询和响应都包含表单类型信息。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2025-01-21 - X1.WebUI Tabs 组件滚动条遮挡文字问题修复 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
@ -14408,4 +14609,70 @@ catch (Exception ex) |
|
|
|
2025-01-21 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户反馈当标签特别多时,Content 区域被拉长看不见,Tabs 超出也看不见。需要修复布局问题,确保 Content 区域和 Tabs 都能正确显示和滚动。 |
|
|
|
用户反馈当标签特别多时,Content 区域被拉长看不见,Tabs 超出也看不见。需要修复布局问题,确保 Content 区域和 Tabs 都能正确显示和滚动。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2025-01-21 - CaseStepConfigController 添加 GetFormTypeStepTypeMapping 方法 |
|
|
|
|
|
|
|
### 修改内容 |
|
|
|
在 `CaseStepConfigController` 中添加了 `GetFormTypeStepTypeMapping` 方法,按照现有功能的模式实现: |
|
|
|
|
|
|
|
1. **新增控制器方法**: |
|
|
|
- **方法名**:`GetFormTypeStepTypeMapping` |
|
|
|
- **路由**:`[HttpGet("form-type-step-type-mapping")]` - 对应 `/api/casestepconfigs/form-type-step-type-mapping` |
|
|
|
- **返回类型**:`OperationResult<GetFormTypeStepTypeResponse>` |
|
|
|
- **功能**:获取表单类型到步骤类型的映射信息 |
|
|
|
|
|
|
|
2. **依赖注入更新**: |
|
|
|
- 添加了 `using X1.Application.Features.CaseStepConfigs.Queries.GetFormTypeStepTypeMapping;` 命名空间引用 |
|
|
|
- 确保能够正确引用 `GetFormTypeStepTypeQuery` 和 `GetFormTypeStepTypeResponse` |
|
|
|
|
|
|
|
3. **实现特性**: |
|
|
|
- **命令处理**:使用 `mediator.Send(new GetFormTypeStepTypeQuery())` 发送查询 |
|
|
|
- **日志记录**:详细的开始、成功、失败日志记录 |
|
|
|
- **错误处理**:完整的错误处理和用户友好的错误信息 |
|
|
|
- **统计信息**:成功日志中包含表单类型数量和步骤类型数量的统计 |
|
|
|
|
|
|
|
4. **API端点**: |
|
|
|
``` |
|
|
|
GET /api/casestepconfigs/form-type-step-type-mapping |
|
|
|
Authorization: Bearer {token} |
|
|
|
``` |
|
|
|
|
|
|
|
5. **响应格式**: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"isSuccess": true, |
|
|
|
"data": { |
|
|
|
"formTypes": [ |
|
|
|
{ |
|
|
|
"value": 0, |
|
|
|
"name": "None", |
|
|
|
"description": "无表单" |
|
|
|
} |
|
|
|
], |
|
|
|
"stepTypes": [ |
|
|
|
{ |
|
|
|
"value": 1, |
|
|
|
"name": "Start", |
|
|
|
"description": "开始步骤" |
|
|
|
} |
|
|
|
] |
|
|
|
}, |
|
|
|
"errorMessages": null |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### 技术特点 |
|
|
|
- **遵循现有模式**:完全按照 `CaseStepConfigController` 中其他方法的实现模式 |
|
|
|
- **CQRS架构**:使用 MediatR 发送查询,遵循 CQRS 模式 |
|
|
|
- **统一响应格式**:使用 `OperationResult<T>` 统一响应格式 |
|
|
|
- **完整日志记录**:包含详细的日志记录和错误处理 |
|
|
|
- **类型安全**:使用强类型响应对象,确保类型安全 |
|
|
|
|
|
|
|
### 修改时间 |
|
|
|
2025-01-21 |
|
|
|
|
|
|
|
### 修改原因 |
|
|
|
用户要求 `GetFormTypeStepTypeQueryHandler` 已经实现,需要在控制器 `CaseStepConfigController` 中按照现有功能模式实现相应的控制器方法,不添加额外功能。 |