Пример #1
0
        public BaseApiResponse DashBoard()
        {
            var users           = _userQueryService.UserList();
            var wallets         = _walletQueryService.AllWallets();
            var stores          = _storeQueryService.StoreList();
            var storeOrders     = _storeOrderQueryService.StoreOrderList();
            var rechargeApplyes = _walletQueryService.RechargeApplyLogs();
            var incentiveBenevolenceTransfers = _walletQueryService.GetBenevolenceTransfers(BenevolenceTransferType.Incentive);

            return(new DashBoardResponse
            {
                UserCount = users.Count(),
                NewRegCount = users.Where(x => x.CreatedOn > DateTime.Now.AddDays(-7)).Count(),
                AmbassadorCount = users.Where(x => x.Role == UserRole.Ambassador).Count(),
                NewAmbassadorCount = users.Where(x => x.CreatedOn > DateTime.Now.AddDays(-7) && x.Role == UserRole.Ambassador).Count(),

                CashTotal = wallets.Sum(x => x.Cash),
                LockedCashTotal = wallets.Sum(x => x.LockedCash),
                RechargeApplysTotal = rechargeApplyes.Where(x => x.Status == RechargeApplyStatus.Placed).Sum(x => x.Amount),
                BenevolenceTotal = wallets.Sum(x => x.Benevolence),
                TodayBenevolenceAddedTotal = wallets.Sum(x => x.TodayBenevolenceAdded),
                LastIncentiveAmount = incentiveBenevolenceTransfers.Where(x => x.CreatedOn.Date.Equals(DateTime.Now.Date)).Sum(x => x.Amount),
                TotalIncentiveAmount = incentiveBenevolenceTransfers.Sum(x => x.Amount),

                TotalSale = stores.Sum(x => x.TotalSale),
                TodaySale = stores.Sum(x => x.TodaySale),
                StoreOrderCount = stores.Sum(x => x.TotalOrder),
                TodayStoreOrderCount = stores.Sum(x => x.TodayOrder),

                TodayOrderProfit = storeOrders.Where(x => x.CreatedOn.Date == DateTime.Now.Date).Sum(x => x.Total) - storeOrders.Where(x => x.CreatedOn.Date == DateTime.Now.Date).Sum(x => x.StoreTotal),
                TotalOrderProfit = storeOrders.Sum(x => x.Total) - storeOrders.Sum(x => x.StoreTotal)
            });
        }
Пример #2
0
        public ListPageResponse ListPage([FromBody] ListPageRequest request)
        {
            request.CheckNotNull(nameof(request));

            var pageSize    = 20;
            var storeOrders = _storeOrderQueryService.StoreOrderList();
            var total       = storeOrders.Count();

            //筛选
            if (request.Status != StoreOrderStatus.All)
            {
                storeOrders = storeOrders.Where(x => x.Status == request.Status);
            }
            if (!request.Number.IsNullOrEmpty())
            {
                storeOrders = storeOrders.Where(x => x.Number.Contains(request.Number));
            }
            if (!request.Mobile.IsNullOrEmpty())
            {
                storeOrders = storeOrders.Where(x => x.Mobile.Contains(request.Mobile));
            }
            if (!request.StoreName.IsNullOrEmpty())
            {
                storeOrders = storeOrders.Where(x => x.Name.Contains(request.StoreName));
            }
            total = storeOrders.Count();

            //分页
            storeOrders = storeOrders.OrderByDescending(x => x.CreatedOn).Skip(pageSize * (request.Page - 1)).Take(pageSize);

            return(new ListPageResponse
            {
                Total = total,
                StoreOrders = storeOrders.Select(x => new StoreOrderWithInfo
                {
                    Id = x.Id,
                    StoreId = x.StoreId,
                    Name = x.Name,
                    Mobile = x.Mobile,
                    NickName = x.NickName,
                    UserId = x.UserId,
                    Region = x.Region,
                    Number = x.Number,
                    Remark = x.Remark,
                    ExpressRegion = x.ExpressRegion,
                    ExpressAddress = x.ExpressAddress,
                    ExpressName = x.ExpressName,
                    ExpressMobile = x.ExpressMobile,
                    ExpressZip = x.ExpressZip,
                    CreatedOn = x.CreatedOn,
                    Total = x.Total,
                    ShopCash = x.ShopCash,
                    StoreTotal = x.StoreTotal,
                    DeliverExpressName = x.DeliverExpressName,
                    DeliverExpressCode = x.DeliverExpressCode,
                    DeliverExpressNumber = x.DeliverExpressNumber,
                    Status = x.Status.ToString()
                }).ToList()
            });
        }
Пример #3
0
        /// <summary>
        /// 自动确认收货
        /// </summary>
        private void ProcessConfirmDeliverOrder()
        {
            //获取可自动确认收货的订单
            var unConfirmDeliverOrders = _storeOrderQueryService.StoreOrderList().Where(
                x => x.Status == Common.Enums.StoreOrderStatus.Expressing &&
                x.DeliverTime.HasValue &&
                x.DeliverTime.Value.Add(ConfigSettings.OrderAutoConfirmDeliver) < DateTime.Now);

            if (unConfirmDeliverOrders.Any())
            {
                foreach (var expiredOrder in unConfirmDeliverOrders)
                {
                    var command = new ConfirmDeliverCommand {
                        AggregateRootId = expiredOrder.Id
                    };
                    _commandService.SendAsync(command);
                }
            }
        }