feat(menu): 添加菜单树构建功能和相关接口

This commit is contained in:
wcg
2026-01-04 11:02:13 +08:00
parent f77c775229
commit 80d8ac2bc8
4 changed files with 71 additions and 2 deletions

View File

@@ -1,3 +1,4 @@
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Volo.Abp.Application.Dtos;
using Yi.Framework.Ddd.Application;
@@ -5,6 +6,7 @@ using Yi.Framework.Rbac.Application.Contracts.Dtos.Menu;
using Yi.Framework.Rbac.Application.Contracts.IServices;
using Yi.Framework.Rbac.Domain.Entities;
using Yi.Framework.Rbac.Domain.Shared.Consts;
using Yi.Framework.Rbac.Domain.Shared.Dtos;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Rbac.Application.Services.System
@@ -43,5 +45,31 @@ namespace Yi.Framework.Rbac.Application.Services.System
return await MapToGetListOutputDtosAsync(entities);
}
/// <summary>
/// 获取所有菜单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[Route("menu/list")]
public async Task<List<MenuGetListOutputDto>> GetAllListAsync(MenuGetListInputVo input)
{
var entities = await _repository._DbQueryable.WhereIF(!string.IsNullOrEmpty(input.MenuName), x => x.MenuName.Contains(input.MenuName!))
.WhereIF(input.State is not null, x => x.State == input.State)
.Where(x=>x.MenuSource==input.MenuSource)
.OrderByDescending(x => x.OrderNum)
.ToListAsync();
return await MapToGetListOutputDtosAsync(entities);
}
/// <summary>
/// 获取菜单树
/// </summary>
/// <returns></returns>
public async Task<List<MenuTreeDto>> GetTreeAsync()
{
var menuList = await _repository._DbQueryable.ToListAsync();
return menuList.TreeDtoBuild();
}
}
}