package com.fdkk.bim.runner; import cn.hutool.core.codec.Base64; import cn.hutool.core.util.ObjectUtil; import com.fdkankan.redis.util.RedisUtil; import com.fdkk.bim.bimEntity.BimResult; import com.fdkk.bim.bimEntity.vo.AccessTokenBean; import com.fdkk.bim.client.BimFaceClient; import com.fdkk.bim.config.BimFaceConfig; import com.fdkk.bim.service.BimFaceService; import jdk.nashorn.internal.runtime.logging.Logger; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.concurrent.TimeUnit; /** * @author Xiewj * @date 2022/10/18 */ @Component @Slf4j public class InitApplication implements ApplicationRunner { @Resource BimFaceClient bimFaceClient; @Autowired RedisUtil cache; @Resource BimFaceConfig bimFaceConfig; @Resource BimFaceService bimFaceService; @Override public void run(ApplicationArguments args) throws Exception { //初始化token String Authorization = Base64.encode((bimFaceConfig.getAppKey()+":"+bimFaceConfig.getAppSecret()).getBytes()); if (cache.hasKey("bim:token")){ cache.get("bim:token"); }else { BimResult token = bimFaceClient.getToken("Basic " + Authorization); if (ObjectUtil.isNotNull(token)&&token.getCode().equals("success")){ log.info("token,-{}",token.getData()); cache.set("bim:token",token.getData().getToken(), TimeUnit.SECONDS.convert(1,TimeUnit.DAYS)); } } //初始化现有业务数量 long allCount = bimFaceService.getAllCount(); if (!cache.hasKey("bim:count")){ cache.set("bim:count", String.valueOf(allCount)); } } }