public List<TreeJsonModel> GetJsonFromTreeModel(int nodeId,int ifid=0)
        {
            CategorySearchCondition csc = new CategorySearchCondition()
            {
                OrderBy = EnumCategorySearchOrderBy.OrderById
            };
            List<TreeJsonModel> datalist = new List<TreeJsonModel>();
            List<CategoryEntity> ceList = _categoryService.GetCategorysBySuperFather(nodeId).ToList();//找出该级的子集;
            int i = 0;
            foreach (var ce in ceList)
            {
                TreeJsonModel TJM = new TreeJsonModel()
                {
                    label = ce.Name,
                    Id = ce.Id,
                   // Father  =ce.Father
                };
                datalist.Add(TJM);
                if(ifid==0)
                TJM.children = GetJsonFromTreeModel(TJM.Id);//自迭代;

            }
            if (ceList.Count == 0)//若遍历到末端,则:
            {
                return null;
            }
            else
            {
                return datalist;
            }
        }
      public HttpResponseMessage Get(CategorySearchCondition condition)
		{
            //验证是否有非法字符
            Regex reg = new Regex(@"^[^ %@#!*~&',;=?$\x22]+$");

            if (!string.IsNullOrEmpty(condition.Name))
            {
                var m = reg.IsMatch(condition .Name);
                if (!m)
                {
                    return PageHelper.toJson(PageHelper.ReturnValue(false, "搜索输入存在非法字符!"));
                }
            }
			var model = _categoryService.GetCategorysByCondition(condition).Select(c=>new CategoryModel
			{
				Id = c.Id,
			//	Father = c.Father,
				Name = c.Name,
				Sort = c.Sort,
				AddUser = c.AddUser,
				AddTime = c.AddTime,
				UpdUser = c.UpdUser,
				UpdTime = c.UpdTime,
                
			}).ToList();
            return PageHelper.toJson(model);
		}
        public List<TreeJsonModel> GetCateANDPro()
        {
            CategorySearchCondition csc = new CategorySearchCondition()
            {
                OrderBy = EnumCategorySearchOrderBy.OrderById,
                father ="NULL"
            };
            List<CategoryEntity> ceListBuffer = new List<CategoryEntity>();
            List<TreeJsonModel> treeJsonModelBuffer = new List<TreeJsonModel>();
            List<CategoryEntity> ceList = _categoryService.GetCategorysByCondition(csc).ToList();
            foreach (var ce in ceList)
            {
                if (ce.Father == null)
                {
                    ceListBuffer.Add(ce);//查找第一级;
                }
            }
            foreach (var ce in ceListBuffer)
            {
                List<CategoryEntity> ceList1 = _categoryService.GetCategorysBySuperFather(ce.Id).ToList();//找出该级的子集;
                TreeJsonModel TJM1=null;
                foreach (var ce1 in ceList1)
                {
                     TJM1 = new TreeJsonModel()
                    {
                        label = ce1.Name,
                        Id = ce1.Id,
                        //Father = ce1.Father
                    };
                     TJM1.children = GetJsonModel(ce1.Id);//获取第三级分类跟分类下的前6个商品
                     treeJsonModelBuffer.Add(TJM1);

                }
                    
                
            }
            return treeJsonModelBuffer;
        }
 public List<TreeJsonModel> GetAllTree(int ifid=0)
 {
     CategorySearchCondition  csc = new CategorySearchCondition()
     {
         OrderBy = EnumCategorySearchOrderBy.OrderById
     };
     List<CategoryEntity> ceListBuffer = new List<CategoryEntity>();
     List<TreeJsonModel> treeJsonModelBuffer = new List<TreeJsonModel>();
     List<CategoryEntity> ceList = _categoryService.GetCategorysByCondition(csc).ToList();
     foreach (var ce in ceList)
     {
         if (ce.Father == null)
         {
             ceListBuffer.Add(ce);//查找第一级;
         }
     }
     foreach (var ce in ceListBuffer)
     {
         TreeJsonModel TJM = new TreeJsonModel()
         {
             label = ce.Name,
             Id = ce.Id
         };
         treeJsonModelBuffer.Add(TJM);
         if(ifid==0)//如果ifid为0,那么直到查找到最后一级子类,否则只查到下一级
         {
         TJM.children = GetJsonFromTreeModel(TJM.Id);
         }
         else
         {
             TJM.children = GetJsonFromTreeModel(TJM.Id,1);
         }
     }
     return treeJsonModelBuffer;
 }
 public HttpResponseMessage GetAllClassify()
 {
     CategorySearchCondition csc = new CategorySearchCondition()
     {
         OrderBy = EnumCategorySearchOrderBy.OrderById
     };
     return PageHelper.toJson(GetAllTree().ToList());
 }
		public IQueryable<CategoryEntity> GetCategorysByCondition(CategorySearchCondition condition)
		{
			var query = _categoryRepository.Table;
			try
			{
                if(condition .father =="NULL")
                {
                    query = query.Where(q => q.Father == null&&q.Name !="服务");
                }
				if (condition.AddTimeBegin.HasValue)
                {
                    query = query.Where(q => q.AddTime>= condition.AddTimeBegin.Value);
                }
                if (condition.AddTimeEnd.HasValue)
                {
                    query = query.Where(q => q.AddTime < condition.AddTimeEnd.Value);
                }
				if (condition.UpdTimeBegin.HasValue)
                {
                    query = query.Where(q => q.UpdTime>= condition.UpdTimeBegin.Value);
                }
                if (condition.UpdTimeEnd.HasValue)
                {
                    query = query.Where(q => q.UpdTime < condition.UpdTimeEnd.Value);
                }
				if (!string.IsNullOrEmpty(condition.Name))
                {
                    query = query.Where(q => q.Name.Contains(condition.Name));
                }
				if (!string.IsNullOrEmpty(condition.AddUser))
                {
                    query = query.Where(q => q.AddUser == int.Parse(condition.AddUser));
                }
				if (!string.IsNullOrEmpty(condition.UpdUser))
                {
                    query = query.Where(q => q.UpdUser == int.Parse(condition.UpdUser));
                }
				if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
				if (condition.Sorts != null && condition.Sorts.Any())
                {
                    query = query.Where(q => condition.Sorts.Contains(q.Sort));
                }

				if(condition.OrderBy.HasValue)
				{
					switch (condition.OrderBy.Value)
                    {
						case EnumCategorySearchOrderBy.OrderById:
							query = condition.IsDescending?query.OrderByDescending(q=>q.Id):query.OrderBy(q=>q.Id);
							break;
						case EnumCategorySearchOrderBy.OrderByAddTime:
							query = condition.IsDescending?query.OrderByDescending(q=>q.AddTime):query.OrderBy(q=>q.AddTime);
							break;
                    }
					
				}
				else
				{
					query = query.OrderBy(q=>q.Id);
				}

				if (condition.Page.HasValue && condition.PageCount.HasValue)
                {
                    query = query.Skip((condition.Page.Value - 1)*condition.PageCount.Value).Take(condition.PageCount.Value);
                }
				return query;
			}
			catch(Exception e)
			{
				_log.Error(e,"数据库操作出错");
                return null;
			}
		}
		public int GetCategoryCount (CategorySearchCondition condition)
		{
			var query = _categoryRepository.Table;
			try
			{
				if (condition.AddTimeBegin.HasValue)
                {
                    query = query.Where(q => q.AddTime>= condition.AddTimeBegin.Value);
                }
                if (condition.AddTimeEnd.HasValue)
                {
                    query = query.Where(q => q.AddTime < condition.AddTimeEnd.Value);
                }
				if (condition.UpdTimeBegin.HasValue)
                {
                    query = query.Where(q => q.UpdTime>= condition.UpdTimeBegin.Value);
                }
                if (condition.UpdTimeEnd.HasValue)
                {
                    query = query.Where(q => q.UpdTime < condition.UpdTimeEnd.Value);
                }
				if (!string.IsNullOrEmpty(condition.Name))
                {
                    query = query.Where(q => q.Name.Contains(condition.Name));
                }
				if (!string.IsNullOrEmpty(condition.AddUser))
                {
                    query = query.Where(q => q.AddUser==int.Parse(condition.AddUser));
                }
				if (!string.IsNullOrEmpty(condition.UpdUser))
                {
                    query = query.Where(q => q.UpdUser==int.Parse(condition.UpdUser));
                }
				if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
				if (condition.Sorts != null && condition.Sorts.Any())
                {
                    query = query.Where(q => condition.Sorts.Contains(q.Sort));
                }
				return query.Count();
			}
			catch(Exception e)
			{
				_log.Error(e,"数据库操作出错");
                return -1;
			}
		}