/// <summary>
        /// 循环获取子节点树形数据
        /// </summary>
        /// <param name="parentTreeItem"></param>
        /// <param name="currentPG"></param>
        /// <param name="pgList"></param>
        /// <param name="plList"></param>
        private void LoopGetPermissionLinesChildrenTree(PermissionLineTreeViewModel parentTreeItem, PermissionGroup currentPG, List <PermissionGroup> pgList, List <PermissionLine> plList)
        {
            PermissionLineTreeViewModel currentTreeItem = new PermissionLineTreeViewModel();

            currentTreeItem.id   = "-" + currentPG.Id;//负数以与权限项做区别
            currentTreeItem.text = currentPG.DisplayName;
            List <PermissionGroup> childrenPGList = pgList.FindAll(delegate(PermissionGroup pg) { return(pg.ParentId == currentPG.Id); });

            foreach (var childrenPG in childrenPGList)
            {
                //递归子节点
                LoopGetPermissionLinesChildrenTree(currentTreeItem, childrenPG, pgList, plList);
            }
            //将该节点的权限项加入children属性中
            List <PermissionLine> childrenPLList = plList.FindAll(delegate(PermissionLine pl) { return(pl.Group.Id == currentPG.Id); });

            foreach (var childrenPL in childrenPLList)
            {
                PermissionLineTreeViewModel childrenTreeItem = new PermissionLineTreeViewModel();
                childrenTreeItem.id   = childrenPL.Id.ToString();
                childrenTreeItem.text = childrenPL.DisplayName;
                currentTreeItem.children.Add(childrenTreeItem);
                plList.Remove(childrenPL);//移除使用过的项
            }
            parentTreeItem.children.Add(currentTreeItem);
            pgList.Remove(currentPG);//移除使用过的项
        }
        /// <summary>
        /// 获取EasyUI树形数据
        /// </summary>
        /// <returns></returns>
        public JsonResult GetPermissionLinesTree()
        {
            Guid platformGuid = GetPlatformId();

            using (FlyDbContext ctx = new FlyDbContext())
            {
                List <PermissionLine> plList = new List <PermissionLine>();
                //获取所有权限项
                plList = ctx.PermissionLines.Where(p => p.Group.PlatformId == platformGuid).OrderBy(s => s.Id).ToList();
                List <Guid> idList = new List <Guid>();
                //获取权限项用到的所有权限组
                foreach (var item in plList)
                {
                    if (!idList.Contains(item.GroupId))
                    {
                        idList.Add(item.GroupId);
                    }
                }
                List <PermissionGroup> pgList = ctx.PermissionGroups.Where(o => o.PlatformId == platformGuid && idList.Contains(o.Id)).ToList();
                int pgListCount = pgList.Count;
                for (int i = 0; i < pgListCount; i++)
                {
                    LoopGetParent(ctx, pgList[i], pgList, platformGuid);
                }
                //到这里所有权限项和相关所有权限组都取到了,下面递归构建树形试图对象
                List <PermissionLineTreeViewModel> viewTreeItemList = new List <PermissionLineTreeViewModel>();
                //一级节点
                List <PermissionGroup> rootPGList = pgList.FindAll(delegate(PermissionGroup pg) { return(pg.ParentId == null); });
                foreach (var rootPG in rootPGList)
                {
                    PermissionLineTreeViewModel treeItem = new PermissionLineTreeViewModel();
                    treeItem.id   = "-" + rootPG.Id.ToString();//负数以与权限项做区别
                    treeItem.text = rootPG.DisplayName;

                    List <PermissionGroup> childrenPGList = pgList.FindAll(delegate(PermissionGroup pg) { return(pg.ParentId == rootPG.Id); });
                    foreach (var childrenPG in childrenPGList)
                    {
                        //递归子节点
                        LoopGetPermissionLinesChildrenTree(treeItem, childrenPG, pgList, plList);
                    }
                    //将该节点的权限项加入children属性中
                    List <PermissionLine> childrenPLList = plList.FindAll(delegate(PermissionLine pl) { return(pl.Group.Id == rootPG.Id); });

                    foreach (var childrenPL in childrenPLList)
                    {
                        PermissionLineTreeViewModel childrenTreeItem = new PermissionLineTreeViewModel();
                        childrenTreeItem.id   = childrenPL.Id.ToString();
                        childrenTreeItem.text = childrenPL.DisplayName;
                        treeItem.children.Add(childrenTreeItem);
                        plList.Remove(childrenPL);//移除使用过的项
                    }
                    viewTreeItemList.Add(treeItem);
                }
                JsonResult result = new JsonResult()
                {
                    Data = new[] { new { id = 0, text = "所有权限", children = viewTreeItemList } }
                };
                result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
                return(result);
            }
        }