Browse Source

修改:

1.第三方平台接入,AccessToken缓存动作从具体的子类提取到了ApiService中,子类只需要调用ApiService提供的addAccessTokenToCache()/getAccessTokenFromCache()方法即可
dev_shibei_match
wxz 4 years ago
parent
commit
686d42b4cd
  1. 43
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java
  2. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java

43
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.alibaba.fastjson.JSON;
import com.epmet.apiservice.result.LZGridPlatformBaseResult; import com.epmet.apiservice.result.LZGridPlatformBaseResult;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.dto.result.ProjectAssistResult; import com.epmet.dto.result.ProjectAssistResult;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.HttpClientManager; 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.ThirdplatformActionEntity;
import com.epmet.entity.ThirdplatformCustomerRegisterEntity; import com.epmet.entity.ThirdplatformCustomerRegisterEntity;
import com.epmet.entity.ThirdplatformEntity; import com.epmet.entity.ThirdplatformEntity;
import org.springframework.data.redis.core.RedisTemplate;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -116,6 +118,14 @@ public abstract class ApiService {
} }
LZGridPlatformBaseResult platformResult = JSON.parseObject(result.getData(), LZGridPlatformBaseResult.class); 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); judgeResultSuccess(platformResult);
return result.getData(); return result.getData();
} }
@ -128,6 +138,39 @@ public abstract class ApiService {
*/ */
public abstract String getAccessToken(String platformId); public abstract String getAccessToken(String platformId);
/**
* @Description 从缓存中删除AccessToken
* @return
* @author wxz
* @date 2021.03.24 15:35
*/
protected void deleteAccessTokenFromCache(String platformId) {
RedisTemplate<String, String> 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<String, String> 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<String, String> stringRedisTemplate = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class);
return stringRedisTemplate.opsForValue().get(platformId);
}
/** /**
* @Description 判断客户是否注册了指定的平台如果没有注册则抛出异常 * @Description 判断客户是否注册了指定的平台如果没有注册则抛出异常
* @return * @return

5
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 @Override
public String getAccessToken(String platformId) { public String getAccessToken(String platformId) {
RedisTemplate<String, String> rt = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class); String token = getAccessTokenFromCache(platformId);
String token = rt.opsForValue().get(RedisKeys.getThirdPlatformAccessTokenKey(platformId));
if (StringUtils.isBlank(token)) { if (StringUtils.isBlank(token)) {
ThirdplatformEntity thirdplatform = SpringContextUtils.getBean(ThirdplatformDao.class).selectById(platformId); ThirdplatformEntity thirdplatform = SpringContextUtils.getBean(ThirdplatformDao.class).selectById(platformId);
ThirdplatformActionEntity actionEntity = SpringContextUtils.getBean(ThirdplatformActionDao.class) ThirdplatformActionEntity actionEntity = SpringContextUtils.getBean(ThirdplatformActionDao.class)
@ -58,7 +57,7 @@ public class LuzhouGridPlatformApiService extends ApiService {
judgeResultSuccess(platformResult); judgeResultSuccess(platformResult);
token = platformResult.getResult(); token = platformResult.getResult();
rt.opsForValue().set(RedisKeys.getThirdPlatformAccessTokenKey(platformId), token); addAccessTokenToCache(platformId, token);
} }
return token; return token;
} }

Loading…
Cancel
Save