コード例 #1
0
        public int GetProductCount(ProductSearchCondition condition)
        {
            var query = _productRepository.Table;
            try
            {
                if (!string.IsNullOrEmpty(condition.AreaName))
                {
                    query = query.Where(q => q.ProductParameter.Count(pp => pp.ParameterValue.Parametervalue == condition.AreaName)>0);
                }
                if (condition.TypeId.HasValue)
                {
                     query = query.Where(q=>q.ProductParameter.Count(pp=>pp.ParameterValue.Id ==condition.TypeId) >0);
                }
                if (condition.CommissionBegin.HasValue)
                {
                    query = query.Where(q => q.Commission >= condition.CommissionBegin.Value);
                }
                if (condition.CommissionEnd.HasValue)
                {
                    query = query.Where(q => q.Commission < condition.CommissionEnd.Value);
                }

                if (condition.ProductBrand != null)
                {
                    query = query.Where(q => q.ProductBrand.Id == condition.ProductBrand);
                }

                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 (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 (condition.Status.HasValue)
                {
                    query = query.Where(q => q.Status == condition.Status.Value);
                }



                if (condition.Recommend.HasValue)
                {
                    query = query.Where(q => q.Recommend == condition.Recommend.Value);
                }



                if (!string.IsNullOrEmpty(condition.Productname))
                {
                    query = query.Where(q => q.Productname.Contains(condition.Productname));
                }



                if (!string.IsNullOrEmpty(condition.Productimg))
                {
                    query = query.Where(q => q.Productimg.Contains(condition.Productimg));
                }



                if (!string.IsNullOrEmpty(condition.Adduser))
                {
                    query = query.Where(q => q.Adduser.Contains(condition.Adduser));
                }



                if (!string.IsNullOrEmpty(condition.Upduser))
                {
                    query = query.Where(q => q.Upduser.Contains(condition.Upduser));
                }



                if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }


                if (condition.ProductDetails != null && condition.ProductDetails.Any())
                {
                    query = query.Where(q => condition.ProductDetails.Contains(q.ProductDetail));
                }


                if (condition.Classifys != null && condition.Classifys.Any())
                {
                    query = query.Where(q => condition.Classifys.Contains(q.Classify));
                }


                if (condition.ProductBrands != null && condition.ProductBrands.Any())
                {
                    query = query.Where(q => condition.ProductBrands.Contains(q.ProductBrand));
                }


                if (condition.Bussnessid.HasValue)
                {
                    query = query.Where(q => q.Bussnessid == condition.Bussnessid);
                }



                if (condition.Sorts != null && condition.Sorts.Any())
                {
                    query = query.Where(q => condition.Sorts.Contains(q.Sort));
                }


                if (condition.Stockrules != null && condition.Stockrules.Any())
                {
                    query = query.Where(q => condition.Stockrules.Contains(q.Stockrule));
                }



                return query.Count();
            }
            catch (Exception e)
            {
                _log.Error(e, "数据库操作出错");
                return -1;
            }
        }
コード例 #2
0
        public HttpResponseMessage GetAllProduct(int page = 1, int pageSize = 10, bool isDes = true, EnumProductSearchOrderBy orderByAll = EnumProductSearchOrderBy.OrderByAddtime)
        {
            ProductSearchCondition PSC = new ProductSearchCondition()
            {
                Page = page,
                PageCount = pageSize,
                IsDescending = isDes,
                OrderBy = orderByAll
            };
            var productList = _productService.GetProductsByCondition(PSC).Select(a => new ProductDetail
            {
                Id = a.Id,
                Productname = a.Productname,
                Productimg = a.Productimg,
                Price = a.Price,

                RecCommission = a.RecCommission,
                Commission = a.Commission,
                Dealcommission = a.Dealcommission,
                ClassifyName = a.Classify.Name,
                Addtime = a.Addtime,
                Phone=a.ContactPhone,
                SubTitle = a.SubTitle,
                ProductDetailed = a.ProductDetail.Productdetail,
                StockRule = a.Stockrule,
                Advertisement = a.ProductDetail.Ad1,
                Acreage = a.ProductParameter.FirstOrDefault(pp => pp.Parameter.Name == "面积").ParameterValue.Parametervalue.ToString(),
                Type = a.ProductParameter.FirstOrDefault(p => p.Parameter.Name == "户型").ParameterValue.Parametervalue.ToString()
            }).ToList().Select(b => new
            {
                b.Id,
                b.Productname,
                b.Productimg,
                b.Price,

                b.RecCommission,
                b.Commission,
                b.Dealcommission,
                b.ClassifyName,
                b.Addtime,
                b.Phone,
                

                b.SubTitle,
                b.ProductDetailed,
                b.StockRule,
                b.Acreage,
                b.Type,
                b.Advertisement
            });
            var totalCount = _productService.GetProductCount(PSC);
            return PageHelper.toJson(new { List = productList, Condition = PSC, TotalCount = totalCount });
            //return PageHelper.toJson(_productService.GetProductsByCondition(PSC).ToList());
        }
コード例 #3
0
        public IQueryable<ProductEntity> GetProductsByCondition(ProductSearchCondition condition)
        {
            var query = _productRepository.Table;
            try
            {
                if (!string.IsNullOrEmpty(condition.AreaName))
                {
                    query = query.Where(q=>q.ProductParameter.Count(pp=>pp.ParameterValue.Parametervalue == condition.AreaName)>0);
                }
                if (condition.TypeId.HasValue)
                {
                    query = query.Where(q=>q.ProductParameter.Count(pp=>pp.ParameterValue.Id ==condition.TypeId) >0);
                }
                if (condition.CommissionBegin.HasValue)
                {
                    query = query.Where(q => q.Commission >= condition.CommissionBegin.Value);
                }
                if (condition.CommissionEnd.HasValue)
                {
                    query = query.Where(q => q.Commission < condition.CommissionEnd.Value);
                }


                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 (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 (condition.Status.HasValue)
                {
                    query = query.Where(q => q.Status == condition.Status.Value);
                }



                if (condition.Recommend.HasValue)
                {
                    query = query.Where(q => q.Recommend == condition.Recommend.Value);
                }



                if (!string.IsNullOrEmpty(condition.Productname))
                {
                    query = query.Where(q => q.Productname.Contains(condition.Productname));
                }



                if (!string.IsNullOrEmpty(condition.Productimg))
                {
                    query = query.Where(q => q.Productimg.Contains(condition.Productimg));
                }



                if (!string.IsNullOrEmpty(condition.Adduser))
                {
                    query = query.Where(q => q.Adduser.Contains(condition.Adduser));
                }



                if (!string.IsNullOrEmpty(condition.Upduser))
                {
                    query = query.Where(q => q.Upduser.Contains(condition.Upduser));
                }



                if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }


                if (condition.ProductDetails != null && condition.ProductDetails.Any())
                {
                    query = query.Where(q => condition.ProductDetails.Contains(q.ProductDetail));
                }


                if (condition.Classifys != null && condition.Classifys.Any())
                {
                    query = query.Where(q => condition.Classifys.Contains(q.Classify));
                }


                if (condition.ProductBrands != null && condition.ProductBrands.Any())
                {
                    query = query.Where(q => condition.ProductBrands.Contains(q.ProductBrand));
                }


                if (condition.Bussnessid.HasValue)
                {
                    query = query.Where(q => q.Bussnessid==condition.Bussnessid);
                }


                if (condition.Sorts != null && condition.Sorts.Any())
                {
                    query = query.Where(q => condition.Sorts.Contains(q.Sort));
                }


                if (condition.Stockrules != null && condition.Stockrules.Any())
                {
                    query = query.Where(q => condition.Stockrules.Contains(q.Stockrule));
                }

                if (condition.ProductBrand != null)
                {
                    query = query.Where(q => q.ProductBrand.Id == condition.ProductBrand);
                }


                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.OrderByAddtime:
                            query = condition.IsDescending ? query.OrderByDescending(q => q.Addtime) : query.OrderBy(q => q.Addtime);
                            break;
                        case EnumProductSearchOrderBy.OrderByPrice:
                            query = condition.IsDescending ? query.OrderByDescending(q => q.Price) : query.OrderBy(q => q.Price);
                            break;
                        case EnumProductSearchOrderBy.OrderByDealcommission:
                            query = condition.IsDescending ? query.OrderByDescending(q => q.Dealcommission) : query.OrderBy(q => q.Dealcommission);
                            break;
                        case EnumProductSearchOrderBy.OrderByRecCommission:
                            query = condition.IsDescending ? query.OrderByDescending(q => q.RecCommission) : query.OrderBy(q => q.RecCommission);
                            break;
                        case EnumProductSearchOrderBy.OrderByCommission:
                            query = condition.IsDescending ? query.OrderByDescending(q => q.Commission) : query.OrderBy(q => q.Commission);
                            break;
                        case EnumProductSearchOrderBy.OrderByStockRule:
                            query = condition.IsDescending ? query.OrderByDescending(q => q.Stockrule) : query.OrderBy(q => q.Stockrule);
                            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;
            }
        }
コード例 #4
0
 public ProductEntity GetProductByBrand(int BrandId)
 {
     var sech = new ProductSearchCondition
     {
         OrderBy = EnumProductSearchOrderBy.OrderByPrice,
         ProductBrand = BrandId
     };
     var model = _productService.GetProductsByCondition(sech).FirstOrDefault();
     if (model == null)
     {
         return null;
     }
     return model;
 }