XiaomanInitializers.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 cn.hutool.crypto.digest.DigestUtil;
  7. import com.fjhx.customer.entity.xiaoman.po.XiaomanConfig;
  8. import com.fjhx.customer.service.xiaoman.XiaomanApiService;
  9. import com.fjhx.customer.service.xiaoman.XiaomanConfigService;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.scheduling.annotation.Scheduled;
  12. import org.springframework.stereotype.Component;
  13. import javax.annotation.PostConstruct;
  14. import javax.annotation.Resource;
  15. import java.util.Date;
  16. @Component
  17. @Slf4j
  18. public class XiaomanInitializers {
  19. @Resource
  20. private XiaomanConfigService xiaomanConfigService;
  21. @Resource
  22. private XiaomanApiService xiaomanApiService;
  23. @PostConstruct
  24. public void dataInitializer() {
  25. // 初始化数据的代码
  26. log.info("XiaomanInitializers dataInitializer");
  27. //缓存token
  28. xiaomanConfigService.cacheToken();
  29. //刷新token
  30. refreshToken();
  31. //获取全量数据
  32. try {
  33. // xiaomanApiService.updateSingle(18846628768390l);
  34. } catch (Exception e) {
  35. log.error("获取小满全量数据异常", e);
  36. }
  37. log.info("XiaomanInitializers finish dataInitializer");
  38. }
  39. @Scheduled(cron = "0 0/30 * * * ? ")
  40. void refreshToken(){
  41. //如果过期时间是空的,就获取新的token
  42. XiaomanConfig config = xiaomanConfigService.getCache();
  43. Date expireTime = config.getExpireTime();
  44. if(ObjectUtil.isNull(expireTime) || StrUtil.isBlank(config.getRefreshToken())) {
  45. xiaomanConfigService.getToken(config);
  46. } else {
  47. //如果过期时间减去当前时间小于等于70分钟,则要刷新token
  48. long between = DateUtil.between(DateUtil.date(), expireTime, DateUnit.MINUTE, false);
  49. if(between <= 70){
  50. xiaomanConfigService.refreshToken(config);
  51. }
  52. }
  53. }
  54. @Scheduled(cron = "0 0 0 * * ? ")
  55. void updateList(){
  56. xiaomanApiService.updateList(8);
  57. }
  58. public static void main(String[] args) {
  59. String styleBS63046 = DigestUtil.sha256Hex("StyleBS63046");
  60. boolean equals = "07f204c3ae6af316afebb72972056fc2d4f2cac1d8290975c48f80bf5a8519b2".equals(styleBS63046);
  61. System.out.println(styleBS63046);
  62. System.out.println(equals);
  63. }
  64. }