namespace Yw.Application
{
///
/// MenuAuthority
///
[Route("Auth/Menu/Authority")]
[ApiDescriptionSettings("Auth", Name = "菜单权限", Order = 4000)]
public class MenuAuthority_Controller : IDynamicApiController
{
private readonly Service.MenuAuthority _service = new();
///
/// 获取菜单列表
///
[Route("GetMenuList@V1.0")]
[HttpGet]
public List 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();
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;
}
///
/// 获取菜单树列表
///
[Route("GetMenuTreeList@V1.0")]
[HttpGet]
public List 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();
var tempList = new List();
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;
}
///
/// 获取拥有菜单列表
///
[Route("GetHaveMenuList@V1.0")]
[HttpGet]
public List 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();
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;
}
///
/// 获取拥有菜单树列表
///
[Route("GetHaveMenuTreeList@V1.0")]
[HttpGet]
public List 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();
var tempList = new List();
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;
}
}
}