Ejemplo n.º 1
0
        /// <summary>
        /// 门店商品查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public static QueryPageModel <ProductInfo> GetShopBranchProducts(ShopBranchProductQuery query)
        {
            var pageModel = _shopBranchService.SearchProduct(query);
            //TODO:补充门店销售数量
            var orders = OrderApplication.GetOrdersNoPage(new OrderQuery {
                ShopBranchId = query.shopBranchId
            });
            var orderItems        = OrderApplication.GetOrderItemsByOrderId(orders.Select(e => e.Id));
            var pids              = pageModel.Models.Select(e => e.Id);
            var productSaleCounts = orderItems.Where(e => pids.Contains(e.ProductId)).GroupBy(o => o.ProductId).Select(e => new { productId = e.Key, saleCount = e.Sum(p => p.Quantity) });

            foreach (var p in pageModel.Models)
            {
                var productCount = productSaleCounts.FirstOrDefault(e => e.productId == p.Id);
                if (productCount != null)
                {
                    p.SaleCounts = productCount.saleCount;
                }
                else
                {
                    p.SaleCounts = 0;//门店商品无销量则为0,不应用默认的商家商品销量
                }
            }
            return(pageModel);
        }