package com.zeodao.reminder.strategy; import com.zeodao.reminder.config.TaskReminderConfig; import com.zeodao.reminder.enums.ScheduleType; import com.zeodao.reminder.enums.TaskSystemType; import com.zeodao.reminder.service.WechatWebhookService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 文本提醒处理器 * 处理 morning 和 evening 类型的文本提醒 * * @author Zeodao * @version 2.0.0 */ @Component public class TextReminderHandler implements ReminderHandler { private static final Logger logger = LoggerFactory.getLogger(TextReminderHandler.class); @Autowired private WechatWebhookService wechatWebhookService; @Override public boolean supports(ScheduleType scheduleType, TaskSystemType taskSystemType) { // 支持所有任务系统的文本提醒类型 return scheduleType.isTextReminder(); } @Override public void handleReminder(TaskReminderConfig.Group group, ScheduleType scheduleType, TaskReminderConfig.Schedule schedule) { logger.info("处理文本提醒 - 群组: {}, 类型: {}", group.getName(), scheduleType.getDescription()); // 生成带格式的提醒消息 String message = wechatWebhookService.createTaskReminderMessage(group.getId(), schedule.getMessage(), scheduleType.getDescription()); // 发送消息 boolean success = wechatWebhookService.sendMarkdownMessage(group.getId(), message); if (success) { logger.info("文本提醒发送成功 - 群组: {}, 类型: {}", group.getName(), scheduleType.getDescription()); } else { logger.error("文本提醒发送失败 - 群组: {}, 类型: {}", group.getName(), scheduleType.getDescription()); } } }