50 lines
1.8 KiB
Java
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());
|
|
}
|
|
}
|
|
}
|