feat: 扩展领域模型与配置
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace TakeoutSaaS.Domain.Payments.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 支付记录状态。
|
||||
/// </summary>
|
||||
public enum PaymentStatus
|
||||
{
|
||||
Unpaid = 0,
|
||||
Paying = 1,
|
||||
Paid = 2,
|
||||
Failed = 3,
|
||||
Refunded = 4
|
||||
}
|
||||
Reference in New Issue
Block a user