|  |  | 
 |  |  |             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); |