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