Beispiel #1
0
        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 = "获取菜单树失败!" }));
            }
        }