diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/PayService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/PayService.cs index f40a46c3..ed51b356 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/PayService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/PayService.cs @@ -122,10 +122,13 @@ public class PayService : ApplicationService, IPayService // 5. 根据商品类型进行不同的处理 if (order.GoodsType.IsPremiumPackage()) { + var tokenAmount = order.GoodsType.GetTokenAmount(); + var packageName = order.GoodsType.GetDisplayName(); // 处理尊享包商品:创建尊享包记录 await _premiumPackageManager.CreatePremiumPackageAsync( order.UserId, - order.GoodsType, + tokenAmount, + packageName, order.TotalAmount, expireMonths: null // 尊享包不设置过期时间,或者可以根据需求设置 ); 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 990d07c6..d1f8d392 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 @@ -14,6 +14,7 @@ public class PremiumPackageManager : DomainService private readonly ISqlSugarRepository _premiumPackageRepository; private readonly ILogger _logger; private readonly ISqlSugarRepository _rechargeRepository; + public PremiumPackageManager( ISqlSugarRepository premiumPackageRepository, ILogger logger, ISqlSugarRepository rechargeRepository) @@ -27,24 +28,20 @@ public class PremiumPackageManager : DomainService /// 为用户创建尊享包 /// /// 用户ID - /// 商品类型 + /// /// 支付金额 /// 过期月数,0或null表示永久 + /// + /// 是否创建订单,如果只购买尊享包,才需要单独创建订单,如果和会员组合一起购买,只需要创建会员套餐订单即可 /// public async Task CreatePremiumPackageAsync( Guid userId, - GoodsTypeEnum goodsType, + long tokenAmount, + string packageName, decimal totalAmount, - int? expireMonths = null) + int? expireMonths = null, + bool isCreateRechargeRecord = true) { - if (!goodsType.IsPremiumPackage()) - { - throw new UserFriendlyException($"商品类型 {goodsType} 不是尊享包商品"); - } - - var tokenAmount = goodsType.GetTokenAmount(); - var packageName = goodsType.GetDisplayName(); - var premiumPackage = new PremiumPackageAggregateRoot(userId, tokenAmount, packageName) { PurchaseAmount = totalAmount @@ -58,21 +55,25 @@ public class PremiumPackageManager : DomainService await _premiumPackageRepository.InsertAsync(premiumPackage); - // 创建充值记录 - var rechargeRecord = new AiRechargeAggregateRoot + if (isCreateRechargeRecord) { - UserId = userId, - RechargeAmount = totalAmount, - Content = packageName, - ExpireDateTime = premiumPackage.ExpireDateTime, - Remark = "自助充值", - ContactInfo = null, - RechargeType = RechargeTypeEnum.PremiumPackage - }; + // 创建充值记录 + var rechargeRecord = new AiRechargeAggregateRoot + { + UserId = userId, + RechargeAmount = totalAmount, + Content = packageName, + ExpireDateTime = premiumPackage.ExpireDateTime, + Remark = "自助充值", + ContactInfo = null, + RechargeType = RechargeTypeEnum.PremiumPackage + }; + + // 保存充值记录到数据库 + await _rechargeRepository.InsertAsync(rechargeRecord); + } + - // 保存充值记录到数据库 - await _rechargeRepository.InsertAsync(rechargeRecord); - _logger.LogInformation( $"用户 {userId} 购买尊享包成功: {packageName}, Token数量: {tokenAmount}, 金额: {totalAmount}");