From cdbfc5383d6473218d2deddd2dcf2e4a91b69aa6 Mon Sep 17 00:00:00 2001 From: chenchun Date: Mon, 20 Oct 2025 10:18:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=E5=85=85=E5=80=BC=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=B9=B6=E5=8C=BA=E5=88=86VIP=E4=B8=8E?= =?UTF-8?q?=E5=A5=97=E9=A4=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/RechargeService.cs | 5 ++++- .../Enums/RechargeTypeEnum.cs | 7 +++++++ .../Entities/AiRechargeAggregateRoot.cs | 10 ++++++++-- .../Managers/AiRechargeManager.cs | 5 +++-- .../Managers/PremiumPackageManager.cs | 3 ++- 5 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Enums/RechargeTypeEnum.cs diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/RechargeService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/RechargeService.cs index 082a9093..2894b909 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/RechargeService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/RechargeService.cs @@ -8,6 +8,7 @@ using Yi.Framework.AiHub.Application.Contracts.IServices; using Yi.Framework.AiHub.Domain.Entities; using Yi.Framework.AiHub.Domain.Managers; using Yi.Framework.AiHub.Domain.Shared.Consts; +using Yi.Framework.AiHub.Domain.Shared.Enums; using Yi.Framework.Rbac.Application.Contracts.IServices; using Yi.Framework.SqlSugarCore.Abstractions; @@ -64,6 +65,7 @@ namespace Yi.Framework.AiHub.Application.Services { // 直接查询该用户最大的过期时间 var maxExpireTime = await _repository._DbQueryable + .Where(x => x.RechargeType == RechargeTypeEnum.Vip) .Where(x => x.UserId == input.UserId && x.ExpireDateTime.HasValue) .MaxAsync(x => x.ExpireDateTime); @@ -85,7 +87,8 @@ namespace Yi.Framework.AiHub.Application.Services Content = input.Content, ExpireDateTime = expireDateTime, Remark = input.Remark, - ContactInfo = input.ContactInfo + ContactInfo = input.ContactInfo, + RechargeType = RechargeTypeEnum.Vip }; // 保存充值记录到数据库 diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Enums/RechargeTypeEnum.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Enums/RechargeTypeEnum.cs new file mode 100644 index 00000000..7315ec14 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Enums/RechargeTypeEnum.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.AiHub.Domain.Shared.Enums; + +public enum RechargeTypeEnum +{ + Vip = 10, + PremiumPackage = 20 +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AiRechargeAggregateRoot.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AiRechargeAggregateRoot.cs index 0a586d39..2cceca42 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AiRechargeAggregateRoot.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AiRechargeAggregateRoot.cs @@ -1,5 +1,6 @@ using SqlSugar; using Volo.Abp.Domain.Entities.Auditing; +using Yi.Framework.AiHub.Domain.Shared.Enums; namespace Yi.Framework.AiHub.Domain.Entities; @@ -13,7 +14,7 @@ public class AiRechargeAggregateRoot : FullAuditedAggregateRoot /// 充值金额 /// public decimal RechargeAmount { get; set; } - + /// /// 用户 /// @@ -33,9 +34,14 @@ public class AiRechargeAggregateRoot : FullAuditedAggregateRoot /// 到期时间 /// public DateTime? ExpireDateTime { get; set; } - + /// /// 联系方式 /// public string? ContactInfo { get; set; } + + /// + /// 订单类型 + /// + public RechargeTypeEnum RechargeType { get; set; } } \ No newline at end of file diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiRechargeManager.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiRechargeManager.cs index f29d82e9..2ee508ac 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiRechargeManager.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiRechargeManager.cs @@ -2,6 +2,7 @@ using Volo.Abp.Domain.Services; using Yi.Framework.AiHub.Domain.Entities; using Yi.Framework.AiHub.Domain.Entities.OpenApi; +using Yi.Framework.AiHub.Domain.Shared.Enums; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.AiHub.Domain.Managers; @@ -28,7 +29,7 @@ public class AiRechargeManager : DomainService var currentTime = DateTime.Now; // 查找所有充值记录,按用户分组 - var allRecharges = await _rechargeRepository._DbQueryable + var allRecharges = await _rechargeRepository._DbQueryable.Where(x => x.RechargeType == RechargeTypeEnum.Vip) .ToListAsync(); if (!allRecharges.Any()) @@ -48,7 +49,7 @@ public class AiRechargeManager : DomainService // 找到用户最大的过期时间 var maxExpireTime = group.Max(x => x.ExpireDateTime); - + // 如果最大过期时间小于当前时间,说明用户已过期(比较日期,满足用户最后一天) return maxExpireTime.HasValue && maxExpireTime.Value.Date < currentTime.Date; }) diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/PremiumPackageManager.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/PremiumPackageManager.cs index c588faa9..990d07c6 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/PremiumPackageManager.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/PremiumPackageManager.cs @@ -66,7 +66,8 @@ public class PremiumPackageManager : DomainService Content = packageName, ExpireDateTime = premiumPackage.ExpireDateTime, Remark = "自助充值", - ContactInfo = null + ContactInfo = null, + RechargeType = RechargeTypeEnum.PremiumPackage }; // 保存充值记录到数据库