From 3e75792e43c92838d994d056af24cfb063211299 Mon Sep 17 00:00:00 2001 From: chenchun Date: Wed, 29 Oct 2025 16:34:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dbug=20-=20=E5=9C=A8?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E6=80=A7=E6=A3=80=E6=9F=A5=E4=B8=AD=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=BF=BD=E7=95=A5=E5=89=A9=E4=BD=99=E4=BB=A4=E7=89=8C?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=EF=BC=8C=E9=81=BF=E5=85=8D=E8=B4=9F=E6=95=B0?= =?UTF-8?q?=E7=94=A8=E9=87=8F=E5=8C=85=E8=A2=AB=E9=94=99=E8=AF=AF=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 PremiumPackageAggregateRoot.IsAvailable 增加参数 isVerifyRemainingToken=true,保持默认行为不变,允许按需跳过对 RemainingTokens 的校验。 - 在 UsageStatisticsService 中计算可用包时改为使用 p.IsAvailable(false),仅过滤过期或禁用的包,但不再因 RemainingTokens 为负而将包排除,从而保证统计(如 TotalTokens/RemainingTokens 汇总)包含负数用量的包,修正统计错误。 修改文件: - Yi.Framework.AiHub.Domain/Entities/PremiumPackageAggregateRoot.cs - Yi.Framework.AiHub.Application/Services/UsageStatisticsService.cs --- .../Services/UsageStatisticsService.cs | 4 ++-- .../Entities/PremiumPackageAggregateRoot.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/UsageStatisticsService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/UsageStatisticsService.cs index f73af213..05d6eaeb 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/UsageStatisticsService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/UsageStatisticsService.cs @@ -125,9 +125,9 @@ public class UsageStatisticsService : ApplicationService, IUsageStatisticsServic if (premiumPackages.Any()) { - // 过滤掉已过期的包 + // 过滤掉已过期、禁用的包,不过滤用量负数的包 var validPackages = premiumPackages - .Where(p => p.IsAvailable()) + .Where(p => p.IsAvailable(false)) .ToList(); result.PremiumTotalTokens = validPackages.Sum(x => x.TotalTokens); diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/PremiumPackageAggregateRoot.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/PremiumPackageAggregateRoot.cs index 1665cdfd..e0310005 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/PremiumPackageAggregateRoot.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/PremiumPackageAggregateRoot.cs @@ -86,14 +86,14 @@ public class PremiumPackageAggregateRoot : FullAuditedAggregateRoot /// 检查是否可用 /// /// 是否可用 - public bool IsAvailable() + public bool IsAvailable(bool isVerifyRemainingToken=true) { if (!IsActive) { return false; } - if (RemainingTokens <= 0) + if (isVerifyRemainingToken&&RemainingTokens <= 0) { return false; }