コード例 #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);
        }
コード例 #2
0
        public object GetShopHome()
        {
            CheckUserLogin();

            DateTime nowDt = DateTime.Now;
            //三个月内预约单
            OrderQuery query = new OrderQuery()
            {
                ShopId = this.CurrentUser.ShopId, StartDate = nowDt.Date.AddDays(-nowDt.Day).AddMonths(-2), EndDate = nowDt
            };
            var orders            = OrderApplication.GetOrdersNoPage(query);
            var threeMonthAmounht = orders.Sum(e => e.ActualPayAmount);
            //从三个月的数据中统计本周的
            DateTime weekStartDt = nowDt.Date.AddDays(-(int)nowDt.DayOfWeek);
            var      weekAmount  = orders.Where(e => e.OrderDate >= weekStartDt).Sum(e => e.ActualPayAmount);
            //从三个月的数据中统计当天的
            var todayAmount = orders.Where(e => e.OrderDate.Date == nowDt.Date).Sum(e => e.ActualPayAmount);


            //近三天发布诊疗项目数
            ProductQuery productQuery = new ProductQuery();

            productQuery.AuditStatus = new[] { ProductInfo.ProductAuditStatus.Audited };
            productQuery.StartDate   = nowDt.Date.AddDays(-2);
            productQuery.EndDate     = nowDt;
            productQuery.PageNo      = 1;
            productQuery.PageSize    = int.MaxValue;

            var products     = ProductManagerApplication.GetProducts(productQuery).Models;
            var productCount = products.Select(e => e.Id).Count();

            RefundQuery refundQuery = new RefundQuery()
            {
                AuditStatus = OrderRefundInfo.OrderRefundAuditStatus.WaitAudit,
                PageNo      = 1,
                PageSize    = int.MaxValue
            };
            var refunds     = RefundApplication.GetOrderRefunds(refundQuery);
            var refundCount = refunds.Total;


            return(Json(new
            {
                success = true,
                data = new
                {
                    shopName = CurrentShopBranch.ShopBranchName,
                    todayAmount = todayAmount,
                    weekAmount = weekAmount,
                    threeMonthAmounht = threeMonthAmounht,
                    createProductCount = productCount,
                    refundCount = refundCount
                }
            }));
        }
コード例 #3
0
        public object GetShopBranchHome()
        {
            CheckUserLogin();

            DateTime nowDt = DateTime.Now;
            //三个月内预约单
            OrderQuery query = new OrderQuery()
            {
                ShopBranchId = CurrentShopBranch.Id, StartDate = nowDt.Date.AddDays(-nowDt.Day).AddMonths(-2), EndDate = nowDt
            };
            var orders            = OrderApplication.GetOrdersNoPage(query);
            var threeMonthAmounht = orders.Sum(e => e.ActualPayAmount);
            //从三个月的数据中统计本周的
            DateTime weekStartDt = nowDt.Date.AddDays(-(int)nowDt.DayOfWeek);
            var      weekAmount  = orders.Where(e => e.OrderDate >= weekStartDt).Sum(e => e.ActualPayAmount);
            //从三个月的数据中统计当天的
            var todayAmount = orders.Where(e => e.OrderDate.Date == nowDt.Date).Sum(e => e.ActualPayAmount);

            //待自提预约单数
            query = new OrderQuery()
            {
                ShopBranchId = CurrentShopBranch.Id,
                Status       = OrderInfo.OrderOperateStatus.WaitSelfPickUp
            };
            var pickUpOrders     = OrderApplication.GetOrdersNoPage(query);
            var pickUpOrderCount = pickUpOrders.Count;

            //近三天发布诊疗项目数
            var products     = ShopBranchApplication.GetShopBranchProductCount(CurrentShopBranch.Id, nowDt.Date.AddDays(-2), nowDt.Date);
            var productCount = products.Select(e => e.ProductId).Distinct().Count();
            var vshop        = ServiceProvider.Instance <IVShopService> .Create.GetVShopByShopId(CurrentShopBranch.ShopId);

            var logo = "/Images/branchapp.jpg";

            if (vshop != null && vshop.State == VShopInfo.VshopStates.Normal && !string.IsNullOrEmpty(vshop.WXLogo))
            {
                logo = vshop.WXLogo;
            }
            return(Json(new
            {
                success = true,
                data = new
                {
                    shopName = CurrentShopBranch.ShopBranchName,
                    todayAmount = todayAmount,
                    weekAmount = weekAmount,
                    threeMonthAmounht = threeMonthAmounht,
                    createProductCount = productCount,
                    pickUpOrderCount = pickUpOrderCount,
                    logo = logo,
                    shopBranchId = CurrentShopBranch.Id
                }
            }));
        }
コード例 #4
0
 /// <summary>
 /// 门店销量
 /// </summary>
 /// <param name="shopBranchId"></param>
 /// <param name="startDate"></param>
 /// <param name="endDate"></param>
 /// <returns></returns>
 public static long GetShopBranchSaleCount(long shopBranchId, DateTime startDate, DateTime endDate)
 {
     return(Enumerable.Sum <OrderItem>((IEnumerable <OrderItem>)OrderApplication.GetOrderItemsByOrderId(Enumerable.Select <Order, long>((IEnumerable <Order>)OrderApplication.GetOrdersNoPage(new OrderQuery()
     {
         ShopBranchId = new long?(shopBranchId),
         StartDate = new DateTime?(startDate),
         EndDate = new DateTime?(endDate.AddDays(-1.0))
     }), (Func <Order, long>)(e => e.Id))), (Func <OrderItem, long>)(p => p.Quantity)));
 }
コード例 #5
0
        /// <summary>
        /// 产品销量
        /// </summary>
        /// <param name="shopBranchId"></param>
        /// <param name="productId"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        public static long GetProductSaleCount(long shopBranchId, long productId, DateTime startDate, DateTime endDate)
        {
            IEnumerable <OrderItem> source = Enumerable.Where <OrderItem>((IEnumerable <OrderItem>)OrderApplication.GetOrderItemsByOrderId(Enumerable.Select <Order, long>((IEnumerable <Order>)OrderApplication.GetOrdersNoPage(new OrderQuery()
            {
                ShopBranchId = new long?(shopBranchId),
                StartDate    = new DateTime?(startDate),
                EndDate      = new DateTime?(endDate.AddDays(-1.0))
            }), (Func <Order, long>)(e => e.Id))), (Func <OrderItem, bool>)(e => e.ProductId == productId));

            if (Enumerable.Any <OrderItem>(source))
            {
                return(Enumerable.Sum <OrderItem>(source, (Func <OrderItem, long>)(x => x.Quantity)));
            }
            return(0);
        }
コード例 #6
0
        /// <summary>
        /// 获取门店的月产品数量
        /// </summary>
        /// <param name="query"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        public static QueryPageModel <ProductInfo> GetShopBranchProductsMonth(ShopBranchProductQuery query, DateTime startDate, DateTime endDate)
        {
            QueryPageModel <ProductInfo> model = _shopBranchService.SearchProduct(query);
            OrderQuery orderQuery = new OrderQuery
            {
                ShopBranchId = query.shopBranchId,
                StartDate    = new DateTime?(startDate),
                EndDate      = new DateTime?(endDate.AddDays(-1.0))
            };
            List <OrderItem>   orderItemsByOrderId = OrderApplication.GetOrderItemsByOrderId((IEnumerable <long>)(from e in OrderApplication.GetOrdersNoPage(orderQuery) select e.Id));
            IEnumerable <long> pids = from e in model.Models select e.Id;
            var source = from o in orderItemsByOrderId
                         where pids.Contains <long>(o.ProductId)
                         group o by o.ProductId into e
                         select new { productId = e.Key, saleCount = e.Sum <OrderItem>((Func <OrderItem, long>)(p => p.Quantity)) };

            using (List <ProductInfo> .Enumerator enumerator = model.Models.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    ProductInfo p = enumerator.Current;
                    var         fAnonymousType0 = Enumerable.FirstOrDefault(source, e => e.productId == p.Id);
                    p.SaleCounts = fAnonymousType0 == null ? 0 : fAnonymousType0.saleCount;
                }
            }
            return(model);
        }