using QYZH.InteractiveMagazine.Models.Dto.Compensation; using QYZH.InteractiveMagazine.Models.Entity; namespace QYZH.InteractiveMagazine.IService; /// /// 补偿任务服务接口(仅负责记录和状态管理,处理逻辑由外部项目实现) /// public interface ICompensationTaskService : IBaseService { /// /// 创建补偿任务(公共调用入口) /// 当业务操作部分成功但某个后续步骤失败时调用,记录失败操作以便后续重试 /// /// 补偿任务创建参数 /// 补偿任务Id Task CreateTaskAsync(CreateCompensationTaskInput input); /// /// 获取待处理的补偿任务列表(Pending + 已过 ScheduledAt 的任务) /// /// 每次获取数量上限 /// 待处理任务列表 Task> GetPendingTasksAsync(int limit = 50); /// /// 按条件查询补偿任务(供外部项目按类型/状态/来源拉取) /// /// 查询条件 /// 任务列表 Task> GetTasksAsync(GetCompensationTasksInput input); /// /// 更新补偿任务状态(供外部处理项目回调更新处理结果) /// /// 任务Id /// 状态更新参数 Task UpdateTaskStatusAsync(long taskId, UpdateCompensationStatusInput input); /// /// 取消补偿任务 /// /// 任务Id /// 取消原因 Task CancelTaskAsync(long taskId, string reason); }