package org.dromara.mall.coupon.job;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.mall.coupon.service.MallCouponUserService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 优惠券定时任务
 *
 * @author pengles
 */
@Slf4j
@RequiredArgsConstructor
@Component
public class MallCouponJob {

    private final MallCouponUserService couponUserService;

    /**
     * 优惠券过期处理任务
     * 每天凌晨2点执行一次
     * 处理所有已过期的优惠券，将状态更新为已过期（status=2）
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void processExpiredCoupons() {
        log.info("开始执行优惠券过期处理任务");
        try {
            couponUserService.processExpiredCoupons();
            log.info("优惠券过期处理任务执行完成");
        } catch (Exception e) {
            log.error("优惠券过期处理任务执行失败", e);
        }
    }

}
