task-reminder/src/main/java/com/zeodao/reminder/strategy/TextReminderHandler.java
2025-05-30 13:06:45 +08:00

50 lines
1.8 KiB
Java

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());
}
}
}