From dbf044662b9a75e5b42f8f76c65faaf89c95bb21 Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期三, 02 四月 2025 19:36:48 +0800 Subject: [PATCH] fix:bug修复 --- LifePayment/LifePayment.Application/LifePay/StatisticsService.cs | 29 +++++++++++++++++------------ 1 files changed, 17 insertions(+), 12 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs index 01e43a9..c526c4b 100644 --- a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs +++ b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs @@ -20,6 +20,7 @@ using ZeroD.Util; using NPOI.SS.Formula.Functions; using System.Security.Principal; +using StackExchange.Redis; namespace LifePayment.Application.LifePay { @@ -85,11 +86,9 @@ if (channleList.Count() == 0) { /// 璐︽埛浣欓 - var accountBalance = totalRechargeReceipts - await _lifePayOrderRepository.Where(x => x.PayStatus == LifePayStatusEnum.宸叉敮浠� - && (x.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�兼垚鍔� || x.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || x.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�)) + var accountBalance = totalRechargeReceipts - await _lifePayOrderRepository.Where(x => x.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�兼垚鍔� || x.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || x.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�) .SumAsync(x => x.PlatformDeductionAmount); topStatisticsOutput.Amount = accountBalance ?? 0; - } return topStatisticsOutput; @@ -112,8 +111,7 @@ if (channleList.Count() == 0) { /// 璐︽埛浣欓 - var accountBalance = totalRechargeReceipts - await _lifePayOrderRepository.Where(x => x.PayStatus == LifePayStatusEnum.宸叉敮浠� - && (x.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�兼垚鍔� || x.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || x.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�)) + var accountBalance = totalRechargeReceipts - await _lifePayOrderRepository.Where(x => x.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�兼垚鍔� || x.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || x.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�) .SumAsync(x => x.PlatformDeductionAmount); topStatisticsOutput.Amount = accountBalance ?? 0; } @@ -202,8 +200,10 @@ { var statistics = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false) - .WhereIf(channleList.Count() > 0, x => channleList.Contains(x.ChannelId)) - .ToListAsync(); + .WhereIf(channleList != null && channleList.Count() > 0, x => channleList.Contains(x.ChannelId)) + .ToListAsync(); + + CheckExtensions.IfTrueThrowUserFriendlyException(statistics == null, "缁熻澶辫触"); var groupedStatistics = statistics .GroupBy(x => x.ChannelId) .Select(g => new @@ -221,7 +221,7 @@ { ChannelDataReceive receive = new ChannelDataReceive() { - ChannelName = _lifePayChannlesRep.Where(x => x.ChannlesNum == item.ChannelId).FirstOrDefault().ChannlesName, + ChannelName = _lifePayChannlesRep.Where(x => x.ChannlesNum == item.ChannelId).FirstOrDefault()?.ChannlesName, ReceivePrice = item.ReceivePrice, ChannlesRakePrice = item.ChannlesRakePrice, }; @@ -247,7 +247,7 @@ { ChannelDataUserNumber usernumber = new ChannelDataUserNumber() { - ChannelName = _lifePayChannlesRep.Where(x => x.ChannlesNum == item.ChannelId).FirstOrDefault().ChannlesName, + ChannelName = _lifePayChannlesRep.Where(x => x.ChannlesNum == item.ChannelId).FirstOrDefault()?.ChannlesName, Number = item.Number, }; if (channelDataList.UserNumberList.Count() < 5) @@ -313,10 +313,15 @@ var yesterdayFail = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.宸查��娆�) .WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).CountAsync(); /// 绱鐢ㄦ埛 - var accumulatedUsers = await _lifePayUserRepository.Where(x => x.IsDeleted == false).WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.CreationChannleNum == channleId).CountAsync(); + var accumulatedUsers = await _lifePayUserRepository.Where(x => x.IsDeleted == false && x.CreationTime < today) + .WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.CreationChannleNum == channleId).CountAsync(); /// 鏄ㄦ棩娲昏穬鐢ㄦ埛 - var yesterdayActiveUsers = await _lifePayUserRepository.Where(x => x.IsDeleted == false).WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.CreationChannleNum == channleId).Where(x => x.LastLoginTime >= today.AddDays(-1) && x.LastLoginTime < today).CountAsync(); - + 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.閮ㄥ垎鍏呭�兼垚鍔�) + select b).Distinct().CountAsync(); + /// 绱浣i噾 var accumulatedChannlesRakePrice = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false && x.FinishTime < today) .WhereIf(!string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).SumAsync(x => x.ChannlesRakePrice); -- Gitblit v1.9.1