package com.sundot.airport.quartz.task;

import com.sundot.airport.exam.service.IDailyTaskExpireService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * <b>功能名：</b>DailyTaskExpireTask<br>
 * <b>说明：</b> 每日答题任务逾期处理定时任务 <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author Simon Lin
 */
@Component("dailyTaskExpireTask")
public class DailyTaskExpireTask {

    private static final Logger log = LoggerFactory.getLogger(DailyTaskExpireTask.class);

    @Autowired
    private IDailyTaskExpireService dailyTaskExpireService;

    /**
     * 处理逾期任务
     * <p>
     * 定时任务配置说明：
     * - 执行时间：每天7:10执行（业务日期在7:00结束，7:10开始处理逾期任务）
     * - Cron表达式：0 10 7 * * ?
     * - 调用目标：dailyTaskExpireTask.processExpiredTasks
     * </p>
     */
    public void processExpiredTasks() {
        try {
            log.info("========== 开始执行每日答题任务逾期处理 ==========");

            int expiredCount = dailyTaskExpireService.processExpiredTasks();

            log.info("========== 每日答题任务逾期处理完成，共处理 {} 个任务 ==========", expiredCount);
        } catch (Exception e) {
            log.error("执行每日答题任务逾期处理失败", e);
        }
    }

    /**
     * 手动触发逾期任务处理（用于测试）
     */
    public void processExpiredTasksManual() {
        log.info("手动触发逾期任务处理");
        processExpiredTasks();
    }
}
