public List <PearMenuViewModel> GetMenu(int userId)
        {
            var sysActionList  = SysActionService.GetPermissionByType(userId, ActionTypeEnum.Menu).OrderBy(x => x.SortCode).ToList();
            var sysActionMenus = dao.GetList(x => true).ToList();

            if (sysActionList == null)
            {
                return(null);
            }
            //actionMenu转PearMenuData
            List <PearMenuViewModel> list = new List <PearMenuViewModel>();
            //返回list
            List <PearMenuViewModel>            pearMenuDatas = new List <PearMenuViewModel>();
            Dictionary <int, PearMenuViewModel> dict          = new Dictionary <int, PearMenuViewModel>();

            foreach (var item in sysActionList)
            {
                PearMenuViewModel pearMenuData = new PearMenuViewModel();
                pearMenuData.Id       = item.Id;
                pearMenuData.Title    = item.Name;
                pearMenuData.Icon     = "layui-icon " + item.SysActionMenu.Icon;
                pearMenuData.Href     = item.SysActionMenu.Url;
                pearMenuData.ParentId = item.ParentId;
                list.Add(pearMenuData);
                dict.Add(item.Id, pearMenuData);
                if (item.ParentId == 0)
                {
                    pearMenuDatas.Add(pearMenuData);
                }
            }
            foreach (var item in list)
            {
                if (item.ParentId != 0 && dict.ContainsKey(item.ParentId))
                {
                    dict[item.ParentId].OpenType = "";
                    dict[item.ParentId].Type     = 0;
                    dict[item.ParentId].Children.Add(item);
                    if (dict[item.Id].Children.Count == 0)
                    {
                        item.Type     = 1;
                        item.OpenType = "_iframe";
                    }
                    else
                    {
                        item.Type = 0;
                    }
                }
            }
            return(pearMenuDatas);
        }
        public List <ButtonViewModel> GetButtonListByUserIdAndMenuId(int userId, string url, PositionEnum position)
        {
            List <ButtonViewModel> buttonViewModels = new List <ButtonViewModel>();
            var sysActionButtons = dao.GetList(x => true).ToList();
            var menu             = SysActionMenuDao.GetList(x => x.Url == url).FirstOrDefault();

            if (menu == null)
            {
                return(buttonViewModels);
            }
            var sysActionList = SysActionService.GetPermissionByType(userId, ActionTypeEnum.Button)
                                .Where(x => x.ParentId == menu.Id && x.SysActionButton.Location == position).OrderBy(x => x.SortCode).ToList();

            foreach (var item in sysActionList)
            {
                ButtonViewModel buttonViewModel = new ButtonViewModel();
                buttonViewModel.FullName   = item.Name;
                buttonViewModel.ButtonCode = item.SysActionButton.ButtonCode;
                buttonViewModel.ClassName  = item.SysActionButton.ButtonClass;
                buttonViewModel.Icon       = item.SysActionButton.ButtonIcon;
                buttonViewModels.Add(buttonViewModel);
            }
            return(buttonViewModels);
        }