refactor: 移除MenuBeanDto,直接使用MenuBean模型

- 删除了 DMS.Application/DTOs/MenuBeanDto.cs 文件
- 在DTOs中将MenuBeanDto类型替换为MenuBean类型
- 更新了IMenuAppService和IMenuManagementService接口中相关方法的参数和返回值类型
- 修改了MenuAppService、MenuManagementService等服务类的实现
- 在DMS.Core/Models/MenuBean.cs中添加了Children属性以支持菜单树结构
- 更新了WPF层相关的菜单处理逻辑
- 修改了映射配置和视图模型中的菜单对象创建方式
- 这一更改简化了数据模型,消除了DTO与模型之间的重复定义,直接在各层之间使用MenuBean实体。
This commit is contained in:
2025-10-13 20:20:09 +08:00
parent e78a7981e1
commit 816827e5e9
21 changed files with 95 additions and 160 deletions

View File

@@ -11,7 +11,7 @@ public interface IVariableTableDataService
void LoadAllVariableTables();
Task<int> AddVariableTable(VariableTable variableTable,
MenuBeanDto menuDto = null, bool isAddDb = false);
MenuBean menu = null, bool isAddDb = false);
Task<bool> UpdateVariableTable(VariableTableItem variableTable);
Task<bool> DeleteVariableTable(VariableTableItem variableTable, bool isDeleteDb = false);

View File

@@ -25,7 +25,7 @@ namespace DMS.WPF.Profiles
.ReverseMap();
CreateMap<MenuBeanDto, MenuItem>()
CreateMap<MenuBean, MenuItem>()
.ReverseMap();
@@ -40,4 +40,4 @@ namespace DMS.WPF.Profiles
CreateMap<NlogDto, NlogItem>().ReverseMap();
}
}
}
}

View File

@@ -1,8 +1,8 @@
using AutoMapper;
using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Application.Interfaces.Management;
using DMS.Application.Services.Management;
using DMS.Core.Models;
using DMS.WPF.Interfaces;
using DMS.WPF.ItemViewModel;
using System.Collections.ObjectModel;
@@ -79,7 +79,7 @@ public class MenuDataService : IMenuDataService
if (deviceMenu is not null)
{
var menuId= await _menuManagementService.CreateMenuAsync(_mapper.Map<MenuBeanDto>(MenuItem));
var menuId= await _menuManagementService.CreateMenuAsync(_mapper.Map<MenuBean>(MenuItem));
if (menuId>0)
{
MenuItem.Id = menuId;

View File

@@ -78,7 +78,7 @@ public class MqttDataService : IMqttDataService
if (mqttRootMenu is not null)
{
var mqttServerMenu = new MenuBeanDto()
var mqttServerMenu = new MenuBean()
{
Header = mqttServerItem.ServerName,
TargetId = mqttServerItem.Id,
@@ -111,7 +111,7 @@ public class MqttDataService : IMqttDataService
menu.Header = mqttServer.ServerName;
// 使用菜单管理服务更新菜单
var menuDto = _mapper.Map<MenuBeanDto>(menu);
var menuDto = _mapper.Map<MenuBean>(menu);
await _menuManagementServiceImpl.UpdateMenuAsync(menuDto);
}
}

View File

@@ -40,7 +40,7 @@ public class VariableTableDataService : IVariableTableDataService
}
public async Task<int> AddVariableTable(VariableTable variableTable,
MenuBeanDto menuDto = null, bool isAddDb = false)
MenuBean menuDto = null, bool isAddDb = false)
{
if (variableTable == null)
return 0;
@@ -53,7 +53,7 @@ public class VariableTableDataService : IVariableTableDataService
createDto.Menu = menuDto;
var resDto = await _appDataCenterService.VariableTableManagementService.CreateVariableTableAsync(createDto);
_menuDataService.AddMenuItem(_mapper.Map<MenuItem>(resDto.Menu));
await _menuDataService.AddMenuItem(_mapper.Map<MenuItem>(resDto.Menu));
return resDto.VariableTable.Id;
}
@@ -114,7 +114,7 @@ public class VariableTableDataService : IVariableTableDataService
var variableTableMenu
=_dataStorageService.Menus.FirstOrDefault(m => m.MenuType == MenuType.VariableTableMenu && m.TargetId == variableTable.Id);
_menuDataService.DeleteMenuItem(variableTableMenu);
await _menuDataService.DeleteMenuItem(variableTableMenu);
// 删除变量表
_dataStorageService.VariableTables.Remove(variableTable.Id);
variableTable.Device.VariableTables.Remove(variableTable);

View File

@@ -68,7 +68,7 @@ public partial class DeviceDetailViewModel : ViewModelBase
}
VariableTableItem.DeviceId = CurrentDevice.Id;
var tableMenu = new MenuBeanDto()
var tableMenu = new MenuBean()
{
Header = VariableTableItem.Name,
Icon = SegoeFluentIcons.DataSense.Glyph,

View File

@@ -104,7 +104,7 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
}
dto.DeviceMenu = new MenuBeanDto()
dto.DeviceMenu = new MenuBean()
{
Header = device.Name,
Icon = SegoeFluentIcons.Devices2.Glyph,
@@ -119,7 +119,7 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
Description = "默认变量表",
IsActive = true
};
dto.VariableTableMenu = new MenuBeanDto()
dto.VariableTableMenu = new MenuBean()
{
Header = dto.VariableTable.Name,
Icon = SegoeFluentIcons.DataSense.Glyph,
@@ -266,7 +266,7 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
}
VariableTableItem.DeviceId = device.Id;
var tableMenu = new MenuBeanDto()
var tableMenu = new MenuBean()
{
Header = VariableTableItem.Name,
Icon = SegoeFluentIcons.DataSense.Glyph,