1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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);
- }
- }
- }
- }
|