Browse Source

test

feature/x1-web-request
hyh 4 days ago
parent
commit
5604bf3e1e
  1. 6
      src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs
  2. 42
      src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs
  3. 95
      src/modify.md

6
src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs

@ -84,11 +84,11 @@ public interface INetworkStackConfigRepository : IBaseRepository<NetworkStackCon
/// <summary> /// <summary>
/// 根据ID获取网络栈配置(包含绑定关系和关联配置名称) /// 根据ID获取网络栈配置(包含绑定关系和关联配置名称)
/// </summary> /// </summary>
Task<IList<NetworkStackConfigBasicDto>> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default); Task<IList<NetworkStackConfigWithBindingNamesDto>> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default);
/// <summary> /// <summary>
/// 根据编码数组获取网络栈配置(包含绑定关系和关联配置名称 /// 根据编码数组获取网络栈配置(包含核心字段和配置内容
/// </summary> /// </summary>
Task<IList<NetworkStackConfigWithBindingNamesDto>> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default); Task<IList<NetworkStackConfigBasicDto>> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default);
/// <summary> /// <summary>
/// 搜索网络栈配置(包含绑定关系和关联配置名称,分页) /// 搜索网络栈配置(包含绑定关系和关联配置名称,分页)

42
src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs

@ -264,18 +264,30 @@ public class NetworkStackConfigRepository : BaseRepository<NetworkStackConfig>,
/// <summary> /// <summary>
/// 根据ID获取网络栈配置(包含绑定关系和关联配置名称) /// 根据ID获取网络栈配置(包含绑定关系和关联配置名称)
/// </summary> /// </summary>
public async Task<IList<NetworkStackConfigBasicDto>> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default) public async Task<IList<NetworkStackConfigWithBindingNamesDto>> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default)
{ {
// 使用原生SQL查询来一次性获取所有需要的数据 - PostgreSQL语法 // 使用原生SQL查询来一次性获取所有需要的数据 - PostgreSQL语法
var sql = @" var sql = @"
SELECT SELECT
nsc.""Id"" AS ""NetworkStackConfigId"",
nsc.""NetworkStackName"", nsc.""NetworkStackName"",
nsc.""NetworkStackCode"", nsc.""NetworkStackCode"",
nsc.""RanId"", nsc.""RanId"",
cnc.""Id"" AS ""CoreNetworkConfigId"", ran.""Name"" AS ""RanName"",
ims.""Id"" AS ""IMSConfigId"",
ran.""ConfigContent"" AS ""RanConfigContent"", 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"", cnc.""ConfigContent"" AS ""CoreNetworkConfigContent"",
binding.""ImsId"" AS ""IMSConfigId"",
ims.""Name"" AS ""IMSConfigName"",
ims.""ConfigContent"" AS ""IMSConfigContent"" ims.""ConfigContent"" AS ""IMSConfigContent""
FROM ""NetworkStackConfigs"" nsc FROM ""NetworkStackConfigs"" nsc
LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id"" LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id""
@ -288,15 +300,15 @@ public class NetworkStackConfigRepository : BaseRepository<NetworkStackConfig>,
var parameters = new object[] { id }; var parameters = new object[] { id };
// 执行查询 // 执行查询
var results = await ExecuteSqlQueryAsync<NetworkStackConfigBasicDto>(sql, parameters, cancellationToken); var results = await ExecuteSqlQueryAsync<NetworkStackConfigWithBindingNamesDto>(sql, parameters, cancellationToken);
return results.ToList(); return results.ToList();
} }
public async Task<IList<NetworkStackConfigWithBindingNamesDto>> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default) public async Task<IList<NetworkStackConfigBasicDto>> GetNetworkStackConfigsByCodesAsync(string[] networkStackCodes, CancellationToken cancellationToken = default)
{ {
if (networkStackCodes == null || !networkStackCodes.Any()) if (networkStackCodes == null || !networkStackCodes.Any())
{ {
return new List<NetworkStackConfigWithBindingNamesDto>(); return new List<NetworkStackConfigBasicDto>();
} }
// 构建IN查询的参数占位符 // 构建IN查询的参数占位符
@ -305,25 +317,13 @@ public class NetworkStackConfigRepository : BaseRepository<NetworkStackConfig>,
// 使用原生SQL查询来一次性获取所有需要的数据 - PostgreSQL语法 // 使用原生SQL查询来一次性获取所有需要的数据 - PostgreSQL语法
var sql = $@" var sql = $@"
SELECT SELECT
nsc.""Id"" AS ""NetworkStackConfigId"",
nsc.""NetworkStackName"", nsc.""NetworkStackName"",
nsc.""NetworkStackCode"", nsc.""NetworkStackCode"",
nsc.""RanId"", nsc.""RanId"",
ran.""Name"" AS ""RanName"", cnc.""Id"" AS ""CoreNetworkConfigId"",
ims.""Id"" AS ""IMSConfigId"",
ran.""ConfigContent"" AS ""RanConfigContent"", 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"", cnc.""ConfigContent"" AS ""CoreNetworkConfigContent"",
binding.""ImsId"" AS ""IMSConfigId"",
ims.""Name"" AS ""IMSConfigName"",
ims.""ConfigContent"" AS ""IMSConfigContent"" ims.""ConfigContent"" AS ""IMSConfigContent""
FROM ""NetworkStackConfigs"" nsc FROM ""NetworkStackConfigs"" nsc
LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id"" LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id""
@ -336,7 +336,7 @@ public class NetworkStackConfigRepository : BaseRepository<NetworkStackConfig>,
var parameters = networkStackCodes.Cast<object>().ToArray(); var parameters = networkStackCodes.Cast<object>().ToArray();
// 执行查询 // 执行查询
var results = await ExecuteSqlQueryAsync<NetworkStackConfigWithBindingNamesDto>(sql, parameters, cancellationToken); var results = await ExecuteSqlQueryAsync<NetworkStackConfigBasicDto>(sql, parameters, cancellationToken);
return results.ToList(); return results.ToList();
} }

95
src/modify.md

@ -3993,54 +3993,7 @@ chore: 更新.gitignore忽略日志文件
- `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs` - `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs`
**修改内容**: **修改内容**:
1. 重命名方法 `GetNetworkStackConfigByNetworkStackCodeWithBindingNamesAsync` 1. 重命名方法 `GetNetworkStackConfigByNetworkStackCodeWithBindingNamesAsync``GetNetworkStackConfigsByCodesAsync`
## 2025-01-29 修改GetNetworkStackConfigByIdWithBindingNamesAsync方法返回NetworkStackConfigBasicDto
### 修改原因
根据用户需求,将 `GetNetworkStackConfigByIdWithBindingNamesAsync` 方法的返回类型从 `NetworkStackConfigWithBindingNamesDto` 改为 `NetworkStackConfigBasicDto`,只返回指定的核心字段。
### 修改文件
- `X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs` - 更新接口方法签名
- `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs` - 更新实现方法
### 修改内容
#### 1. 接口更新
- **INetworkStackConfigRepository**
- 将 `GetNetworkStackConfigByIdWithBindingNamesAsync` 方法的返回类型从 `IList<NetworkStackConfigWithBindingNamesDto>` 改为 `IList<NetworkStackConfigBasicDto>`
#### 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`
2. 修复 `GetNetworkStackConfigsByCodesAsync` 方法,添加 `ran.ConfigContent`、`cnc.ConfigContent`、`ims.ConfigContent` 字段 2. 修复 `GetNetworkStackConfigsByCodesAsync` 方法,添加 `ran.ConfigContent`、`cnc.ConfigContent`、`ims.ConfigContent` 字段
3. 扩展 `NetworkStackConfigWithBindingNamesDto` DTO,添加配置内容字段 3. 扩展 `NetworkStackConfigWithBindingNamesDto` DTO,添加配置内容字段
4. 同步修复相关方法:`GetNetworkStackConfigByIdWithBindingNamesAsync` 和 `SearchNetworkStackConfigsWithBindingNamesAsync` 4. 同步修复相关方法:`GetNetworkStackConfigByIdWithBindingNamesAsync` 和 `SearchNetworkStackConfigsWithBindingNamesAsync`
@ -4072,7 +4025,51 @@ chore: 更新.gitignore忽略日志文件
- **字段精简**:只包含用户指定的核心字段 - **字段精简**:只包含用户指定的核心字段
- **配置内容**:包含所有相关的配置内容字段 - **配置内容**:包含所有相关的配置内容字段
- **类型安全**:完整的C#属性定义和XML文档注释 - **类型安全**:完整的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<NetworkStackConfigWithBindingNamesDto>` 改为 `IList<NetworkStackConfigBasicDto>`
- 更新方法注释,说明返回核心字段和配置内容
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` 2. 修改参数类型从 `string NetworkStackCode` 改为 `string[] networkStackCodes`
3. 更新方法实现以支持多个网络栈编码的查询 3. 更新方法实现以支持多个网络栈编码的查询
4. 添加空数组检查逻辑 4. 添加空数组检查逻辑

Loading…
Cancel
Save