/// <summary>
        /// 获取easyui tree格式的所有功能json
        /// </summary>
        public APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> > GetAllJsonForEasyUITree(APIRequestEntity <XCLCMS.Data.WebAPIEntity.RequestEntity.SysFunction.GetAllJsonForEasyUITreeEntity> request)
        {
            var response = new APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> >();

            response.IsSuccess = true;

            List <XCLCMS.Data.Model.View.v_SysFunction> allData = null;
            List <XCLNetTools.Entity.EasyUI.TreeItem>   tree    = new List <XCLNetTools.Entity.EasyUI.TreeItem>();

            var merchantModel = this.merchantBLL.GetModel(request.Body.MerchantID);

            if (null == merchantModel)
            {
                response.IsSuccess = false;
                response.Message   = "您指定的商户号无效!";
                return(response);
            }

            //根据情况,是否只显示普通商户的功能权限以供选择
            if (merchantModel.MerchantSystemType == XCLCMS.Data.CommonHelper.EnumType.MerchantSystemTypeEnum.NOR.ToString())
            {
                allData = this.GetNormalMerchantFunctionTreeList(new APIRequestEntity <object>()).Body;
            }
            else
            {
                //所有权限功能
                allData = this.vSysFunctionBLL.GetModelList("");
            }

            if (allData.IsNotNullOrEmpty())
            {
                var root = allData.Where(k => k.ParentID == 0).FirstOrDefault();//根节点
                if (null != root)
                {
                    tree.Add(new XCLNetTools.Entity.EasyUI.TreeItem()
                    {
                        ID    = root.SysFunctionID.ToString(),
                        State = root.IsLeaf == 1 ? "open" : "closed",
                        Text  = root.FunctionName
                    });

                    Action <XCLNetTools.Entity.EasyUI.TreeItem> getChildAction = null;
                    getChildAction = new Action <XCLNetTools.Entity.EasyUI.TreeItem>((parentModel) =>
                    {
                        var childs = allData.Where(k => k.ParentID == Convert.ToInt64(parentModel.ID)).ToList();
                        if (childs.IsNotNullOrEmpty())
                        {
                            parentModel.Children = new List <XCLNetTools.Entity.EasyUI.TreeItem>();
                            childs.ForEach(m =>
                            {
                                var treeItem = new XCLNetTools.Entity.EasyUI.TreeItem()
                                {
                                    ID    = m.SysFunctionID.ToString(),
                                    State = m.IsLeaf == 1 ? "open" : "closed",
                                    Text  = m.FunctionName
                                };
                                getChildAction(treeItem);
                                parentModel.Children.Add(treeItem);
                            });
                        }
                    });

                    //从根节点开始
                    getChildAction(tree[0]);
                }
            }
            response.Body = tree;
            return(response);
        }
        /// <summary>
        /// 根据code来获取字典的easyui tree格式
        /// </summary>
        public APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> > GetEasyUITreeByCode(APIRequestEntity <XCLCMS.Data.WebAPIEntity.RequestEntity.SysDic.GetEasyUITreeByCodeEntity> request)
        {
            var response = new APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> >();

            response.IsSuccess = true;

            List <XCLNetTools.Entity.EasyUI.TreeItem> tree = new List <XCLNetTools.Entity.EasyUI.TreeItem>();

            if (string.IsNullOrEmpty(request.Body.Code))
            {
                response.IsSuccess = true;
                response.Body      = new List <XCLNetTools.Entity.EasyUI.TreeItem>();
                return(response);
            }

            var rootModel = sysDicBLL.GetModelByCode(request.Body.Code);

            if (null == rootModel)
            {
                response.IsSuccess = true;
                response.Body      = new List <XCLNetTools.Entity.EasyUI.TreeItem>();
                return(response);
            }

            var allData   = this.vSysDicBLL.GetAllUnderListByCode(request.Body.Code);
            var rootLayer = allData.Where(k => k.ParentID == rootModel.SysDicID).ToList();

            if (rootLayer.IsNotNullOrEmpty())
            {
                for (int idx = 0; idx < rootLayer.Count; idx++)
                {
                    var current = rootLayer[idx];

                    tree.Add(new XCLNetTools.Entity.EasyUI.TreeItem()
                    {
                        ID   = current.SysDicID.ToString(),
                        Text = current.DicName
                    });

                    Action <XCLNetTools.Entity.EasyUI.TreeItem> getChildAction = null;
                    getChildAction = new Action <XCLNetTools.Entity.EasyUI.TreeItem>((parentModel) =>
                    {
                        var childs = allData.Where(k => k.ParentID == Convert.ToInt64(parentModel.ID)).ToList();
                        if (childs.IsNotNullOrEmpty())
                        {
                            parentModel.Children = new List <XCLNetTools.Entity.EasyUI.TreeItem>();
                            childs.ForEach(m =>
                            {
                                var treeItem = new XCLNetTools.Entity.EasyUI.TreeItem()
                                {
                                    ID    = m.SysDicID.ToString(),
                                    State = m.IsLeaf == 1 ? "open" : "closed",
                                    Text  = m.DicName
                                };
                                getChildAction(treeItem);
                                parentModel.Children.Add(treeItem);
                            });
                        }
                    });

                    getChildAction(tree.Find(k => k.ID == current.SysDicID.ToString()));
                }
            }

            response.IsSuccess = true;
            response.Body      = tree;

            return(response);
        }
        /// <summary>
        /// 根据条件获取字典的easy tree 列表
        /// </summary>
        public APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> > GetEasyUITreeByCondition(APIRequestEntity <XCLCMS.Data.WebAPIEntity.RequestEntity.SysDic.GetEasyUITreeByConditionEntity> request)
        {
            var response = new APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> >();

            response.IsSuccess = true;

            List <XCLCMS.Data.Model.View.v_SysDic>    allData = null;
            List <XCLNetTools.Entity.EasyUI.TreeItem> tree    = new List <XCLNetTools.Entity.EasyUI.TreeItem>();

            var merchantModel = this.merchantBLL.GetModel(request.Body.MerchantID);

            if (null == merchantModel)
            {
                response.IsSuccess = false;
                response.Message   = "您指定的商户号无效!";
                return(response);
            }

            allData = this.vSysDicBLL.GetModelList("");

            if (request.Body.MerchantID > 0 && null != allData && allData.Count > 0)
            {
                allData = allData.Where(k => k.FK_MerchantID <= 0 || k.FK_MerchantID == request.Body.MerchantID).ToList();
            }

            if (allData.IsNotNullOrEmpty())
            {
                var root = allData.Where(k => k.ParentID == 0).FirstOrDefault();//根节点
                if (null != root)
                {
                    tree.Add(new XCLNetTools.Entity.EasyUI.TreeItem()
                    {
                        ID    = root.SysDicID.ToString(),
                        State = root.IsLeaf == 1 ? "open" : "closed",
                        Text  = root.DicName
                    });

                    Action <XCLNetTools.Entity.EasyUI.TreeItem> getChildAction = null;
                    getChildAction = new Action <XCLNetTools.Entity.EasyUI.TreeItem>((parentModel) =>
                    {
                        var childs = allData.Where(k => k.ParentID == Convert.ToInt64(parentModel.ID)).ToList();
                        if (childs.IsNotNullOrEmpty())
                        {
                            childs = childs.OrderBy(k => k.Sort).ToList();
                            parentModel.Children = new List <XCLNetTools.Entity.EasyUI.TreeItem>();
                            childs.ForEach(m =>
                            {
                                var treeItem = new XCLNetTools.Entity.EasyUI.TreeItem()
                                {
                                    ID    = m.SysDicID.ToString(),
                                    State = m.IsLeaf == 1 ? "open" : "closed",
                                    Text  = m.DicName
                                };
                                getChildAction(treeItem);
                                parentModel.Children.Add(treeItem);
                            });
                        }
                    });

                    //从根节点开始
                    getChildAction(tree[0]);
                }
            }
            response.Body = tree;
            return(response);
        }
Exemple #4
0
        /// <summary>
        /// 获取easyui tree格式的所有角色json
        /// </summary>
        public APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> > GetAllJsonForEasyUITree([FromUri] string json)
        {
            var request  = Newtonsoft.Json.JsonConvert.DeserializeObject <APIRequestEntity <XCLCMS.Data.WebAPIEntity.RequestEntity.SysRole.GetAllJsonForEasyUITreeEntity> >(System.Web.HttpUtility.UrlDecode(json));
            var response = new APIResponseEntity <List <XCLNetTools.Entity.EasyUI.TreeItem> >();

            response.IsSuccess = true;

            List <XCLCMS.Data.Model.View.v_SysRole>   allData = null;
            List <XCLNetTools.Entity.EasyUI.TreeItem> tree    = new List <XCLNetTools.Entity.EasyUI.TreeItem>();

            var merchantModel = this.merchantBLL.GetModel(request.Body.MerchantID);

            if (null == merchantModel)
            {
                response.IsSuccess = false;
                response.Message   = "您指定的商户号无效!";
                return(response);
            }

            allData = this.vSysRoleBLL.GetModelList("");

            //限制商户
            if (base.IsOnlyCurrentMerchant && null != allData && allData.Count > 0)
            {
                allData = allData.Where(k => k.FK_MerchantID <= 0 || k.FK_MerchantID == base.CurrentUserModel.FK_MerchantID).ToList();
            }

            if (allData.IsNotNullOrEmpty())
            {
                var root = allData.Where(k => k.ParentID == 0).FirstOrDefault();//根节点
                if (null != root)
                {
                    tree.Add(new XCLNetTools.Entity.EasyUI.TreeItem()
                    {
                        ID    = root.SysRoleID.ToString(),
                        State = root.IsLeaf == 1 ? "open" : "closed",
                        Text  = root.RoleName
                    });

                    Action <XCLNetTools.Entity.EasyUI.TreeItem> getChildAction = null;
                    getChildAction = new Action <XCLNetTools.Entity.EasyUI.TreeItem>((parentModel) =>
                    {
                        var childs = allData.Where(k => k.ParentID == Convert.ToInt64(parentModel.ID)).ToList();
                        if (childs.IsNotNullOrEmpty())
                        {
                            childs = childs.OrderBy(k => k.Weight).ToList();
                            parentModel.Children = new List <XCLNetTools.Entity.EasyUI.TreeItem>();
                            childs.ForEach(m =>
                            {
                                var treeItem = new XCLNetTools.Entity.EasyUI.TreeItem()
                                {
                                    ID    = m.SysRoleID.ToString(),
                                    State = m.IsLeaf == 1 ? "open" : "closed",
                                    Text  = m.RoleName
                                };
                                getChildAction(treeItem);
                                parentModel.Children.Add(treeItem);
                            });
                        }
                    });

                    //从根节点开始
                    getChildAction(tree[0]);
                }
            }
            response.Body = tree;
            return(response);
        }