From 7a540f529d2c9a541993bc9818cad9c9093fec91 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 03 十二月 2025 11:04:35 +0800
Subject: [PATCH] fix: bug
---
LifePayment/LifePayment.Application/LifePay/StatisticsService.cs | 47 ++++++++++++++++++++++++++++++++++++-----------
1 files changed, 36 insertions(+), 11 deletions(-)
diff --git a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
index 17ab4c9..24dd202 100644
--- a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
@@ -205,19 +205,39 @@
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();
@@ -239,7 +259,7 @@
}
/// 绱鐢ㄦ埛
- 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
@@ -293,7 +313,7 @@
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();
/// 绱鏀舵锛氱粺璁″钩鍙拌处鎴蜂笅璁㈠崟鍒涘缓鏃堕棿鍦ㄦ槰澶╁強涔嬪墠鏀跺埌鐨勩�愮敤鎴锋敮浠樻垚鍔熺殑閲戦-閫�娆剧粰鐢ㄦ埛鐨勯噾棰濄�戯紱
@@ -327,8 +347,13 @@
/// 鏄ㄦ棩娲昏穬鐢ㄦ埛
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();
/// 绱浣i噾
var accumulatedChannlesRakePrice = await _lifePayChannlesRakeRepository.Where(x => x.FinishTime < today)
--
Gitblit v1.9.1