XiaomanInitializers.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.fjhx.customer.initializers;
  2. import cn.hutool.core.date.DateUnit;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import cn.hutool.core.util.StrUtil;
  6. import com.fjhx.customer.entity.xiaoman.po.XiaomanConfig;
  7. import com.fjhx.customer.service.xiaoman.XiaomanConfigService;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.scheduling.annotation.Scheduled;
  10. import org.springframework.stereotype.Component;
  11. import javax.annotation.PostConstruct;
  12. import javax.annotation.Resource;
  13. import java.util.Date;
  14. @Component
  15. @Slf4j
  16. public class XiaomanInitializers {
  17. @Resource
  18. private XiaomanConfigService xiaomanConfigService;
  19. @PostConstruct
  20. public void dataInitializer() {
  21. // 初始化数据的代码
  22. log.info("XiaomanInitializers dataInitializer");
  23. //刷新token
  24. refreshToken();
  25. }
  26. @Scheduled(cron = "0 0/30 * * * ? ")
  27. //每分钟执行一次
  28. // @Scheduled(cron = "0 0/1 * * * ? ")
  29. void refreshToken(){
  30. //如果过期时间是空的,就获取新的token
  31. XiaomanConfig config = xiaomanConfigService.getConfig();
  32. Date expireTime = config.getExpireTime();
  33. if(ObjectUtil.isNull(expireTime) || StrUtil.isBlank(config.getRefreshToken())) {
  34. xiaomanConfigService.getToken(config);
  35. } else {
  36. //如果过期时间减去当前时间小于110分钟,则要刷新token
  37. long between = DateUtil.between(DateUtil.date(), expireTime, DateUnit.MINUTE, false);
  38. if(between <= 70){
  39. xiaomanConfigService.refreshToken(config);
  40. }
  41. }
  42. }
  43. }