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; } }
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()); }
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; } }
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; }