feat: 商品SKU支持异步保存与软禁用替换策略
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 56s
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 56s
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
using TakeoutSaaS.Domain.Products.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Products.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 商品 SKU 异步保存任务。
|
||||
/// </summary>
|
||||
public sealed class ProductSkuSaveJob : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 所属门店 ID。
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属商品 ID。
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务状态。
|
||||
/// </summary>
|
||||
public ProductSkuSaveJobStatus Status { get; set; } = ProductSkuSaveJobStatus.Queued;
|
||||
|
||||
/// <summary>
|
||||
/// 任务模式(当前固定 replace)。
|
||||
/// </summary>
|
||||
public string Mode { get; set; } = "replace";
|
||||
|
||||
/// <summary>
|
||||
/// 任务请求负载 JSON 快照。
|
||||
/// </summary>
|
||||
public string PayloadJson { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 总处理数。
|
||||
/// </summary>
|
||||
public int ProgressTotal { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 已处理数。
|
||||
/// </summary>
|
||||
public int ProgressProcessed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 失败条数。
|
||||
/// </summary>
|
||||
public int FailedCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 失败摘要。
|
||||
/// </summary>
|
||||
public string? ErrorMessage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hangfire 任务 ID。
|
||||
/// </summary>
|
||||
public string? HangfireJobId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 开始执行时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? StartedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 完成时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? FinishedAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
namespace TakeoutSaaS.Domain.Products.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 商品 SKU 异步保存任务状态。
|
||||
/// </summary>
|
||||
public enum ProductSkuSaveJobStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 已排队。
|
||||
/// </summary>
|
||||
Queued = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 执行中。
|
||||
/// </summary>
|
||||
Running = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 已成功。
|
||||
/// </summary>
|
||||
Succeeded = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 执行失败。
|
||||
/// </summary>
|
||||
Failed = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 已取消。
|
||||
/// </summary>
|
||||
Canceled = 4,
|
||||
}
|
||||
Reference in New Issue
Block a user