namespace Yw.Application
|
{
|
/// <summary>
|
/// MenuAuthority
|
/// </summary>
|
[Route("Auth/Menu/Authority")]
|
[ApiDescriptionSettings("Auth", Name = "菜单权限", Order = 4000)]
|
public class MenuAuthority_Controller : IDynamicApiController
|
{
|
|
private readonly Service.MenuAuthority _service = new();
|
|
/// <summary>
|
/// 获取菜单列表
|
/// </summary>
|
[Route("GetMenuList@V1.0")]
|
[HttpGet]
|
public List<MenuAuthorityDto> GetMenuList([FromQuery][Required] UserIDUnderSoftwareIDInput input)
|
{
|
var dict = _service.GetMenuDict(input.UserID, input.SoftwareID);
|
if (dict == null || dict.Count < 1)
|
{
|
return default;
|
}
|
var vmList = new List<MenuAuthorityDto>();
|
foreach (var item in dict)
|
{
|
if (item.Value)
|
{
|
var vm = new MenuAuthorityDto(item.Key);
|
if (vm.ParentID > 0)
|
{
|
var vmParent = vmList.Find(x => x.ID == vm.ParentID);
|
if (vmParent != null)
|
{
|
vmList.Add(vm);
|
}
|
}
|
else
|
{
|
vmList.Add(vm);
|
}
|
}
|
}
|
return vmList;
|
}
|
|
/// <summary>
|
/// 获取菜单树列表
|
/// </summary>
|
[Route("GetMenuTreeList@V1.0")]
|
[HttpGet]
|
public List<MenuAuthorityTreeDto> GetMenuTreeList([FromQuery][Required] UserIDUnderSoftwareIDInput input)
|
{
|
var dict = _service.GetMenuDict(input.UserID, input.SoftwareID);
|
if (dict == null || dict.Count < 1)
|
{
|
return default;
|
}
|
var vmList = new List<MenuAuthorityTreeDto>();
|
var tempList = new List<MenuAuthorityTreeDto>();
|
foreach (var item in dict)
|
{
|
if (item.Value)
|
{
|
var vm = new MenuAuthorityTreeDto(item.Key);
|
if (vm.ParentID > 0)
|
{
|
var vmParent = tempList.Find(x => x.ID == vm.ParentID);
|
if (vmParent != null)
|
{
|
vmParent.Children.Add(vm);
|
}
|
}
|
else
|
{
|
vmList.Add(vm);
|
}
|
tempList.Add(vm);
|
}
|
}
|
return vmList;
|
}
|
|
/// <summary>
|
/// 获取拥有菜单列表
|
/// </summary>
|
[Route("GetHaveMenuList@V1.0")]
|
[HttpGet]
|
public List<MenuAuthorityHaveDto> GetHaveMenuList([FromQuery][Required] UserIDUnderSoftwareIDInput input)
|
{
|
var dict = _service.GetMenuDict(input.UserID, input.SoftwareID);
|
if (dict == null || dict.Count < 1)
|
{
|
return default;
|
}
|
var vmList = new List<MenuAuthorityHaveDto>();
|
foreach (var item in dict)
|
{
|
var vm = new MenuAuthorityHaveDto(item.Key, item.Value);
|
if (vm.ParentID > 0)
|
{
|
var vmParent = vmList.Find(x => x.ID == vm.ParentID);
|
if (vmParent != null)
|
{
|
if (!vmParent.Have)
|
{
|
vm.Have = false;
|
}
|
}
|
}
|
vmList.Add(vm);
|
}
|
return vmList;
|
}
|
|
/// <summary>
|
/// 获取拥有菜单树列表
|
/// </summary>
|
[Route("GetHaveMenuTreeList@V1.0")]
|
[HttpGet]
|
public List<MenuAuthorityHaveTreeDto> GetHaveMenuTreeList([FromQuery][Required] UserIDUnderSoftwareIDInput input)
|
{
|
var dict = _service.GetMenuDict(input.UserID, input.SoftwareID);
|
if (dict == null || dict.Count < 1)
|
{
|
return default;
|
}
|
var vmList = new List<MenuAuthorityHaveTreeDto>();
|
var tempList = new List<MenuAuthorityHaveTreeDto>();
|
foreach (var item in dict)
|
{
|
var vm = new MenuAuthorityHaveTreeDto(item.Key, item.Value);
|
if (vm.ParentID > 0)
|
{
|
var vmParent = tempList.Find(x => x.ID == vm.ParentID);
|
if (vmParent != null)
|
{
|
if (!vmParent.Have)
|
{
|
vm.Have = false;
|
}
|
vmParent.Children.Add(vm);
|
}
|
}
|
else
|
{
|
vmList.Add(vm);
|
}
|
tempList.Add(vm);
|
}
|
return vmList;
|
}
|
|
|
}
|
}
|