- 新增 AdminRolesController 实现角色 CRUD 和权限管理 - 新增 BillingsController 实现账单查询功能 - 新增 SubscriptionsController 实现订阅管理功能 - 新增 TenantPackagesController 实现套餐管理功能 - 新增租户详情、配额使用、账单列表等查询功能 - 新增 TenantPackage、TenantSubscription 等领域实体 - 新增相关枚举:SubscriptionStatus、TenantPackageType 等 - 更新 appsettings 配置文件 - 更新权限授权策略提供者 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using MediatR;
|
|
using TakeoutSaaS.Application.App.TenantPackages.Commands;
|
|
using TakeoutSaaS.Domain.Tenants.Repositories;
|
|
|
|
namespace TakeoutSaaS.Application.App.TenantPackages.Handlers;
|
|
|
|
/// <summary>
|
|
/// 删除租户套餐命令处理器(软删除)。
|
|
/// </summary>
|
|
public sealed class DeleteTenantPackageCommandHandler(ITenantPackageRepository tenantPackageRepository)
|
|
: IRequestHandler<DeleteTenantPackageCommand, bool>
|
|
{
|
|
/// <inheritdoc />
|
|
public async Task<bool> Handle(
|
|
DeleteTenantPackageCommand request,
|
|
CancellationToken cancellationToken)
|
|
{
|
|
// 1. 查询套餐(带跟踪用于更新)
|
|
var package = await tenantPackageRepository.GetByIdForUpdateAsync(request.TenantPackageId, cancellationToken);
|
|
|
|
// 2. 如果不存在,返回 false
|
|
if (package is null)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
// 3. 软删除
|
|
await tenantPackageRepository.SoftDeleteAsync(package, cancellationToken);
|
|
|
|
// 4. 保存变更
|
|
await tenantPackageRepository.SaveChangesAsync(cancellationToken);
|
|
|
|
// 5. 返回成功
|
|
return true;
|
|
}
|
|
}
|