using System; using System.Collections.Generic; using System.Threading.Tasks; using NPP.SmartSchedue.Api.Contracts.Domain.Notification; using NPP.SmartSchedue.Api.Contracts.Core.Enums; using ZhonTai.Admin.Core.Repositories; namespace NPP.SmartSchedue.Api.Contracts.Core.Repositories; /// /// 通知任务仓储接口 /// public interface INotificationTaskRepository : IRepositoryBase { /// /// 根据通知设置ID获取任务列表 /// /// 通知设置ID /// Task> GetByNotificationSettingIdAsync(long notificationSettingId); /// /// 根据任务状态获取任务列表 /// /// 任务状态 /// Task> GetByTaskStatusAsync(NotificationStatusEnum taskStatus); /// /// 根据启用状态获取任务列表 /// /// 是否启用 /// Task> GetByEnabledAsync(bool enabled); /// /// 根据业务类型和业务ID获取任务列表 /// /// 业务类型 /// 业务ID /// Task> GetByBusinessAsync(string businessType, long? businessId = null); /// /// 获取待执行的任务列表 /// /// 当前时间 /// Task> GetPendingTasksAsync(DateTime currentTime); /// /// 获取需要执行的定时任务列表(基于Cron表达式) /// /// 当前时间 /// Task> GetCronTasksForExecutionAsync(DateTime currentTime); /// /// 更新任务执行状态 /// /// 任务ID /// 任务状态 /// 执行结果 /// 错误信息 /// Task UpdateExecutionStatusAsync(long taskId, NotificationStatusEnum taskStatus, string executionResult = "", string errorMessage = ""); /// /// 更新任务下次执行时间 /// /// 任务ID /// 下次执行时间 /// Task UpdateNextExecutionTimeAsync(long taskId, DateTime? nextExecutionTime); /// /// 增加任务执行次数 /// /// 任务ID /// 是否执行成功 /// Task IncrementExecutionCountAsync(long taskId, bool isSuccess); /// /// 检查任务是否应该停止执行 /// /// 任务ID /// Task ShouldStopExecutionAsync(long taskId); /// /// 获取过期的任务列表 /// /// 过期时间 /// Task> GetExpiredTasksAsync(DateTime expiredBefore); /// /// 清理过期的任务 /// /// 过期时间 /// Task CleanupExpiredTasksAsync(DateTime expiredBefore); }