| | |
| | | var statistics = await _dallyStatisticsRepository.Where(x => x.CreationTime.Date == today) |
| | | .WhereIf(channleList.Count() > 0, x => channleList.Contains(x.ChannelId)) |
| | | .ToListAsync(); |
| | | var totalRechargeReceipts = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false && x.CreationTime < today).SumAsync(x => x.RechargeAmount); |
| | | if (statistics == null || statistics.Count() == 0) |
| | | { |
| | | TopStatisticsOutput topStatisticsOutput = new TopStatisticsOutput() { }; |
| | |
| | | var entity = await TopStatistics(item.ChannlesNum, today); |
| | | if (channleList.Count() == 0 || channleList.Contains(item.ChannlesNum)) |
| | | { |
| | | topStatisticsOutput.Amount += entity.Amount; |
| | | topStatisticsOutput.AccumulatedReceipts += entity.AccumulatedReceipts; |
| | | topStatisticsOutput.AccumulatedIncome += entity.AccumulatedIncome; |
| | | topStatisticsOutput.ReceiptsYesterday += entity.ReceiptsYesterday; |
| | |
| | | topStatisticsOutput.YesterdayFail += entity.YesterdayFail; |
| | | topStatisticsOutput.AccumulatedUsers += entity.AccumulatedUsers; |
| | | topStatisticsOutput.YesterdayActiveUsers += entity.YesterdayActiveUsers; |
| | | topStatisticsOutput.AccumulatedChannlesRakePrice += entity.AccumulatedChannlesRakePrice; |
| | | } |
| | | } |
| | | |
| | | if (channleList.Count() == 0) |
| | | { |
| | | /// 账户余额 |
| | | var accountBalance = totalRechargeReceipts - await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.PayStatus == LifePayStatusEnum.已支付 |
| | | && (x.ACOOLYStatus == ACOOLYStatusEnum.充值成功 || x.ACOOLYStatus == ACOOLYStatusEnum.已完成 || x.ACOOLYStatus == ACOOLYStatusEnum.部分充值成功)) |
| | | .SumAsync(x => x.PayAmount); |
| | | topStatisticsOutput.Amount = accountBalance ?? 0; |
| | | |
| | | } |
| | | |
| | | return topStatisticsOutput; |
| | | } |
| | | else |
| | | { |
| | | TopStatisticsOutput topStatisticsOutput = new TopStatisticsOutput() |
| | | { |
| | | Amount = statistics.Sum(s => s.Amount), |
| | | AccumulatedReceipts = statistics.Sum(s => s.AccumulatedReceipts), |
| | | AccumulatedIncome = statistics.Sum(s => s.AccumulatedIncome), |
| | | ReceiptsYesterday = statistics.Sum(s => s.ReceiptsYesterday), |
| | |
| | | YesterdayFail = statistics.Sum(s => s.YesterdayFail), |
| | | AccumulatedUsers = statistics.Sum(s => s.AccumulatedUsers), |
| | | YesterdayActiveUsers = statistics.Sum(s => s.YesterdayActiveUsers), |
| | | AccumulatedChannlesRakePrice = statistics.Sum(s => s.AccumulatedChannlesRakePrice) |
| | | }; |
| | | if (channleList.Count() == 0) |
| | | { |
| | | /// 账户余额 |
| | | var accountBalance = totalRechargeReceipts - await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.PayStatus == LifePayStatusEnum.已支付 |
| | | && (x.ACOOLYStatus == ACOOLYStatusEnum.充值成功 || x.ACOOLYStatus == ACOOLYStatusEnum.已完成 || x.ACOOLYStatus == ACOOLYStatusEnum.部分充值成功)) |
| | | .SumAsync(x => x.PayAmount); |
| | | topStatisticsOutput.Amount = accountBalance ?? 0; |
| | | |
| | | } |
| | | return topStatisticsOutput; |
| | | } |
| | | } |
| | |
| | | return channelDataList; |
| | | } |
| | | |
| | | public async Task StatisticsByDate(int days) |
| | | { |
| | | var today = DateTime.Now.Date; |
| | | for (var i = 0; i < days; i++) |
| | | { |
| | | var statistics = await _dallyStatisticsRepository.Where(x => x.CreationTime.Date == today) |
| | | .ToListAsync(); |
| | | |
| | | if (statistics == null || statistics.Count() == 0) |
| | | { |
| | | TopStatisticsOutput topStatisticsOutput = new TopStatisticsOutput() { }; |
| | | var allChannle = await _lifePayChannlesRep.Where(x => x.IsDeleted == false).ToListAsync(); |
| | | foreach (var item in allChannle) |
| | | { |
| | | var entity = await TopStatistics(item.ChannlesNum, today); |
| | | } |
| | | } |
| | | |
| | | today = today.AddDays(-1); |
| | | } |
| | | } |
| | | |
| | | private async Task<DallyStatistics> TopStatistics(string channleId, DateTime today) |
| | | { |
| | | var totalRechargeReceipts = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false && x.CreationTime < today).SumAsync(x => x.RechargeAmount); |
| | | var accountBalance = totalRechargeReceipts - await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.PayStatus == LifePayStatusEnum.已支付 |
| | | && (x.ACOOLYStatus == ACOOLYStatusEnum.充值成功 || x.ACOOLYStatus == ACOOLYStatusEnum.已完成 || x.ACOOLYStatus == ACOOLYStatusEnum.部分充值成功)) |
| | | .WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).SumAsync(x => x.PayAmount); |
| | | /// 累计收款:统计平台账户下订单创建时间在昨天及之前收到的【用户支付成功的金额-退款给用户的金额】; |
| | | var accumulatedReceipts = await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.PayStatus != LifePayStatusEnum.未支付) |
| | | .WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).SumAsync(x => x.PayAmount) - |
| | |
| | | /// 昨日活跃用户 |
| | | var yesterdayActiveUsers = await _lifePayUserRepository.Where(x => x.IsDeleted == false).WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.CreationChannleNum == channleId).Where(x => x.LastLoginTime >= today.AddDays(-1)).CountAsync(); |
| | | |
| | | var accumulatedChannlesRakePrice = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false && x.FinishTime < today) |
| | | .WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).SumAsync(x => x.ChannlesRakePrice); |
| | | |
| | | var entity = new DallyStatistics() |
| | | { |
| | | Id = GuidGenerator.Create(), |
| | | CreationTime = today, |
| | | Amount = accountBalance ?? 0, |
| | | AccumulatedReceipts = accumulatedReceipts ?? 0, |
| | | AccumulatedIncome = accumulatedIncome ?? 0, |
| | | IncomeYesterday = yesterdayIncome ?? 0, |
| | |
| | | AccumulatedUsers = accumulatedUsers, |
| | | YesterdayActiveUsers = yesterdayActiveUsers, |
| | | ChannelId = channleId, |
| | | AccumulatedChannlesRakePrice = accumulatedChannlesRakePrice, |
| | | Date = today.AddDays(-1) |
| | | }; |
| | | await _dallyStatisticsRepository.InsertAsync(entity); |