feat: 扩展领域模型与配置

This commit is contained in:
贺爱泽
2025-12-01 13:26:05 +08:00
parent a08804658b
commit 5ddad07658
148 changed files with 8519 additions and 2 deletions

View File

@@ -0,0 +1,55 @@
using TakeoutSaaS.Domain.Payments.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Payments.Entities;
/// <summary>
/// 支付流水。
/// </summary>
public sealed class PaymentRecord : MultiTenantEntityBase
{
/// <summary>
/// 关联订单。
/// </summary>
public Guid OrderId { get; set; }
/// <summary>
/// 支付方式。
/// </summary>
public PaymentMethod Method { get; set; } = PaymentMethod.Unknown;
/// <summary>
/// 支付状态。
/// </summary>
public PaymentStatus Status { get; set; } = PaymentStatus.Unpaid;
/// <summary>
/// 支付金额。
/// </summary>
public decimal Amount { get; set; }
/// <summary>
/// 平台交易号。
/// </summary>
public string? TradeNo { get; set; }
/// <summary>
/// 第三方渠道单号。
/// </summary>
public string? ChannelTransactionId { get; set; }
/// <summary>
/// 支付完成时间。
/// </summary>
public DateTime? PaidAt { get; set; }
/// <summary>
/// 错误/备注。
/// </summary>
public string? Remark { get; set; }
/// <summary>
/// 原始回调内容。
/// </summary>
public string? Payload { get; set; }
}

View File

@@ -0,0 +1,50 @@
using TakeoutSaaS.Domain.Payments.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Payments.Entities;
/// <summary>
/// 支付渠道退款流水。
/// </summary>
public sealed class PaymentRefundRecord : MultiTenantEntityBase
{
/// <summary>
/// 原支付记录标识。
/// </summary>
public Guid PaymentRecordId { get; set; }
/// <summary>
/// 关联订单标识。
/// </summary>
public Guid OrderId { get; set; }
/// <summary>
/// 退款金额。
/// </summary>
public decimal Amount { get; set; }
/// <summary>
/// 渠道退款流水号。
/// </summary>
public string? ChannelRefundId { get; set; }
/// <summary>
/// 退款状态。
/// </summary>
public PaymentRefundStatus Status { get; set; } = PaymentRefundStatus.Pending;
/// <summary>
/// 退款请求时间。
/// </summary>
public DateTime RequestedAt { get; set; } = DateTime.UtcNow;
/// <summary>
/// 完成时间。
/// </summary>
public DateTime? CompletedAt { get; set; }
/// <summary>
/// 渠道返回的原始数据 JSON。
/// </summary>
public string? Payload { get; set; }
}

View File

@@ -0,0 +1,14 @@
namespace TakeoutSaaS.Domain.Payments.Enums;
/// <summary>
/// 支付方式。
/// </summary>
public enum PaymentMethod
{
Unknown = 0,
WeChatPay = 1,
Alipay = 2,
Cash = 3,
Card = 4,
Balance = 5
}

View File

@@ -0,0 +1,27 @@
namespace TakeoutSaaS.Domain.Payments.Enums;
/// <summary>
/// 支付退款状态。
/// </summary>
public enum PaymentRefundStatus
{
/// <summary>
/// 已提交至渠道。
/// </summary>
Pending = 0,
/// <summary>
/// 退款成功。
/// </summary>
Succeeded = 1,
/// <summary>
/// 退款失败。
/// </summary>
Failed = 2,
/// <summary>
/// 渠道处理中。
/// </summary>
Processing = 3
}

View File

@@ -0,0 +1,13 @@
namespace TakeoutSaaS.Domain.Payments.Enums;
/// <summary>
/// 支付记录状态。
/// </summary>
public enum PaymentStatus
{
Unpaid = 0,
Paying = 1,
Paid = 2,
Failed = 3,
Refunded = 4
}