InitApplication.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.fdkk.bim.runner;
  2. import cn.hutool.core.codec.Base64;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.fdkankan.redis.util.RedisUtil;
  5. import com.fdkk.bim.bimEntity.BimResult;
  6. import com.fdkk.bim.bimEntity.vo.AccessTokenBean;
  7. import com.fdkk.bim.client.BimFaceClient;
  8. import com.fdkk.bim.config.BimFaceConfig;
  9. import com.fdkk.bim.service.BimFaceService;
  10. import jdk.nashorn.internal.runtime.logging.Logger;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.boot.ApplicationArguments;
  14. import org.springframework.boot.ApplicationRunner;
  15. import org.springframework.stereotype.Component;
  16. import javax.annotation.Resource;
  17. import java.util.concurrent.TimeUnit;
  18. /**
  19. * @author Xiewj
  20. * @date 2022/10/18
  21. */
  22. @Component
  23. @Slf4j
  24. public class InitApplication implements ApplicationRunner {
  25. @Resource
  26. BimFaceClient bimFaceClient;
  27. @Autowired
  28. RedisUtil cache;
  29. @Resource
  30. BimFaceConfig bimFaceConfig;
  31. @Resource
  32. BimFaceService bimFaceService;
  33. @Override
  34. public void run(ApplicationArguments args) throws Exception {
  35. //初始化token
  36. String Authorization = Base64.encode((bimFaceConfig.getAppKey()+":"+bimFaceConfig.getAppSecret()).getBytes());
  37. if (cache.hasKey("bim:token")){
  38. cache.get("bim:token");
  39. }else {
  40. BimResult<AccessTokenBean> token = bimFaceClient.getToken("Basic " + Authorization);
  41. if (ObjectUtil.isNotNull(token)&&token.getCode().equals("success")){
  42. log.info("token,-{}",token.getData());
  43. cache.set("bim:token",token.getData().getToken(), TimeUnit.SECONDS.convert(1,TimeUnit.DAYS));
  44. }
  45. }
  46. //初始化现有业务数量
  47. long allCount = bimFaceService.getAllCount();
  48. if (!cache.hasKey("bim:count")){
  49. cache.set("bim:count", String.valueOf(allCount));
  50. }
  51. }
  52. }