Ejemplo n.º 1
0
        private void UpdateShopVisti(OrderRefundInfo refund, DateTime payDate)
        {
            ShopVistiInfo shopVistiInfo = context.ShopVistiInfo.FindBy((ShopVistiInfo item) => item.ShopId == refund.ShopId && (item.Date == payDate.Date)).FirstOrDefault();

            if (shopVistiInfo != null)
            {
                if (refund.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund)
                {
                    List <OrderItemInfo> list = (
                        from d in context.OrderItemInfo
                        where d.OrderId == refund.OrderId
                        select d).ToList();
                    foreach (OrderItemInfo orderItemInfo in list)
                    {
                        ShopVistiInfo saleCounts = shopVistiInfo;
                        saleCounts.SaleCounts = saleCounts.SaleCounts - orderItemInfo.Quantity;
                    }
                }
                else if (refund.IsReturn)
                {
                    ShopVistiInfo saleCounts1 = shopVistiInfo;
                    saleCounts1.SaleCounts = saleCounts1.SaleCounts - refund.OrderItemInfo.ReturnQuantity;
                }
                ShopVistiInfo saleAmounts = shopVistiInfo;
                saleAmounts.SaleAmounts = saleAmounts.SaleAmounts - refund.Amount;
                context.SaveChanges();
            }
        }
Ejemplo n.º 2
0
        public void LogShopVisti(long shopId)
        {
            DateTime      now           = DateTime.Now;
            ShopVistiInfo shopVistiInfo = context.ShopVistiInfo.FirstOrDefault((ShopVistiInfo s) => s.ShopId.Equals(shopId) && s.Date.Year.Equals(now.Year) && s.Date.Month.Equals(now.Month) && s.Date.Day.Equals(now.Day));

            if (shopVistiInfo == null || !shopVistiInfo.ShopId.Equals(shopId))
            {
                DbSet <ShopVistiInfo> shopVistiInfos = context.ShopVistiInfo;
                ShopVistiInfo         shopVistiInfo1 = new ShopVistiInfo()
                {
                    ShopId      = shopId,
                    Date        = DateTime.Now,
                    VistiCounts = 1,
                    SaleAmounts = new decimal(0),
                    SaleCounts  = 0
                };
                shopVistiInfos.Add(shopVistiInfo1);
            }
            else
            {
                ShopVistiInfo vistiCounts = shopVistiInfo;
                vistiCounts.VistiCounts = vistiCounts.VistiCounts + 1;
            }
            context.SaveChanges();
        }
Ejemplo n.º 3
0
        void StatisticCreateOrder(DateTime statisticStartDate, DateTime statisticEndDate)
        {
            Entity.Entities entity = new Entity.Entities();
            //时间段内所有订单(下单数据统计)
            var orders      = entity.OrderInfo.Where(e => e.OrderDate >= statisticStartDate && e.OrderDate < statisticEndDate).ToList();
            var orderGroups = orders.GroupBy(e => e.ShopId);
            //已存在的店铺统计
            var shopids        = orderGroups.Select(e => e.Key).Distinct();
            var shopVisitInfos = entity.ShopVistiInfo.Where(e => shopids.Contains(e.ShopId) && e.Date == statisticStartDate).ToList();
            List <ShopVistiInfo> shopVisitRange = new List <ShopVistiInfo>();

            foreach (var g in orderGroups)
            {
                ShopVistiInfo shopVisit = shopVisitInfos.FirstOrDefault(e => e.ShopId == g.Key);
                if (shopVisit == null)
                {
                    shopVisit = new ShopVistiInfo();
                    shopVisitRange.Add(shopVisit);
                }
                shopVisit.Date              = statisticStartDate;
                shopVisit.ShopId            = g.Key;
                shopVisit.OrderCount        = g.Count();
                shopVisit.OrderAmount       = g.Sum(e => e.TotalAmount);
                shopVisit.OrderUserCount    = g.Select(e => e.UserId).Distinct().Count();
                shopVisit.OrderProductCount = g.Sum(e => e.OrderProductQuantity);
                shopVisit.StatisticFlag     = true;
            }

            //将没有订单记录的统计信息,统一修改为已统计
            var noOrdersStatistic = shopVisitInfos.Where(e => !shopids.Any(p => p == e.ShopId));

            foreach (var v in noOrdersStatistic)
            {
                v.StatisticFlag = true;
            }
            entity.ShopVistiInfo.AddRange(shopVisitRange);
            entity.SaveChanges();

            //时间段内已支付订单(付款数据统计)
            var payOrders      = entity.OrderInfo.Where(e => e.PayDate.HasValue && e.PayDate.Value >= statisticStartDate && e.PayDate.Value < statisticEndDate).ToList();
            var payOrderGroups = payOrders.GroupBy(e => e.ShopId);

            //已存在的店铺统计
            shopids        = payOrderGroups.Select(e => e.Key).Distinct();
            shopVisitInfos = entity.ShopVistiInfo.Where(e => shopids.Contains(e.ShopId) && e.Date == statisticStartDate).ToList();
            shopVisitRange = new List <ShopVistiInfo>();
            foreach (var g in payOrderGroups)
            {
                ShopVistiInfo shopVisit = shopVisitInfos.FirstOrDefault(e => e.ShopId == g.Key);
                if (shopVisit == null)
                {
                    shopVisit = new ShopVistiInfo();
                    shopVisitRange.Add(shopVisit);
                }
                shopVisit.Date              = statisticStartDate;
                shopVisit.ShopId            = g.Key;
                shopVisit.OrderPayCount     = g.Count();
                shopVisit.OrderPayUserCount = g.Select(e => e.UserId).Distinct().Count();
                shopVisit.SaleAmounts       = g.Sum(e => e.TotalAmount);
                shopVisit.SaleCounts        = g.Sum(e => e.OrderProductQuantity);
                shopVisit.StatisticFlag     = true;
            }
            //将没有订单记录的统计信息,统一修改为已统计
            var noPayOrdersStatistic = shopVisitInfos.Where(e => !shopids.Any(p => p == e.ShopId));

            foreach (var v in noPayOrdersStatistic)
            {
                v.StatisticFlag = true;
            }
            entity.ShopVistiInfo.AddRange(shopVisitRange);

            //平台统计
            PlatVisitsInfo platVisit = entity.PlatVisitsInfo.FirstOrDefault(e => e.Date == statisticStartDate);

            if (platVisit == null)
            {
                platVisit = new PlatVisitsInfo();
                //添加
                entity.PlatVisitsInfo.Add(platVisit);
            }
            platVisit.Date              = statisticStartDate;
            platVisit.OrderCount        = orders.Count();
            platVisit.OrderAmount       = orders.Sum(e => e.TotalAmount);
            platVisit.OrderUserCount    = orders.Select(e => e.UserId).Distinct().Count();
            platVisit.OrderProductCount = orders.Sum(e => e.OrderProductQuantity);
            //已支付订单
            platVisit.OrderPayCount     = payOrders.Count();
            platVisit.OrderPayUserCount = payOrders.Select(e => e.UserId).Distinct().Count();
            platVisit.SaleAmounts       = payOrders.Sum(e => e.TotalAmount);
            platVisit.SaleCounts        = payOrders.Sum(e => e.OrderProductQuantity);
            platVisit.StatisticFlag     = true;

            entity.SaveChanges();
        }