diff --git a/src/X1.Domain/Models/NetworkStackConfigBasicDto.cs b/src/X1.Domain/Models/NetworkStackConfigBasicDto.cs
new file mode 100644
index 0000000..ddbde76
--- /dev/null
+++ b/src/X1.Domain/Models/NetworkStackConfigBasicDto.cs
@@ -0,0 +1,47 @@
+namespace X1.Domain.Models;
+
+///
+/// 网络栈配置基础DTO - 包含核心字段和配置内容
+///
+public class NetworkStackConfigBasicDto
+{
+ ///
+ /// 网络栈名称
+ ///
+ public string? NetworkStackName { get; set; }
+
+ ///
+ /// 网络栈代码
+ ///
+ public string? NetworkStackCode { get; set; }
+
+ ///
+ /// RAN配置ID
+ ///
+ public int? RanId { get; set; }
+
+ ///
+ /// 核心网配置ID
+ ///
+ public int? CoreNetworkConfigId { get; set; }
+
+ ///
+ /// IMS配置ID
+ ///
+ public int? IMSConfigId { get; set; }
+
+ ///
+ /// RAN配置内容
+ ///
+ public string? RanConfigContent { get; set; }
+
+ ///
+ /// 核心网配置内容
+ ///
+ public string? CoreNetworkConfigContent { get; set; }
+
+ ///
+ /// IMS配置内容
+ ///
+ public string? IMSConfigContent { get; set; }
+}
\ No newline at end of file
diff --git a/src/X1.Domain/Models/NetworkStackConfigWithBindingNamesDto.cs b/src/X1.Domain/Models/NetworkStackConfigWithBindingNamesDto.cs
index 71725a6..bff9016 100644
--- a/src/X1.Domain/Models/NetworkStackConfigWithBindingNamesDto.cs
+++ b/src/X1.Domain/Models/NetworkStackConfigWithBindingNamesDto.cs
@@ -36,6 +36,11 @@ namespace X1.Domain.Models
///
public string? RanName { get; set; }
+ ///
+ /// RAN配置内容
+ ///
+ public string? RanConfigContent { get; set; }
+
///
/// 描述
///
@@ -86,6 +91,11 @@ namespace X1.Domain.Models
///
public string? CoreNetworkConfigName { get; set; }
+ ///
+ /// 核心网配置内容
+ ///
+ public string? CoreNetworkConfigContent { get; set; }
+
///
/// IMS配置ID
///
@@ -95,5 +105,10 @@ namespace X1.Domain.Models
/// IMS配置名称
///
public string? IMSConfigName { get; set; }
+
+ ///
+ /// IMS配置内容
+ ///
+ public string? IMSConfigContent { get; set; }
}
}
diff --git a/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs b/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs
index 313cf27..8e00748 100644
--- a/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs
+++ b/src/X1.Domain/Repositories/NetworkProfile/INetworkStackConfigRepository.cs
@@ -84,7 +84,7 @@ public interface INetworkStackConfigRepository : IBaseRepository
/// 根据ID获取网络栈配置(包含绑定关系和关联配置名称)
///
- Task> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default);
+ Task> GetNetworkStackConfigByIdWithBindingNamesAsync(string id, CancellationToken cancellationToken = default);
///
/// 根据编码数组获取网络栈配置(包含绑定关系和关联配置名称)
///
diff --git a/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs b/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs
index ff50d0d..4e70854 100644
--- a/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs
+++ b/src/X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs
@@ -264,28 +264,19 @@ 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"",
- ran.""Name"" AS ""RanName"",
- 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"",
- binding.""ImsId"" AS ""IMSConfigId"",
- ims.""Name"" AS ""IMSConfigName""
+ cnc.""Id"" AS ""CoreNetworkConfigId"",
+ ims.""Id"" AS ""IMSConfigId"",
+ ran.""ConfigContent"" AS ""RanConfigContent"",
+ cnc.""ConfigContent"" AS ""CoreNetworkConfigContent"",
+ ims.""ConfigContent"" AS ""IMSConfigContent""
FROM ""NetworkStackConfigs"" nsc
LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id""
LEFT JOIN ""Stack_CoreIMS_Bindings"" binding ON nsc.""Id"" = binding.""NetworkStackConfigId""
@@ -297,7 +288,7 @@ 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();
}
@@ -320,8 +311,6 @@ public class NetworkStackConfigRepository : BaseRepository,
nsc.""RanId"",
ran.""Name"" AS ""RanName"",
ran.""ConfigContent"" AS ""RanConfigContent"",
- ran.""ConfigContent"" AS ""RanConfigContent"",
- ran.""ConfigContent"" AS ""RanConfigContent"",
nsc.""Description"",
nsc.""IsActive"",
nsc.""CreatedAt"",
@@ -332,8 +321,10 @@ public class NetworkStackConfigRepository : BaseRepository,
binding.""Index"",
binding.""CnId"" AS ""CoreNetworkConfigId"",
cnc.""Name"" AS ""CoreNetworkConfigName"",
+ cnc.""ConfigContent"" AS ""CoreNetworkConfigContent"",
binding.""ImsId"" AS ""IMSConfigId"",
- ims.""Name"" AS ""IMSConfigName""
+ ims.""Name"" AS ""IMSConfigName"",
+ ims.""ConfigContent"" AS ""IMSConfigContent""
FROM ""NetworkStackConfigs"" nsc
LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id""
LEFT JOIN ""Stack_CoreIMS_Bindings"" binding ON nsc.""Id"" = binding.""NetworkStackConfigId""
@@ -407,6 +398,7 @@ public class NetworkStackConfigRepository : BaseRepository,
nsc.""NetworkStackCode"",
nsc.""RanId"",
ran.""Name"" AS ""RanName"",
+ ran.""ConfigContent"" AS ""RanConfigContent"",
nsc.""Description"",
nsc.""IsActive"",
nsc.""CreatedAt"",
@@ -417,8 +409,10 @@ public class NetworkStackConfigRepository : BaseRepository,
binding.""Index"",
binding.""CnId"" AS ""CoreNetworkConfigId"",
cnc.""Name"" AS ""CoreNetworkConfigName"",
+ cnc.""ConfigContent"" AS ""CoreNetworkConfigContent"",
binding.""ImsId"" AS ""IMSConfigId"",
- ims.""Name"" AS ""IMSConfigName""
+ ims.""Name"" AS ""IMSConfigName"",
+ ims.""ConfigContent"" AS ""IMSConfigContent""
FROM ""NetworkStackConfigs"" nsc
LEFT JOIN ""RAN_Configurations"" ran ON nsc.""RanId"" = ran.""Id""
LEFT JOIN ""Stack_CoreIMS_Bindings"" binding ON nsc.""Id"" = binding.""NetworkStackConfigId""
diff --git a/src/modify.md b/src/modify.md
index 0c0f2f2..9a78692 100644
--- a/src/modify.md
+++ b/src/modify.md
@@ -3993,7 +3993,86 @@ chore: 更新.gitignore忽略日志文件
- `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs`
**修改内容**:
-1. 重命名方法 `GetNetworkStackConfigByNetworkStackCodeWithBindingNamesAsync` 为 `GetNetworkStackConfigsByCodesAsync`
+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`
+2. 修复 `GetNetworkStackConfigsByCodesAsync` 方法,添加 `ran.ConfigContent`、`cnc.ConfigContent`、`ims.ConfigContent` 字段
+3. 扩展 `NetworkStackConfigWithBindingNamesDto` DTO,添加配置内容字段
+4. 同步修复相关方法:`GetNetworkStackConfigByIdWithBindingNamesAsync` 和 `SearchNetworkStackConfigsWithBindingNamesAsync`
+
+### 技术细节
+- **DTO扩展**:添加 `RanConfigContent`、`CoreNetworkConfigContent`、`IMSConfigContent` 字段
+- **SQL查询优化**:在LEFT JOIN查询中添加配置内容字段的选择
+- **方法同步**:确保所有相关方法都返回完整的配置内容信息
+- **数据完整性**:确保网络栈配置查询结果包含所有相关的配置内容
+
+## 2025-01-29 创建NetworkStackConfigBasicDto
+
+**修改时间**: 2025年1月29日
+**修改文件**:
+- `X1.Domain/Models/NetworkStackConfigBasicDto.cs` (新增)
+
+**修改内容**:
+1. 创建新的DTO类 `NetworkStackConfigBasicDto`,包含指定的字段子集:
+ - `NetworkStackName` - 网络栈名称
+ - `NetworkStackCode` - 网络栈代码
+ - `RanId` - RAN配置ID
+ - `CoreNetworkConfigId` - 核心网配置ID
+ - `IMSConfigId` - IMS配置ID
+ - `RanConfigContent` - RAN配置内容
+ - `CoreNetworkConfigContent` - 核心网配置内容
+ - `IMSConfigContent` - IMS配置内容
+
+### 技术特性
+- **字段精简**:只包含用户指定的核心字段
+- **配置内容**:包含所有相关的配置内容字段
+- **类型安全**:完整的C#属性定义和XML文档注释
+- **命名规范**:遵循C#命名规范和项目约定 为 `GetNetworkStackConfigsByCodesAsync`
2. 修改参数类型从 `string NetworkStackCode` 改为 `string[] networkStackCodes`
3. 更新方法实现以支持多个网络栈编码的查询
4. 添加空数组检查逻辑
@@ -5142,4 +5221,57 @@ private static DeviceRuntimeDto MapToDto(CellularDeviceRuntime runtime)
- **视觉效果**:批量启动按钮现在与主题系统完全兼容
- **用户体验**:在浅色和深色主题下都有良好的显示效果
- **代码质量**:移除了硬编码样式,提高了代码质量
-- **设计一致性**:与系统其他组件保持一致的视觉风格
\ No newline at end of file
+- **设计一致性**:与系统其他组件保持一致的视觉风格
+
+## 2025-01-29 修复GetNetworkStackConfigsByCodesAsync方法添加ConfigContent字段
+
+### 修改原因
+根据用户需求,`GetNetworkStackConfigsByCodesAsync` 方法需要获取 `ran.ConfigContent`、`cnc.ConfigContent` 和 `ims.ConfigContent` 字段,以便在前端显示完整的配置内容信息。
+
+### 修改文件
+- `X1.Domain/Models/NetworkStackConfigWithBindingNamesDto.cs` - 添加ConfigContent字段
+- `X1.Infrastructure/Repositories/NetworkProfile/NetworkStackConfigRepository.cs` - 修复SQL查询
+
+### 修改内容
+
+#### 1. DTO模型扩展
+- **NetworkStackConfigWithBindingNamesDto**:
+ - 添加 `RanConfigContent?: string` - RAN配置内容
+ - 添加 `CoreNetworkConfigContent?: string` - 核心网配置内容
+ - 添加 `IMSConfigContent?: string` - IMS配置内容
+
+#### 2. SQL查询修复
+- **GetNetworkStackConfigsByCodesAsync方法**:
+ - 在SELECT语句中添加 `ran."ConfigContent" AS "RanConfigContent"`
+ - 在SELECT语句中添加 `cnc."ConfigContent" AS "CoreNetworkConfigContent"`
+ - 在SELECT语句中添加 `ims."ConfigContent" AS "IMSConfigContent"`
+
+#### 3. 相关方法同步修复
+- **GetNetworkStackConfigByIdWithBindingNamesAsync方法**:
+ - 同步添加相同的ConfigContent字段到SQL查询中
+- **SearchNetworkStackConfigsWithBindingNamesAsync方法**:
+ - 同步添加相同的ConfigContent字段到SQL查询中
+
+### 技术特性
+- **数据完整性**:现在能够获取完整的配置内容信息
+- **字段映射**:正确映射数据库字段到DTO属性
+- **一致性**:所有相关方法都包含相同的ConfigContent字段
+- **类型安全**:使用可空字符串类型,避免空值问题
+
+### 业务价值
+- **配置内容显示**:前端可以显示RAN、核心网、IMS的完整配置内容
+- **数据关联**:提供网络栈配置与相关配置内容的完整关联信息
+- **调试支持**:便于开发人员查看和调试配置内容
+- **用户体验**:用户可以在一个查询中获取所有相关的配置信息
+
+### 影响范围
+- **API响应**:网络栈配置查询现在包含完整的配置内容
+- **前端显示**:前端可以显示配置内容信息
+- **数据查询**:提供更完整的配置关联数据
+- **系统集成**:支持配置内容的完整传递和处理
+
+### 后续工作建议
+1. 更新前端界面以显示配置内容信息
+2. 添加配置内容的格式化显示功能
+3. 考虑添加配置内容的搜索功能
+4. 优化大配置内容的显示方式
\ No newline at end of file