| | |
| | | |
| | | public async Task<ChannelDataListOutPut> GetChannelDataList(List<string> channleList) |
| | | { |
| | | var today = DateTime.Now.Date; |
| | | int maxStatisticsNumber = 5; |
| | | /// 这里不加入.Where()会报错 |
| | | var statistics = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false) |
| | | .WhereIf(channleList.Count() > 0, x => channleList.Contains(x.ChannelId)) |
| | | .ToListAsync(); |
| | | var statistics = await _lifePayChannlesRakeRepository |
| | | .Where(x => x.IsDeleted == false && x.CreationTime < today) |
| | | .WhereIf(channleList.Count() > 0, x => channleList.Contains(x.ChannelId)) |
| | | .ToListAsync(); |
| | | |
| | | var lifepayOrderBaseList = await _lifePayOrderRepository |
| | | .Where(x => x.CreationTime < today && x.PayStatus != LifePayStatusEnum.未支付) |
| | | .WhereIf(channleList.Count() > 0, x => channleList.Contains(x.ChannelId)) |
| | | .ToListAsync(); |
| | | |
| | | CheckExtensions.IfTrueThrowUserFriendlyException(statistics == null, "渠道收款统计失败"); |
| | | var groupedStatistics = statistics |
| | | .GroupBy(x => x.ChannelId) |
| | | .Select(g => new |
| | | .Select(g => |
| | | { |
| | | ChannelId = g.Key, |
| | | ReceivePrice = g.Sum(x => x.PayAmount), |
| | | ChannlesRakePrice = g.Sum(x => x.ChannlesRakePrice), |
| | | /// 累计收款:统计平台账户下订单创建时间在昨天及之前收到的【用户支付成功的金额-退款给用户的金额】; |
| | | var accumulatedReceipts = |
| | | lifepayOrderBaseList |
| | | .Where(x => x.ChannelId == g.Key) |
| | | .Sum(x => x.PayAmount) |
| | | - |
| | | lifepayOrderBaseList |
| | | .Where(x => x.ChannelId == g.Key && x.LifePayRefundStatus == LifePayRefundStatusEnum.已退款) |
| | | .Sum(x => (x.RefundPrice ?? 0)); |
| | | return new |
| | | { |
| | | ChannelId = g.Key, |
| | | ReceivePrice = accumulatedReceipts ?? 0, |
| | | ChannlesRakePrice = g.Sum(x => x.ChannlesRakePrice), |
| | | }; |
| | | }) |
| | | .OrderByDescending(o => o.ReceivePrice) |
| | | .ToList(); |
| | |
| | | } |
| | | |
| | | /// 累计用户 |
| | | var users = await _lifePayUserRepository.Where(x => x.IsDeleted == false).WhereIf(channleList.Count() > 0, x => channleList.Contains(x.CreationChannleNum)) |
| | | var users = await _lifePayUserRepository.Where(x => x.IsDeleted == false && x.CreationTime < today).WhereIf(channleList.Count() > 0, x => channleList.Contains(x.CreationChannleNum)) |
| | | .ToListAsync(); |
| | | CheckExtensions.IfTrueThrowUserFriendlyException(statistics == null, "累计用户统计失败"); |
| | | var groupedUsers = users |
| | |
| | | |
| | | private async Task<DallyStatistics> TopStatistics(string channleId, DateTime today) |
| | | { |
| | | var lifepayOrderBaseList = await _lifePayOrderRepository.Where(x => x.CreationTime < today) |
| | | var lifepayOrderBaseList = await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.PayStatus != LifePayStatusEnum.未支付) |
| | | .WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).ToListAsync(); |
| | | |
| | | /// 累计收款:统计平台账户下订单创建时间在昨天及之前收到的【用户支付成功的金额-退款给用户的金额】; |
| | |
| | | /// 昨日活跃用户 |
| | | var yesterdayActiveUsers = await (from a in _lifePayUserRepository |
| | | join b in _lifePayOrderRepository on a.Id equals b.UserId |
| | | where b.CreationTime >= today.AddDays(-1) && b.CreationTime < today |
| | | && (b.ACOOLYStatus == ACOOLYStatusEnum.充值中 || b.ACOOLYStatus == ACOOLYStatusEnum.充值成功 || b.ACOOLYStatus == ACOOLYStatusEnum.已完成 || b.ACOOLYStatus == ACOOLYStatusEnum.部分充值成功) |
| | | where |
| | | b.CreationTime >= today.AddDays(-1) |
| | | && b.CreationTime < today |
| | | && (channleId == null || channleId == "" || a.CreationChannleNum == channleId) |
| | | && (b.ACOOLYStatus == ACOOLYStatusEnum.充值成功 |
| | | || b.ACOOLYStatus == ACOOLYStatusEnum.已完成 |
| | | || b.ACOOLYStatus == ACOOLYStatusEnum.部分充值成功) |
| | | select b).Distinct().CountAsync(); |
| | | /// 累计佣金 |
| | | var accumulatedChannlesRakePrice = await _lifePayChannlesRakeRepository.Where(x => x.FinishTime < today) |