diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java index 185b0a1b..aaedd747 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java @@ -40,6 +40,8 @@ public class ChanjetController { private ChanjetSpi chanjetSpi; @Resource private ChanjetManager chanjetManager; + @Resource + private ChanjetTokenHolder chanjetTokenHolder; /** * OAuth回调地址接口 @@ -55,7 +57,7 @@ public class ChanjetController { log.debug("接收授权码推送:{}", code); GetTokenResponse response = chanjetSpi.getToken(code); // 如成功 保存token - ChanjetTokenHolder.setToken(response); + chanjetTokenHolder.installToken(response); return response; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetTokenHolder.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetTokenHolder.java index 85792d05..a8237722 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetTokenHolder.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetTokenHolder.java @@ -7,6 +7,7 @@ import com.chanjet.openapi.sdk.java.response.RefreshTokenResponse; import com.chanko.yunxi.mes.module.biz.config.ChanjetOpenApiConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -27,23 +28,34 @@ public class ChanjetTokenHolder { public static String REFRESH_TOKEN = null; public static String APP_KEY = null; public static String APP_SECRET = null; + public static final String MAJOYS_CHANJET_TOKEN_KEY = "MAJOYS_CHANJET_TOKEN_KEY"; + public static final String MAJOYS_CHANJET_REFRESH_TOKEN_KEY = "MAJOYS_CHANJET_REFRESH_TOKEN_KEY"; @Resource private ChanjetSpi chanjetSpi; @Resource private ChanjetOpenApiConfig chanjetOpenApiConfig; + @Resource + private RedisTemplate redisTemplate; @PostConstruct public void init(){ APP_KEY = chanjetOpenApiConfig.getAppKey(); APP_SECRET = chanjetOpenApiConfig.getAppSecret(); + if(redisTemplate.hasKey(MAJOYS_CHANJET_TOKEN_KEY)){ + TOKEN = redisTemplate.opsForValue().get(MAJOYS_CHANJET_TOKEN_KEY); + } + if(redisTemplate.hasKey(MAJOYS_CHANJET_REFRESH_TOKEN_KEY)){ + REFRESH_TOKEN = redisTemplate.opsForValue().get(MAJOYS_CHANJET_REFRESH_TOKEN_KEY); + } + } - public static void setToken(GetTokenResponse response) { + public void installToken(GetTokenResponse response) { log.debug("ChanjetTokenHolder.setToken: {}", JSON.toJSONString(response)); if("200".equals(response.getCode())){ - TOKEN = response.getResult().getAccessToken(); - REFRESH_TOKEN = response.getResult().getRefreshToken(); + setToken(response.getResult().getAccessToken()); + setRefreshToken(response.getResult().getRefreshToken()); }else{ log.error("ChanjetTokenHolder.setToken error: {}", JSON.toJSONString(response)); } @@ -58,18 +70,28 @@ public class ChanjetTokenHolder { public void refreshToken() throws ChanjetApiException { if(!StringUtils.isEmpty(REFRESH_TOKEN)){ RefreshTokenResponse refreshTokenResponse = chanjetSpi.refreshToken(REFRESH_TOKEN); - setToken(refreshTokenResponse); + installToken(refreshTokenResponse); } } - private void setToken(RefreshTokenResponse response) { + private void installToken(RefreshTokenResponse response) { log.debug("ChanjetTokenHolder.refreshToken: {}", JSON.toJSONString(response)); if("200".equals(response.getCode())){ - TOKEN = response.getResult().getAccessToken(); - REFRESH_TOKEN = response.getResult().getRefreshToken(); + setToken(response.getResult().getAccessToken()); + setRefreshToken(response.getResult().getRefreshToken()); }else{ log.error("ChanjetTokenHolder.refreshToken error: {}", JSON.toJSONString(response)); } } + public void setToken(String token){ + TOKEN = token; + redisTemplate.opsForValue().set(MAJOYS_CHANJET_TOKEN_KEY, token); + } + + private void setRefreshToken(String refreshToken) { + REFRESH_TOKEN = refreshToken; + redisTemplate.opsForValue().set(MAJOYS_CHANJET_REFRESH_TOKEN_KEY, refreshToken); + } + }