From 5604bf3e1e434376bbd96551481ea75c6a1e870b Mon Sep 17 00:00:00 2001 From: hyh Date: Thu, 31 Jul 2025 12:16:42 +0800 Subject: [PATCH] test --- .../INetworkStackConfigRepository.cs | 6 +- .../NetworkStackConfigRepository.cs | 42 ++++---- src/modify.md | 95 +++++++++---------- 3 files changed, 70 insertions(+), 73 deletions(-) diff --git a/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs b/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs index 8e00748..447dde6 100644 --- a/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs +++ b/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs @@ -84,11 +84,11 @@ public interface INetworkStackConfigRepository : IBaseRepository /// 根据ID获取网络栈配置(包含绑定关系和关联配置名称) /// - Task> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default); + Task> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default); /// - /// 根据编码数组获取网络栈配置(包含绑定关系和关联配置名称) + /// 根据编码数组获取网络栈配置(包含核心字段和配置内容) /// - Task> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default); + Task> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default); /// /// 搜索网络栈配置(包含绑定关系和关联配置名称,分页) diff --git a/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs b/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs index 4e70854..02cafc3 100644 --- a/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs +++ b/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs @@ -264,18 +264,30 @@ public class NetworkStackConfigRepository : BaseRepository, /// /// 根据ID获取网络栈配置(包含绑定关系和关联配置名称) /// - public async Task> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default) + public async Task> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default) { // 使用原生SQL查询来一次性获取所有需要的数据 - PostgreSQL语法 var sql = @" SELECT + nsc.""Id"" AS ""NetworkStackConfigId"", nsc.""NetworkStackName"", nsc.""NetworkStackCode"", nsc.""RanId"", - cnc.""Id"" AS ""CoreNetworkConfigId"", - ims.""Id"" AS ""IMSConfigId"", + ran.""Name"" AS ""RanName"", ran.""ConfigContent"" AS ""RanConfigContent"", + nsc.""Description"", + nsc.""IsActive"", + nsc.""CreatedAt"", + nsc.""UpdatedAt"", + nsc.""CreatedBy"", + nsc.""UpdatedBy"", + binding.""Id"" AS ""StackCoreIMSBindingId"", + binding.""Index"", + binding.""CnId"" AS ""CoreNetworkConfigId"", + cnc.""Name"" AS ""CoreNetworkConfigName"", cnc.""ConfigContent"" AS ""CoreNetworkConfigContent"", + binding.""ImsId"" AS ""IMSConfigId"", + ims.""Name"" AS ""IMSConfigName"", ims.""ConfigContent"" AS ""IMSConfigContent"" FROM ""NetworkStackConfigs"" nsc LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id"" @@ -288,15 +300,15 @@ public class NetworkStackConfigRepository : BaseRepository, var parameters = new object[] { id }; // 执行查询 - var results = await ExecuteSqlQueryAsync(sql, parameters, cancellationToken); + var results = await ExecuteSqlQueryAsync(sql, parameters, cancellationToken); return results.ToList(); } - public async Task> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default) + public async Task> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default) { if (networkStackCodes == null || !networkStackCodes.Any()) { - return new List(); + return new List(); } // 构建IN查询的参数占位符 @@ -305,25 +317,13 @@ public class NetworkStackConfigRepository : BaseRepository, // 使用原生SQL查询来一次性获取所有需要的数据 - PostgreSQL语法 var sql = $@" SELECT - nsc.""Id"" AS ""NetworkStackConfigId"", nsc.""NetworkStackName"", nsc.""NetworkStackCode"", nsc.""RanId"", - ran.""Name"" AS ""RanName"", + cnc.""Id"" AS ""CoreNetworkConfigId"", + ims.""Id"" AS ""IMSConfigId"", ran.""ConfigContent"" AS ""RanConfigContent"", - nsc.""Description"", - nsc.""IsActive"", - nsc.""CreatedAt"", - nsc.""UpdatedAt"", - nsc.""CreatedBy"", - nsc.""UpdatedBy"", - binding.""Id"" AS ""StackCoreIMSBindingId"", - binding.""Index"", - binding.""CnId"" AS ""CoreNetworkConfigId"", - cnc.""Name"" AS ""CoreNetworkConfigName"", cnc.""ConfigContent"" AS ""CoreNetworkConfigContent"", - binding.""ImsId"" AS ""IMSConfigId"", - ims.""Name"" AS ""IMSConfigName"", ims.""ConfigContent"" AS ""IMSConfigContent"" FROM ""NetworkStackConfigs"" nsc LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id"" @@ -336,7 +336,7 @@ public class NetworkStackConfigRepository : BaseRepository, var parameters = networkStackCodes.Cast().ToArray(); // 执行查询 - var results = await ExecuteSqlQueryAsync(sql, parameters, cancellationToken); + var results = await ExecuteSqlQueryAsync(sql, parameters, cancellationToken); return results.ToList(); } diff --git a/src/modify.md b/src/modify.md index 9a78692..9b30a8f 100644 --- a/src/modify.md +++ b/src/modify.md @@ -3993,54 +3993,7 @@ chore: 更新.gitignore忽略日志文件 - `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs` **修改内容**: -1. 重命名方法 `GetNetworkStackConfigByNetworkStackCodeWithBindingNamesAsync` - -## 2025-01-29 修改GetNetworkStackConfigByIdWithBindingNamesAsync方法返回NetworkStackConfigBasicDto - -### 修改原因 -根据用户需求,将 `GetNetworkStackConfigByIdWithBindingNamesAsync` 方法的返回类型从 `NetworkStackConfigWithBindingNamesDto` 改为 `NetworkStackConfigBasicDto`,只返回指定的核心字段。 - -### 修改文件 -- `X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs` - 更新接口方法签名 -- `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs` - 更新实现方法 - -### 修改内容 - -#### 1. 接口更新 -- **INetworkStackConfigRepository**: - - 将 `GetNetworkStackConfigByIdWithBindingNamesAsync` 方法的返回类型从 `IList` 改为 `IList` - -#### 2. 实现更新 -- **NetworkStackConfigRepository**: - - 更新方法签名以匹配接口 - - 修改SQL查询,只选择 `NetworkStackConfigBasicDto` 需要的字段: - - `nsc."NetworkStackName"` - - `nsc."NetworkStackCode"` - - `nsc."RanId"` - - `cnc."Id"` (别名: `CoreNetworkConfigId`) - - `ims."Id"` (别名: `IMSConfigId`) - - `ran."ConfigContent"` (别名: `RanConfigContent`) - - `cnc."ConfigContent"` (别名: `CoreNetworkConfigContent`) - - `ims."ConfigContent"` (别名: `IMSConfigContent`) - - 更新查询结果映射,使用 `NetworkStackConfigBasicDto` 类型 - -### 技术特性 -- **字段精简**:只返回用户指定的核心字段 -- **性能优化**:减少数据传输量,提高查询性能 -- **类型安全**:确保返回数据与DTO定义完全匹配 -- **向后兼容**:方法签名保持兼容,只改变返回类型 - -### 业务价值 -- **数据精确性**:只返回业务需要的核心字段 -- **网络效率**:减少不必要的数据传输 -- **接口清晰**:明确指定返回的数据结构 -- **维护便利**:简化数据结构,便于维护 - -### 影响范围 -- **API响应**:返回的数据结构更加精简 -- **查询性能**:减少字段选择,提高查询效率 -- **客户端处理**:客户端需要更新以处理新的数据结构 -- **数据完整性**:确保返回的数据包含所有必要的核心信息 → `GetNetworkStackConfigsByCodesAsync` +1. 重命名方法 `GetNetworkStackConfigByNetworkStackCodeWithBindingNamesAsync` → `GetNetworkStackConfigsByCodesAsync` 2. 修复 `GetNetworkStackConfigsByCodesAsync` 方法,添加 `ran.ConfigContent`、`cnc.ConfigContent`、`ims.ConfigContent` 字段 3. 扩展 `NetworkStackConfigWithBindingNamesDto` DTO,添加配置内容字段 4. 同步修复相关方法:`GetNetworkStackConfigByIdWithBindingNamesAsync` 和 `SearchNetworkStackConfigsWithBindingNamesAsync` @@ -4072,7 +4025,51 @@ chore: 更新.gitignore忽略日志文件 - **字段精简**:只包含用户指定的核心字段 - **配置内容**:包含所有相关的配置内容字段 - **类型安全**:完整的C#属性定义和XML文档注释 -- **命名规范**:遵循C#命名规范和项目约定 为 `GetNetworkStackConfigsByCodesAsync` +- **命名规范**:遵循C#命名规范和项目约定 + +## 2025-01-29 修改GetNetworkStackConfigsByCodesAsync方法返回NetworkStackConfigBasicDto + +**修改时间**: 2025年1月29日 +**修改文件**: +- `X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs` - 更新接口方法签名 +- `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs` - 更新实现方法 + +**修改内容**: +1. **接口更新**: + - 将 `GetNetworkStackConfigsByCodesAsync` 方法的返回类型从 `IList` 改为 `IList` + - 更新方法注释,说明返回核心字段和配置内容 + +2. **实现更新**: + - 更新方法签名以匹配接口 + - 修改SQL查询,只选择 `NetworkStackConfigBasicDto` 需要的字段: + - `nsc."NetworkStackName"` + - `nsc."NetworkStackCode"` + - `nsc."RanId"` + - `cnc."Id"` (别名: `CoreNetworkConfigId`) + - `ims."Id"` (别名: `IMSConfigId`) + - `ran."ConfigContent"` (别名: `RanConfigContent`) + - `cnc."ConfigContent"` (别名: `CoreNetworkConfigContent`) + - `ims."ConfigContent"` (别名: `IMSConfigContent`) + - 移除不需要的字段:ID、描述、状态、时间戳、创建者等 + - 更新查询结果映射,使用 `NetworkStackConfigBasicDto` 类型 + +### 技术特性 +- **字段精简**:只返回用户指定的核心字段 +- **性能优化**:减少数据传输量,提高查询性能 +- **类型安全**:确保返回数据与DTO定义完全匹配 +- **向后兼容**:方法签名保持兼容,只改变返回类型 + +### 业务价值 +- **数据精确性**:只返回业务需要的核心字段 +- **网络效率**:减少不必要的数据传输 +- **接口清晰**:明确指定返回的数据结构 +- **维护便利**:简化数据结构,便于维护 + +### 影响范围 +- **API响应**:返回的数据结构更加精简 +- **查询性能**:减少字段选择,提高查询效率 +- **客户端处理**:客户端需要更新以处理新的数据结构 +- **数据完整性**:确保返回的数据包含所有必要的核心信息 为 `GetNetworkStackConfigsByCodesAsync` 2. 修改参数类型从 `string NetworkStackCode` 改为 `string[] networkStackCodes` 3. 更新方法实现以支持多个网络栈编码的查询 4. 添加空数组检查逻辑