Example #1
0
 public int GetProductCount(ProductSearchCondition condition)
 {
     var query = _productRepository.Table;
     try
     {
         if (condition.PriceBegin.HasValue)
         {
             query = query.Where(q => q.Price>= condition.PriceBegin.Value);
         }
         if (condition.PriceEnd.HasValue)
         {
             query = query.Where(q => q.Price < condition.PriceEnd.Value);
         }
         if (!string.IsNullOrEmpty(condition.Spec))
         {
             query = query.Where(q => q.Spec == condition.Spec);
         }
         if (condition.CategoryId != null)
         {
             query = query.Where(q => q.Category.Id == condition.CategoryId);
         }
         if (condition.Status.HasValue)
         {
             query = query.Where(q => q.Status == condition.Status.Value);
         }
         if (!string.IsNullOrEmpty(condition.Name))
         {
             query = query.Where(q => q.Name.Contains(condition.Name));
         }
         if (condition.Ids != null && condition.Ids.Any())
         {
             query = query.Where(q => condition.Ids.Contains(q.Id));
         }
         return query.Count();
     }
     catch(Exception e)
     {
         _log.Error(e,"数据库操作出错");
         return -1;
     }
 }
Example #2
0
 public HttpResponseMessage GetCount(
     int? categoryId = null,
     decimal? priceBegin = null,
     decimal? priceEnd = null,
     bool isDescending = false,
     string name = "",
     string spec = "",
     int pageCount = 10,
     int page = 1,
     string ids = "",
     EnumProductSearchOrderBy orderBy = EnumProductSearchOrderBy.OrderById)
 {
     var condition = new ProductSearchCondition
     {
         CategoryId = categoryId,
         IsDescending = isDescending,
         Name = name,
         OrderBy = orderBy,
         Page = page,
         PageCount = pageCount,
         PriceBegin = priceBegin,
         PriceEnd = priceEnd,
         Spec = spec,
         Ids = string.IsNullOrEmpty(ids) ? null : ids.Split(',').Select(int.Parse).ToArray()
     };
     var count = _productService.GetProductCount(condition);
     return PageHelper.toJson(new { TotalCount = count, Condition = condition });
 }
Example #3
0
        public IQueryable<ProductEntity> GetProductsByCondition(ProductSearchCondition condition)
        {
            var query = _productRepository.Table;
            try
            {
                if (condition.PriceBegin.HasValue)
                {
                    query = query.Where(q => q.Price>= condition.PriceBegin.Value);
                }
                if (condition.PriceEnd.HasValue)
                {
                    query = query.Where(q => q.Price < condition.PriceEnd.Value);
                }
                if (!string.IsNullOrEmpty(condition.Spec))
                {
                    query = query.Where(q => q.Spec == condition.Spec);
                }
                if (condition.CategoryId != null)
                {
                    query = query.Where(q => q.Category.Id == condition.CategoryId);
                }
                if (condition.Status.HasValue)
                {
                    query = query.Where(q => q.Status == condition.Status.Value);
                }
                if (!string.IsNullOrEmpty(condition.Name))
                {
                    query = query.Where(q => q.Name.Contains(condition.Name));
                }
                if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
                if(condition.OrderBy.HasValue)
                {
                    switch (condition.OrderBy.Value)
                    {
                        case EnumProductSearchOrderBy.OrderById:
                            query = condition.IsDescending?query.OrderByDescending(q=>q.Id):query.OrderBy(q=>q.Id);
                            break;
                        case EnumProductSearchOrderBy.OrderByPrice:
                            query = condition.IsDescending?query.OrderByDescending(q=>q.Price):query.OrderBy(q=>q.Price);
                            break;
                        case EnumProductSearchOrderBy.OrderByStatus:
                            query = condition.IsDescending?query.OrderByDescending(q=>q.Status):query.OrderBy(q=>q.Status);
                            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;
            }
        }
Example #4
0
        public HttpResponseMessage GetByCondition(
            int? categoryId = null,
            decimal? priceBegin = null,
            decimal? priceEnd = null,
            bool isDescending = false,
            string name = "",
            string spec = "",
            int pageCount = 10,
            int page = 1,
            string ids = "",
            EnumProductSearchOrderBy orderBy = EnumProductSearchOrderBy.OrderById)
        {
            var condition = new ProductSearchCondition
            {
                CategoryId = categoryId,
                IsDescending = isDescending,
                Name = name,
                OrderBy = orderBy,
                Page = page,
                PageCount = pageCount,
                PriceBegin = priceBegin,
                PriceEnd = priceEnd,
                Spec = spec,
                Ids = string.IsNullOrEmpty(ids) ? null : ids.Split(',').Select(int.Parse).ToArray()
            };
            var model = _productService.GetProductsByCondition(condition).Select(c => new ProductModel
            {

                Id = c.Id,

                Name = c.Name,

                Spec = c.Spec,

                Price = c.Price,

                Adduser = new UserModel { Id = c.Adduser.Id, UserName = c.Adduser.UserName },

                Addtime = c.Addtime,

                Upduser = new UserModel { Id = c.Upduser.Id, UserName = c.Upduser.UserName },

                Updtime = c.Updtime,

                Unit = c.Unit,

                Image = c.Image,

                //				Detail = c.Detail,

                //				Category = c.Category,

                Status = c.Status,

                //				PropertyValues = c.PropertyValues,

            }).ToList();
            return PageHelper.toJson(new { List = model });
            //return model;
        }