package com.hzs.third.job; import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.utils.DateUtils; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import java.time.temporal.ChronoUnit; import java.util.Date; /** * 每日奖金计算定时任务 */ @Component @Slf4j @ConditionalOnProperty(name = "xxl-job.start", havingValue = "true") public class BonusSettleJob { @DubboReference IMemberSettleBonusApi memberBonusSettleApi; /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("backSettleBonus") public void backupsSettleBonusEveryday() { log.info("开始进行奖金结算"); memberBonusSettleApi.backupsSettleBonusEveryday(); } /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("autoSettleBonus") public void autoSettleBonusEveryday() { Date startDate = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()); log.info("开始进行奖金结算"); memberBonusSettleApi.autoCalculateBonus(startDate); } /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("autoSettleBonus1") public void autoSettleBonusEveryday1() { Date startDate = DateUtils.beforeDate(6, ChronoUnit.DAYS, DateUtils.currentDate()); log.info("开始进行奖金结算"); memberBonusSettleApi.autoCalculateBonus(startDate); } /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("autoSettleBonus2") public void autoSettleBonusEveryday2() { Date startDate = DateUtils.beforeDate(5, ChronoUnit.DAYS, DateUtils.currentDate()); log.info("开始进行奖金结算"); memberBonusSettleApi.autoCalculateBonus(startDate); } /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("autoSettleBonus3") public void autoSettleBonusEveryday3() { Date startDate = DateUtils.beforeDate(4, ChronoUnit.DAYS, DateUtils.currentDate()); log.info("开始进行奖金结算"); memberBonusSettleApi.autoCalculateBonus(startDate); } /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("autoSettleBonus4") public void autoSettleBonusEveryday4() { Date startDate = DateUtils.beforeDate(3, ChronoUnit.DAYS, DateUtils.currentDate()); log.info("开始进行奖金结算"); memberBonusSettleApi.autoCalculateBonus(startDate); } /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("autoSettleBonus5") public void autoSettleBonusEveryday5() { Date startDate = DateUtils.beforeDate(2, ChronoUnit.DAYS, DateUtils.currentDate()); log.info("开始进行奖金结算"); memberBonusSettleApi.autoCalculateBonus(startDate); } /** * 奖金每天自动结算,计算前一天奖金 */ @XxlJob("autoSettleBonus6") public void autoSettleBonusEveryday6() { Date startDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate()); log.info("开始进行奖金结算"); memberBonusSettleApi.autoCalculateBonus(startDate); } /* * @description: 自动公布奖金 **/ @XxlJob("autoPublishBonus") public void autoPublishBonusEveryday() { log.info("开始进行奖金公布"); memberBonusSettleApi.autoPublishBonus(); log.info("奖金公布完成"); } /* * @description: 自动发放奖金 **/ @XxlJob("autoGrantBonus") public void autoGrantBonusEveryday() { log.info("开始进行奖金发放"); memberBonusSettleApi.autoGrantBonus(); log.info("奖金发放完成"); } /* * @description: 自动结算每日业绩,每月业绩,用于统计分析 **/ @XxlJob("autoSettleMember") public void autoSettleMemberAchieveEveryday() { log.info("开始进行会员业绩计算"); memberBonusSettleApi.insertCuMemberAchieveByEveryDay(); } }