refactor: 移除 VariableMqttAliasDto 并替换为 VariableMqttAlias

本次重构移除了 VariableMqttAliasDto,并将其所有用法替换为 VariableMqttAlias 模型。

  主要变更:
  - 在 DTO、服务和接口中将 VariableMqttAliasDto 替换为 VariableMqttAlias。
  - 删除了 VariableMqttAliasDto 的 AutoMapper 映射。
  - 删除了 VariableMqttAliasDto.cs 文件。
This commit is contained in:
2025-10-06 17:25:05 +08:00
parent 0965aa1289
commit a3af5dd0cc
11 changed files with 37 additions and 64 deletions

View File

@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Core.Models;
namespace DMS.Application.Services;
@@ -40,7 +41,7 @@ public class AppDataStorageService : IAppDataStorageService
/// <summary>
/// 安全字典用于存储所有MQTT变量别名的数据
/// </summary>
public ConcurrentDictionary<int, VariableMqttAliasDto> VariableMqttAliases { get; } = new();
public ConcurrentDictionary<int, VariableMqttAlias> VariableMqttAliases { get; } = new();

View File

@@ -105,27 +105,23 @@ public class DataLoaderService : IDataLoaderService
private async Task LoadAllVariableMqttAliases()
{
var variableMqttAliases = await _repositoryManager.VariableMqttAliases.GetAllAsync();
var variableMqttAliasDtos = _mapper.Map<IEnumerable<VariableMqttAliasDto>>(variableMqttAliases);
foreach (var variableMqttAliasDto in variableMqttAliasDtos)
{
_appDataStorageService.VariableMqttAliases.TryAdd(variableMqttAliasDto.Id, variableMqttAliasDto);
if (_appDataStorageService.Variables.TryGetValue(variableMqttAliasDto.VariableId, out var variable))
{
variableMqttAliasDto.Variable = _mapper.Map<Variable>(variable);
variable.MqttAliases?.Add(variableMqttAliasDto);
}
if (_appDataStorageService.MqttServers.TryGetValue(variableMqttAliasDto.MqttServerId, out var mqttServer))
{
variableMqttAliasDto.MqttServer = _mapper.Map<MqttServer>(mqttServer);
variableMqttAliasDto.MqttServerName = variableMqttAliasDto.MqttServer.ServerName;
mqttServer.VariableAliases?.Add(variableMqttAliasDto);
}
}
var variableMqttAliases = await _repositoryManager.VariableMqttAliases.GetAllAsync();
foreach (var variableMqttAlias in variableMqttAliases)
{
_appDataStorageService.VariableMqttAliases.TryAdd(variableMqttAlias.Id, variableMqttAlias);
if (_appDataStorageService.Variables.TryGetValue(variableMqttAlias.VariableId, out var variable))
{
variableMqttAlias.Variable = _mapper.Map<Variable>(variable);
variable.MqttAliases?.Add(variableMqttAlias);
}
if (_appDataStorageService.MqttServers.TryGetValue(variableMqttAlias.MqttServerId, out var mqttServer))
{
variableMqttAlias.MqttServer = _mapper.Map<MqttServer>(mqttServer);
mqttServer.VariableAliases?.Add(variableMqttAlias);
}
}
}
/// <summary>

View File

@@ -1,8 +1,11 @@
using AutoMapper;
using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Application.Interfaces.Database;
using DMS.Core.Interfaces;
using DMS.Core.Models;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace DMS.Application.Services.Database;
@@ -26,11 +29,11 @@ public class MqttAliasAppService : IMqttAliasAppService
/// <summary>
/// 异步获取指定变量的所有MQTT别名关联。
/// </summary>
public async Task<List<VariableMqttAliasDto>> GetAliasesForVariableAsync(int variableId)
public async Task<List<VariableMqttAlias>> GetAliasesForVariableAsync(int variableId)
{
// 从仓储获取别名并确保加载了关联的MqttServer信息
var aliases = await _repoManager.VariableMqttAliases.GetAliasesForVariableAsync(variableId);
return _mapper.Map<List<VariableMqttAliasDto>>(aliases);
return aliases.ToList();
}
/// <summary>

View File

@@ -34,15 +34,14 @@ public class MqttPublishProcessor : IVariableProcessor
}
// 遍历所有关联的MQTT配置并将其推入发送队列
foreach (var variableMqttAliasDto in variable.MqttAliases)
foreach (var variableMqttAlias in variable.MqttAliases)
{
if (!variableMqttAliasDto.MqttServer.IsActive)
if (!variableMqttAlias.MqttServer.IsActive)
{
continue;
}
// 发布变量数据到MQTT服务器
var variableMqttAlias = _mapper.Map<VariableMqttAlias>(variableMqttAliasDto);
variableMqttAlias.Variable.DisplayValue=variable.DisplayValue;
await _mqttServiceManager.PublishVariableDataAsync(variableMqttAlias);
}