package com.fs.his.task;

import com.fs.company.service.ICompanyService;
import com.fs.company.vo.RedPacketMoneyVO;
import com.fs.course.service.BalanceRollbackErrorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @description: 公司余额同步定时任务 (红包余额)
 * @author: Xgb
 * @createDate: 2025/10/22
 * @version: 1.0
 */
@Component("companyBalanceTask")
public class CompanyBalanceTask {


    @Autowired
    private BalanceRollbackErrorService balanceRollbackErrorService;

    @Autowired
    private ICompanyService companyService;


    /**
     * @Description: 每10分钟从缓存获取余额同步到公司账户中
     * @Param:
     * @Return:
     * @Author xgb
     * @Date 2025/10/22 10:56
     */
    public void syncCompanyBalance() {
        companyService.syncCompanyBalance();
    }

    /**
     * @Description: 定时回滚公司余额数据
     * @Param:
     * @Return:
     * @Author xgb
     * @Date 2025/10/22 11:48
     */
    public void processBatchRollbackByCompanyId() {
        balanceRollbackErrorService.processBatchRollbackByCompanyId();
    }

    /**
     * @Description: spring启动执行 initCompanyBalance 查询余额报存到缓存中
     * 如果新增公司可以重启admin或者定时配置一下这个方法手动执行一次
     * @Param:
     * @Return:
     * @Author xgb
     * @Date 2025/10/22 11:52
     */
    public void initCompanyBalance() {
        balanceRollbackErrorService.initCompanyBalance();

    }

    /**
     * @Description: 红包余额回滚（回滚的是客户没领取的红包），红包记录表中，两天没领取的记录不会再发送
     * @Param: 每天0点执行一次
     * @Return:
     * @Author xgb
     * @Date 2025/11/7 9:48
     */
    public void rollbackRedPacketMoney() throws Exception {
        // 这个地方真加的是company money字段 xgb 红包余额独立后这个方法弃用
        companyService.rollbackRedPacketMoney();
    }

    /**
     * @Description: 每天晚上0点定时获取获取公司余额，记录到数据库中
     * @Param:
     * @Return:
     * @Author xgb
     * @Date 2025/11/4 10:43
     */
    public void recordRedPacketBalance() {
        companyService.recordRedPacketBalance();
    }





}
