| | |
| | | |
| | | 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(); |
| | | |
| | | /// 累计收款:统计平台账户下订单创建时间在昨天及之前收到的【用户支付成功的金额-退款给用户的金额】; |