Files
QYZH.InteractiveMagazine/QYZH.InteractiveMagazine.Models/Dto/Compensation/CompensationTaskDto.cs
glz 78b686f9e5 refactor: 批量新增枚举类型并完成实体、DTO、服务层枚举替换
- 新增30+业务枚举类型覆盖用户、宠物、商城、社区、积分等模块
- 完成实体类、DTO、服务层的字符串枚举替换为强类型枚举
- 修复用户状态枚举名称变更,将Frozen改为Disabled
- 新增批量发布社区消息接口与控制器实现
- 新增操作日志、积分管理、补偿任务相关服务与DTO
2026-06-08 16:57:44 +08:00

124 lines
3.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Dto.Compensation;
/// <summary>
/// 创建补偿任务输入
/// </summary>
public class CreateCompensationTaskInput
{
/// <summary>
/// 任务类型(使用 CompensationTaskTypeEnum 枚举)
/// </summary>
public CompensationTaskTypeEnum TaskType { get; set; }
/// <summary>
/// 业务来源(如 CheckIn、Purchase
/// </summary>
public string BusinessSource { get; set; } = string.Empty;
/// <summary>
/// 关联业务记录Id
/// </summary>
public string? BusinessId { get; set; }
/// <summary>
/// 关联用户Id
/// </summary>
public long UserId { get; set; }
/// <summary>
/// 处理参数匿名对象或字典会自动序列化为JSON
/// </summary>
public object Payload { get; set; } = new { };
/// <summary>
/// 异常消息
/// </summary>
public string ErrorMessage { get; set; } = string.Empty;
/// <summary>
/// 异常来源(类名.方法名,如 CheckInService.CheckInAsync
/// </summary>
public string ErrorSource { get; set; } = string.Empty;
/// <summary>
/// 最大重试次数默认3次
/// </summary>
public int MaxRetries { get; set; } = 3;
}
/// <summary>
/// 补偿任务输出
/// </summary>
public class CompensationTaskOutput
{
public long Id { get; set; }
public CompensationTaskTypeEnum TaskType { get; set; }
public string BusinessSource { get; set; } = string.Empty;
public string? BusinessId { get; set; }
public long UserId { get; set; }
public string Payload { get; set; } = string.Empty;
public string ErrorMessage { get; set; } = string.Empty;
public string ErrorSource { get; set; } = string.Empty;
public int RetryCount { get; set; }
public int MaxRetries { get; set; }
public CompensationTaskStatusEnum Status { get; set; }
public DateTime? ProcessedAt { get; set; }
public DateTime? ScheduledAt { get; set; }
public string? ResultMessage { get; set; }
public DateTime CreatedAt { get; set; }
}
/// <summary>
/// 查询补偿任务输入(供外部项目按条件拉取)
/// </summary>
public class GetCompensationTasksInput
{
/// <summary>
/// 按状态筛选
/// </summary>
public CompensationTaskStatusEnum? Status { get; set; }
/// <summary>
/// 按任务类型筛选
/// </summary>
public CompensationTaskTypeEnum? TaskType { get; set; }
/// <summary>
/// 按业务来源筛选
/// </summary>
public string? BusinessSource { get; set; }
/// <summary>
/// 获取数量上限默认50
/// </summary>
public int Limit { get; set; } = 50;
}
/// <summary>
/// 更新补偿任务状态输入(供外部处理项目回调)
/// </summary>
public class UpdateCompensationStatusInput
{
/// <summary>
/// 目标状态(使用 CompensationTaskStatusEnum 枚举)
/// </summary>
public CompensationTaskStatusEnum Status { get; set; }
/// <summary>
/// 处理结果描述
/// </summary>
public string? ResultMessage { get; set; }
/// <summary>
/// 更新重试次数(可选)
/// </summary>
public int? RetryCount { get; set; }
/// <summary>
/// 下次计划执行时间(用于退避重试,可选)
/// </summary>
public DateTime? ScheduledAt { get; set; }
}