feat: 新增VIP过期自动卸载功能

- 新增`AiRechargeManager`类,实现VIP过期用户的自动卸载逻辑。
- 新增`AiHubConst`常量类,统一管理角色名称。
- 在`IRoleService`中添加`RemoveUserRoleByRoleCodeAsync`方法,用于移除指定用户的角色。
- 在`RoleManager`中实现`RemoveUserRoleByRoleCodeAsync`方法。
- 优化`CurrentExtensions`中VIP角色判断逻辑,使用常量替代硬编码。
- 调整`YiAbpWebModule`中部分代码格式,提升可读性。
This commit is contained in:
ccnetcore
2025-08-09 13:14:15 +08:00
parent f3c67cf598
commit e6e4829164
9 changed files with 158 additions and 19 deletions

View File

@@ -0,0 +1,31 @@
using Microsoft.Extensions.Logging;
using SqlSugar;
using Volo.Abp.BackgroundWorkers.Hangfire;
using Yi.Framework.AiHub.Domain.Entities;
using Yi.Framework.AiHub.Domain.Entities.OpenApi;
using Yi.Framework.AiHub.Domain.Managers;
using Yi.Framework.Rbac.Domain.Entities;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Abp.Web.Jobs.ai_hub;
/// <summary>
/// VIP过期自动卸载任务
/// </summary>
public class VipExpireJob : HangfireBackgroundWorkerBase
{
private readonly AiRechargeManager _aiRechargeManager;
public VipExpireJob(AiRechargeManager aiRechargeManager)
{
_aiRechargeManager = aiRechargeManager;
RecurringJobId = "VIP过期自动卸载";
// 每天凌晨0点执行一次
CronExpression = "0 0 0 * * ?";
}
public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken())
{
await _aiRechargeManager.RemoveVipRoleByExpireAsync();
}
}