diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java index ef54d00d93..89bb8f8e24 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java @@ -2,6 +2,7 @@ package com.epmet.apiservice; import com.alibaba.fastjson.JSON; import com.epmet.apiservice.result.LZGridPlatformBaseResult; +import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.dto.result.ProjectAssistResult; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.HttpClientManager; @@ -15,6 +16,7 @@ import com.epmet.dto.form.TPFDemoFormDTO; import com.epmet.entity.ThirdplatformActionEntity; import com.epmet.entity.ThirdplatformCustomerRegisterEntity; import com.epmet.entity.ThirdplatformEntity; +import org.springframework.data.redis.core.RedisTemplate; import java.util.HashMap; import java.util.Map; @@ -116,6 +118,14 @@ public abstract class ApiService { } LZGridPlatformBaseResult platformResult = JSON.parseObject(result.getData(), LZGridPlatformBaseResult.class); + + // token过期重试逻辑,先不加 + //if ("402".equals(platformResult.getCode())) { + // // 如果token过期 + // deleteAccessTokenFromCache(platformId); + // getAccessToken(platformId); + // return sendPostRequest(platformId, action, jsonString, headers); + //} judgeResultSuccess(platformResult); return result.getData(); } @@ -128,6 +138,39 @@ public abstract class ApiService { */ public abstract String getAccessToken(String platformId); + /** + * @Description 从缓存中删除AccessToken + * @return + * @author wxz + * @date 2021.03.24 15:35 + */ + protected void deleteAccessTokenFromCache(String platformId) { + RedisTemplate stringRedisTemplate = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class); + stringRedisTemplate.delete(RedisKeys.getThirdPlatformAccessTokenKey(platformId)); + } + + /** + * @Description 添加AccessToken到缓存 + * @return + * @author wxz + * @date 2021.03.24 15:32 + */ + protected void addAccessTokenToCache(String platformId, String accessToken) { + RedisTemplate stringRedisTemplate = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class); + stringRedisTemplate.opsForValue().set(RedisKeys.getThirdPlatformAccessTokenKey(platformId), accessToken); + } + + /** + * @Description 从缓存中取token + * @return + * @author wxz + * @date 2021.03.24 15:40 + */ + protected String getAccessTokenFromCache(String platformId) { + RedisTemplate stringRedisTemplate = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class); + return stringRedisTemplate.opsForValue().get(platformId); + } + /** * @Description 判断客户是否注册了指定的平台,如果没有注册,则抛出异常 * @return diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java index 25586f743a..5a903a6b08 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java @@ -30,8 +30,7 @@ public class LuzhouGridPlatformApiService extends ApiService { @Override public String getAccessToken(String platformId) { - RedisTemplate rt = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class); - String token = rt.opsForValue().get(RedisKeys.getThirdPlatformAccessTokenKey(platformId)); + String token = getAccessTokenFromCache(platformId); if (StringUtils.isBlank(token)) { ThirdplatformEntity thirdplatform = SpringContextUtils.getBean(ThirdplatformDao.class).selectById(platformId); ThirdplatformActionEntity actionEntity = SpringContextUtils.getBean(ThirdplatformActionDao.class) @@ -58,7 +57,7 @@ public class LuzhouGridPlatformApiService extends ApiService { judgeResultSuccess(platformResult); token = platformResult.getResult(); - rt.opsForValue().set(RedisKeys.getThirdPlatformAccessTokenKey(platformId), token); + addAccessTokenToCache(platformId, token); } return token; }