feat(saas): implement marketplace and tenant onboarding

This commit is contained in:
2026-07-29 13:58:59 +08:00
parent 76606029e2
commit 6db200a2fc
145 changed files with 16862 additions and 94529 deletions

View File

@@ -3,25 +3,49 @@ using Tiku.Application.Commerce;
namespace Tiku.Api.Contracts;
/// <summary>
/// 创建交易订单请求 DTO。
/// </summary>
public sealed class CreateCommerceOrderDto
{
/// <summary>
/// 套餐 ID。
/// </summary>
[Required]
public Guid PlanId { get; set; }
/// <summary>
/// 数量。
/// </summary>
[Range(1, 99)]
public int Quantity { get; set; } = 1;
/// <summary>
/// 支付方式。
/// </summary>
[StringLength(50)]
public string? PayMethod { get; set; }
/// <summary>
/// 支付渠道。
/// </summary>
[StringLength(50)]
public string? PayProvider { get; set; }
/// <summary>
/// 地区 ID。
/// </summary>
public Guid? RegionId { get; set; }
/// <summary>
/// 优惠券码。
/// </summary>
[StringLength(100)]
public string? CouponCode { get; set; }
/// <summary>
/// 优惠券领取记录 ID。
/// </summary>
public Guid? CouponRedemptionId { get; set; }
public CreateCommerceOrderCommand ToCommand()
@@ -37,35 +61,65 @@ public sealed class CreateCommerceOrderDto
}
}
/// <summary>
/// 交易订单查询参数。
/// </summary>
public sealed class CommerceOrderQueryDto
{
/// <summary>
/// 返回数量上限。
/// </summary>
[Range(1, 100)]
public int? Limit { get; set; }
/// <summary>
/// 状态。
/// </summary>
[StringLength(32)]
public string? Status { get; set; }
}
/// <summary>
/// 创建交易支付请求 DTO。
/// </summary>
public sealed class CreateCommercePaymentDto
{
/// <summary>
/// 订单号。
/// </summary>
[Required]
[StringLength(100)]
public string OrderNo { get; set; } = string.Empty;
/// <summary>
/// 服务提供方。
/// </summary>
[Required]
[StringLength(50)]
public string Provider { get; set; } = string.Empty;
/// <summary>
/// 方式。
/// </summary>
[Required]
[StringLength(50)]
public string Method { get; set; } = string.Empty;
/// <summary>
/// 微信或支付渠道 openid。
/// </summary>
[StringLength(255)]
public string? OpenId { get; set; }
/// <summary>
/// 支付完成返回地址。
/// </summary>
[StringLength(2048)]
public string? ReturnUrl { get; set; }
/// <summary>
/// 支付取消返回地址。
/// </summary>
[StringLength(2048)]
public string? QuitUrl { get; set; }
@@ -81,11 +135,20 @@ public sealed class CreateCommercePaymentDto
}
}
/// <summary>
/// 交易优惠券查询参数。
/// </summary>
public sealed class CommerceCouponQueryDto
{
/// <summary>
/// 返回数量上限。
/// </summary>
[Range(1, 100)]
public int? Limit { get; set; }
/// <summary>
/// 状态。
/// </summary>
[StringLength(32)]
public string? Status { get; set; }
@@ -95,8 +158,14 @@ public sealed class CommerceCouponQueryDto
}
}
/// <summary>
/// 领取交易优惠券请求 DTO。
/// </summary>
public sealed class ClaimCommerceCouponDto
{
/// <summary>
/// 优惠券码。
/// </summary>
[Required]
[StringLength(100)]
public string CouponCode { get; set; } = string.Empty;
@@ -107,19 +176,37 @@ public sealed class ClaimCommerceCouponDto
}
}
/// <summary>
/// 校验交易优惠券请求 DTO。
/// </summary>
public sealed class CheckCommerceCouponDto
{
/// <summary>
/// 优惠券码。
/// </summary>
[StringLength(100)]
public string? CouponCode { get; set; }
/// <summary>
/// 优惠券领取记录 ID。
/// </summary>
public Guid? CouponRedemptionId { get; set; }
/// <summary>
/// 套餐 ID。
/// </summary>
[Required]
public Guid PlanId { get; set; }
/// <summary>
/// 数量。
/// </summary>
[Range(1, 99)]
public int Quantity { get; set; } = 1;
/// <summary>
/// 地区 ID。
/// </summary>
public Guid? RegionId { get; set; }
public CheckCommerceCouponCommand ToCommand()