package com.ruoyi.system.service; import com.ruoyi.system.domain.NotifyTask; import com.ruoyi.system.domain.NotifyChannelConfig; import java.util.List; /** * 通知分发服务接口 * 负责根据配置决定发送渠道并执行分发 * * @author ruoyi * @date 2025-12-07 */ public interface INotifyDispatchService { /** * 获取指定通知类型启用的渠道列表 * * @param notifyType 通知类型 * @return 启用的渠道配置列表(按优先级排序) */ List getEnabledChannels(String notifyType); /** * 检查指定渠道是否启用 * * @param notifyType 通知类型 * @param channel 渠道 * @return true=启用, false=未启用 */ boolean isChannelEnabled(String notifyType, String channel); /** * 分发通知任务 * 根据渠道配置,向各启用的渠道发送通知 * * @param notifyTask 通知任务 * @return 成功发送的渠道数量 */ int dispatchNotify(NotifyTask notifyTask); /** * 批量分发通知任务 * * @param notifyTasks 通知任务列表 * @return 成功分发的任务数量 */ int dispatchNotifies(List notifyTasks); /** * 处理待发送的通知任务(可用于定时任务调用) * * @param limit 每次处理的数量限制 * @return 处理的任务数量 */ int processPendingNotifies(int limit); /** * 发送站内消息 * * @param notifyTask 通知任务 * @return 是否发送成功 */ boolean sendSiteMessage(NotifyTask notifyTask); /** * 发送微信订阅消息 * * @param notifyTask 通知任务 * @return 是否发送成功 */ boolean sendWechatMessage(NotifyTask notifyTask); /** * 发送短信消息 * * @param notifyTask 通知任务 * @return 是否发送成功 */ boolean sendSmsMessage(NotifyTask notifyTask); /** * 发送企业微信消息 * * @param notifyTask 通知任务 * @return 是否发送成功 */ boolean sendQyWechatMessage(NotifyTask notifyTask); }