refactor: 移除AiHub Domain层对Application.Contracts的循环依赖
移除Yi.Framework.AiHub.Domain项目中对Yi.Framework.AiHub.Application.Contracts的项目引用,解决领域层和应用层之间的循环依赖问题,符合DDD架构分层原则。
This commit is contained in:
@@ -9,7 +9,6 @@ using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
using Volo.Abp.Domain.Services;
|
||||
using Yi.Framework.AiHub.Application.Contracts.Dtos;
|
||||
using Yi.Framework.AiHub.Domain.AiGateWay;
|
||||
using Yi.Framework.AiHub.Domain.AiGateWay.Exceptions;
|
||||
using Yi.Framework.AiHub.Domain.Entities.Model;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Volo.Abp.Domain.Services;
|
||||
using Volo.Abp.Users;
|
||||
using Yi.Framework.AiHub.Application.Contracts.Dtos;
|
||||
using Yi.Framework.AiHub.Domain.Entities;
|
||||
using Yi.Framework.AiHub.Domain.Entities.Chat;
|
||||
using Yi.Framework.AiHub.Domain.Shared.Dtos;
|
||||
using Yi.Framework.SqlSugarCore.Abstractions;
|
||||
|
||||
namespace Yi.Framework.AiHub.Domain.Managers;
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
using Volo.Abp.Domain.Services;
|
||||
using Yi.Framework.AiHub.Domain.Entities;
|
||||
using Yi.Framework.AiHub.Domain.Entities.OpenApi;
|
||||
using Yi.Framework.AiHub.Domain.Shared.Consts;
|
||||
using Yi.Framework.Rbac.Application.Contracts.IServices;
|
||||
using Yi.Framework.SqlSugarCore.Abstractions;
|
||||
|
||||
namespace Yi.Framework.AiHub.Domain.Managers;
|
||||
@@ -11,21 +9,18 @@ namespace Yi.Framework.AiHub.Domain.Managers;
|
||||
public class AiRechargeManager : DomainService
|
||||
{
|
||||
private readonly ISqlSugarRepository<AiRechargeAggregateRoot> _rechargeRepository;
|
||||
private readonly IRoleService _roleService;
|
||||
private readonly ISqlSugarRepository<TokenAggregateRoot> _tokenRepository;
|
||||
private readonly ILogger<AiRechargeManager> _logger;
|
||||
|
||||
public AiRechargeManager(ISqlSugarRepository<AiRechargeAggregateRoot> rechargeRepository,
|
||||
ISqlSugarRepository<TokenAggregateRoot> tokenRepository, ILogger<AiRechargeManager> logger,
|
||||
IRoleService roleService)
|
||||
ISqlSugarRepository<TokenAggregateRoot> tokenRepository, ILogger<AiRechargeManager> logger)
|
||||
{
|
||||
_rechargeRepository = rechargeRepository;
|
||||
_tokenRepository = tokenRepository;
|
||||
_logger = logger;
|
||||
_roleService = roleService;
|
||||
}
|
||||
|
||||
public async Task RemoveVipRoleByExpireAsync()
|
||||
public async Task<List<Guid>?> RemoveVipByExpireAsync()
|
||||
{
|
||||
_logger.LogInformation("开始执行VIP过期自动卸载任务");
|
||||
|
||||
@@ -39,7 +34,7 @@ public class AiRechargeManager : DomainService
|
||||
if (!allRecharges.Any())
|
||||
{
|
||||
_logger.LogInformation("没有找到任何充值记录");
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
// 按用户分组,找出真正过期的用户
|
||||
@@ -63,18 +58,18 @@ public class AiRechargeManager : DomainService
|
||||
if (!expiredUserIds.Any())
|
||||
{
|
||||
_logger.LogInformation("没有找到过期的VIP用户");
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
_logger.LogInformation($"找到 {expiredUserIds.Count} 个过期的VIP用户");
|
||||
|
||||
// 获取YiXinAi-Vip角色ID
|
||||
await _roleService.RemoveUserRoleByRoleCodeAsync(expiredUserIds, AiHubConst.VipRole);
|
||||
|
||||
// 删除过期用户的Token密钥
|
||||
var removedTokenCount = await _tokenRepository.DeleteAsync(x => expiredUserIds.Contains(x.UserId));
|
||||
|
||||
_logger.LogInformation($"成功删除 {removedTokenCount} 个用户的Token密钥");
|
||||
_logger.LogInformation($"VIP过期自动卸载任务执行完成,共处理 {expiredUserIds.Count} 个过期用户");
|
||||
|
||||
return expiredUserIds;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user