Revert "refactor: 清理租户API旧模块代码"

This reverts commit 992930a821.
This commit is contained in:
2026-02-17 12:12:01 +08:00
parent 654b1ae3f7
commit c032608a57
910 changed files with 189923 additions and 266 deletions

View File

@@ -0,0 +1,12 @@
namespace TakeoutSaaS.Application.Messaging.Abstractions;
/// <summary>
/// 领域事件发布抽象。
/// </summary>
public interface IEventPublisher
{
/// <summary>
/// 发布领域事件。
/// </summary>
Task PublishAsync<TEvent>(string routingKey, TEvent @event, CancellationToken cancellationToken = default);
}

View File

@@ -0,0 +1,17 @@
namespace TakeoutSaaS.Application.Messaging;
/// <summary>
/// 事件路由键常量。
/// </summary>
public static class EventRoutingKeys
{
/// <summary>
/// 订单创建事件路由键。
/// </summary>
public const string OrderCreated = "orders.created";
/// <summary>
/// 支付成功事件路由键。
/// </summary>
public const string PaymentSucceeded = "payments.succeeded";
}

View File

@@ -0,0 +1,32 @@
namespace TakeoutSaaS.Application.Messaging.Events;
/// <summary>
/// 订单创建事件。
/// </summary>
public sealed class OrderCreatedEvent
{
/// <summary>
/// 订单标识。
/// </summary>
public long OrderId { get; init; }
/// <summary>
/// 订单编号。
/// </summary>
public string OrderNo { get; init; } = string.Empty;
/// <summary>
/// 实付金额。
/// </summary>
public decimal Amount { get; init; }
/// <summary>
/// 所属租户。
/// </summary>
public long TenantId { get; init; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAt { get; init; }
}

View File

@@ -0,0 +1,32 @@
namespace TakeoutSaaS.Application.Messaging.Events;
/// <summary>
/// 支付成功事件。
/// </summary>
public sealed class PaymentSucceededEvent
{
/// <summary>
/// 订单标识。
/// </summary>
public long OrderId { get; init; }
/// <summary>
/// 支付流水号。
/// </summary>
public string PaymentNo { get; init; } = string.Empty;
/// <summary>
/// 支付金额。
/// </summary>
public decimal Amount { get; init; }
/// <summary>
/// 所属租户。
/// </summary>
public long TenantId { get; init; }
/// <summary>
/// 支付时间UTC
/// </summary>
public DateTime PaidAt { get; init; }
}

View File

@@ -0,0 +1,20 @@
using Microsoft.Extensions.DependencyInjection;
using TakeoutSaaS.Application.Messaging.Abstractions;
using TakeoutSaaS.Application.Messaging.Services;
namespace TakeoutSaaS.Application.Messaging.Extensions;
/// <summary>
/// 消息模块应用层注册。
/// </summary>
public static class MessagingServiceCollectionExtensions
{
/// <summary>
/// 注册事件发布器。
/// </summary>
public static IServiceCollection AddMessagingApplication(this IServiceCollection services)
{
services.AddScoped<IEventPublisher, EventPublisher>();
return services;
}
}

View File

@@ -0,0 +1,14 @@
using TakeoutSaaS.Application.Messaging.Abstractions;
using TakeoutSaaS.Module.Messaging.Abstractions;
namespace TakeoutSaaS.Application.Messaging.Services;
/// <summary>
/// 事件发布适配器,封装应用层到 MQ 的发布。
/// </summary>
public sealed class EventPublisher(IMessagePublisher messagePublisher) : IEventPublisher
{
/// <inheritdoc />
public Task PublishAsync<TEvent>(string routingKey, TEvent @event, CancellationToken cancellationToken = default)
=> messagePublisher.PublishAsync(routingKey, @event, cancellationToken);
}