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 cn.hutool.crypto.digest.DigestUtil; import com.fjhx.customer.entity.xiaoman.po.XiaomanConfig; import com.fjhx.customer.service.xiaoman.XiaomanApiService; 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; @Resource private XiaomanApiService xiaomanApiService; @PostConstruct public void dataInitializer() { // 初始化数据的代码 log.info("XiaomanInitializers dataInitializer"); //缓存token xiaomanConfigService.cacheToken(); //刷新token refreshToken(); //获取全量数据 try { // xiaomanApiService.updateSingle(18846628768390l); } catch (Exception e) { log.error("获取小满全量数据异常", e); } log.info("XiaomanInitializers finish dataInitializer"); } @Scheduled(cron = "0 0/30 * * * ? ") void refreshToken(){ //如果过期时间是空的,就获取新的token XiaomanConfig config = xiaomanConfigService.getCache(); Date expireTime = config.getExpireTime(); if(ObjectUtil.isNull(expireTime) || StrUtil.isBlank(config.getRefreshToken())) { xiaomanConfigService.getToken(config); } else { //如果过期时间减去当前时间小于等于70分钟,则要刷新token long between = DateUtil.between(DateUtil.date(), expireTime, DateUnit.MINUTE, false); if(between <= 70){ xiaomanConfigService.refreshToken(config); } } } @Scheduled(cron = "0 0 0 * * ? ") void updateList(){ xiaomanApiService.updateList(8); } public static void main(String[] args) { String styleBS63046 = DigestUtil.sha256Hex("StyleBS63046"); boolean equals = "07f204c3ae6af316afebb72972056fc2d4f2cac1d8290975c48f80bf5a8519b2".equals(styleBS63046); System.out.println(styleBS63046); System.out.println(equals); } }