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; } } }