Beispiel #1
0
        public ActionResult GetTreeGridJson(TbAreaAdministrationReauset request, string keyword)
        {
            if (string.IsNullOrEmpty(request.code))
            {
                request.code = "";
            }
            else
            {
                keyword = "";
            }
            var data = _area.GetListTreeBySearch(request, keyword);

            if (string.IsNullOrWhiteSpace(keyword))
            {
                var treeList = new List <TreeGridAsynModel <TbAreaAdministrationTreeReauset> >();
                foreach (var item in data)
                {
                    TreeGridAsynModel <TbAreaAdministrationTreeReauset> treeModel = new TreeGridAsynModel <TbAreaAdministrationTreeReauset>();
                    treeModel.isLeaf     = item.ChildCount == 0;
                    treeModel.parentId   = item.FK_AreaCode;
                    treeModel.nodeId     = item.AreaCode;
                    treeModel.n_level    = request.code == "" ? 0 : request.n_level + 1;
                    treeModel.entityJson = item;
                    treeList.Add(treeModel);
                }
                return(Content(treeList.TreeGridAsynJson()));
            }
            else
            {
                var treeList = new List <TreeGridModel>();
                foreach (var item in data)
                {
                    TreeGridModel treeModel   = new TreeGridModel();
                    bool          hasChildren = data.Count(t => t.FK_AreaCode == item.AreaCode) == 0 ? false : true;
                    if (data.Count(t => t.AreaCode == item.FK_AreaCode) == 0)
                    {
                        item.FK_AreaCode = "0";
                    }
                    treeModel.id         = item.AreaCode;
                    treeModel.isLeaf     = hasChildren;
                    treeModel.parentId   = item.FK_AreaCode;
                    treeModel.expanded   = true;
                    treeModel.entityJson = item.ToJson();
                    treeList.Add(treeModel);
                }
                return(Content(treeList.TreeGridJson()));
            }
        }
        /// <summary>
        /// 获取数据列表(tree)
        /// </summary>
        public List <TbAreaAdministrationTreeReauset> GetListTreeBySearch(TbAreaAdministrationReauset request, string keyword)
        {
            string sql = @"select 
                             AreaCode
                            ,AreaCode as code
                            ,FK_AreaCode
                            ,AreaName
                            ,AreaName as name
                            ,FK_AreaCode_F
                            ,(select COUNT(*) from TbAreaAdministration where FK_AreaCode= a.AreaCode) as ChildCount 
                            from TbAreaAdministration a 
                     where 1=1";

            if (string.IsNullOrWhiteSpace(keyword))
            {
                if (!string.IsNullOrWhiteSpace(request.code))
                {
                    sql += " and a.FK_AreaCode=@pcode ";
                }
                else
                {
                    sql += " and a.FK_AreaCode is null ";
                }
                sql += "order by a.Sort";
                var list = Db.Context.FromSql(sql)
                           .AddInParameter("@name", DbType.String, "%" + request.AreaName + "%")
                           .AddInParameter("@pcode", DbType.String, request.code)
                           .ToList <TbAreaAdministrationTreeReauset>();
                return(list);
            }
            else
            {
                var area = Repository <TbAreaAdministration> .First(p => p.AreaCode == keyword || p.AreaName == keyword);

                if (area != null)
                {
                    //查找第一级code
                    var codeArry = area.FK_AreaCode_F.Split('.');
                    sql = @"select 
                             a.AreaCode
                            ,a.AreaCode as code
                            ,a.FK_AreaCode
                            ,a.AreaName
                            ,a.AreaName as name
                            ,a.FK_AreaCode_F
                            ,a.Sort
                             from TbAreaAdministration a 
                             where (a.AreaCode=@keyword or a.AreaCode=@keyword2 or a.FK_AreaCode_F like @keyword3)";
                    var list = Db.Context.FromSql(sql)
                               .AddInParameter("@keyword", DbType.String, codeArry[0])
                               .AddInParameter("@keyword2", DbType.String, area.FK_AreaCode)
                               .AddInParameter("@keyword3", DbType.String, area.FK_AreaCode_F + "%")
                               .ToList <TbAreaAdministrationTreeReauset>();
                    return(list);
                }
                else
                {
                    return(null);
                }
            }
        }