/// <summary> /// 递归获取子菜单 /// </summary> /// <param name="allMenu"></param> /// <param name="menuId"></param> /// <returns></returns> private List <ApiMenuBean> GetSubMenu(IQueryable <Module> allMenu, long menuId) { var allSubMenu = new List <ApiMenuBean>(); foreach (var subMenu in allMenu.Where(s => s.ParentId == menuId).OrderBy(o => o.ShowOrder).ToList()) { var newBean = new ApiMenuBean { ID = subMenu.Id, ICON = subMenu.Icon, NAME = subMenu.Name, TYPE = subMenu.Type == 0 ? "click" : "view", Key = subMenu.Code, URL = subMenu.Url, SHOW_ORDER = subMenu.ShowOrder ?? 0, child = GetSubMenu(allMenu, subMenu.Id), }; allSubMenu.Add(newBean); } return(allSubMenu); }
/// <summary> /// 获取用户菜单 /// </summary> /// <param name="roleIdList"></param> /// <returns></returns> private List <ApiMenuBean> GetUserMenus(List <int> roleIdList) { if (roleIdList.Count <= 0) { return(null); } var allMenuBean = new List <ApiMenuBean>(); var roleIds = roleIdList.Select(id => (long)id).ToList(); var allMenu = from rm in _roleModuleRepository.GetAll() join m in _moduleRepository.GetAll() on rm.ModuleId equals m.Id where roleIds.Contains(rm.RoleId) && (m.IsUse == null || (m.IsUse != null && m.IsUse.Value)) && m.ApplicationType.Equals("APP") select m; foreach (var menu in allMenu.Where(m => m.ParentId == null).OrderBy(o => o.ShowOrder).ToList()) { var menuId = menu.Id; var apiMenu = new ApiMenuBean { ID = menuId, ICON = menu.Icon, NAME = menu.Name, TYPE = menu.Type == 0 ? "click" : "view", Key = menu.Code, URL = menu.Url, SHOW_ORDER = menu.ShowOrder ?? 0, child = GetSubMenu(allMenu, menuId), }; allMenuBean.Add(apiMenu); } return(allMenuBean); }