task-reminder/src/main/java/com/zeodao/reminder/service/EnabledCheckService.java

62 lines
2.0 KiB
Java

package com.zeodao.reminder.service;
import com.zeodao.reminder.config.TaskReminderConfig;
import com.zeodao.reminder.enums.ScheduleType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
/**
* 启用状态检查服务
* 简化版本:直接检查提醒类型的启用状态
*
* @author Zeodao
* @version 2.0.0
*/
@Service
public class EnabledCheckService {
private static final Logger logger = LoggerFactory.getLogger(EnabledCheckService.class);
/**
* 检查群组的特定提醒类型是否启用
*
* @param group 群组配置
* @param scheduleType 提醒类型
* @return 是否启用
*/
public boolean isReminderEnabled(TaskReminderConfig.Group group, ScheduleType scheduleType) {
TaskReminderConfig.Schedule schedule = group.getSchedules().get(scheduleType.getCode());
if (schedule == null) {
logger.debug("群组 {} 未配置 {} 提醒", group.getName(), scheduleType.getDescription());
return false;
}
boolean enabled = schedule.isEnabled();
if (!enabled) {
logger.debug("群组 {} 的 {} 提醒已禁用", group.getName(), scheduleType.getDescription());
} else {
logger.debug("群组 {} 的 {} 提醒已启用", group.getName(), scheduleType.getDescription());
}
return enabled;
}
/**
* 检查群组的特定提醒类型是否启用(字符串版本,用于兼容)
*
* @param group 群组配置
* @param scheduleTypeCode 提醒类型代码
* @return 是否启用
*/
public boolean isReminderEnabled(TaskReminderConfig.Group group, String scheduleTypeCode) {
ScheduleType scheduleType = ScheduleType.fromCode(scheduleTypeCode);
if (scheduleType == null) {
logger.warn("无效的提醒类型代码: {}", scheduleTypeCode);
return false;
}
return isReminderEnabled(group, scheduleType);
}
}