public JsonResult GetMenuList(int roleId = 0, int userId = 0) { try { List <Menu> menus = _cacheService.Get <List <Menu> >(SysConsts.MENUALLLIST); if (menus == null || menus.Count == 0) { return(Json(new { isGet = false, Msg = "获取菜单树失败!" })); } List <RoleMenu> roleMenus = new List <RoleMenu>(); List <UserMenu> userMenus = new List <UserMenu>(); if (roleId > 0) { roleMenus = _roleMenuService.GetListByRoleId(roleId).Result; } if (userId > 0) { userMenus = _userMenuService.GetListByUserId(userId).Result; } List <TreeViewModel> treeViewModels = new List <TreeViewModel>(); List <Menu> parmenus = menus.Where(w => w.ParentId == 0).ToList(); foreach (var item in parmenus) { TreeViewModel treeViewModel = new TreeViewModel { Id = item.Id, Code = item.Code, NodeId = item.Id, Text = item.CName, Nodes = GetNodes(item.Id, menus, roleId, userId, roleMenus, userMenus), Tags = new List <string> { GetTypeName(item.Type) } }; if (roleId > 0) { treeViewModel.State = new State { Checked = GetRoleMenuChecked(roleMenus, item.Id, roleId) }; } if (userId > 0) { treeViewModel.State = new State { Checked = GetUserMenuChecked(userMenus, item.Id, roleId) }; } treeViewModels.Add(treeViewModel); } return(Json(new { isGet = true, Msg = "", data = treeViewModels })); } catch (Exception ex) { _logService.Error(string.Format("获取菜单列表失败!"), ex); return(Json(new { isGet = false, Msg = "获取菜单树失败!" })); } }