package com.fjhx.customer.initializers; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.fjhx.customer.entity.xiaoman.po.XiaomanConfig; import com.fjhx.customer.service.xiaoman.XiaomanConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.Date; @Component @Slf4j public class XiaomanInitializers { @Resource private XiaomanConfigService xiaomanConfigService; @PostConstruct public void dataInitializer() { // 初始化数据的代码 log.info("XiaomanInitializers dataInitializer"); //刷新token refreshToken(); } @Scheduled(cron = "0 0/30 * * * ? ") //每分钟执行一次 // @Scheduled(cron = "0 0/1 * * * ? ") void refreshToken(){ //如果过期时间是空的,就获取新的token XiaomanConfig config = xiaomanConfigService.getConfig(); Date expireTime = config.getExpireTime(); if(ObjectUtil.isNull(expireTime) || StrUtil.isBlank(config.getRefreshToken())) { xiaomanConfigService.getToken(config); } else { //如果过期时间减去当前时间小于110分钟,则要刷新token long between = DateUtil.between(DateUtil.date(), expireTime, DateUnit.MINUTE, false); if(between <= 70){ xiaomanConfigService.refreshToken(config); } } } }