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.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<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 判断客户是否注册了指定的平台如果没有注册则抛出异常
* @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
public String getAccessToken(String platformId) {
RedisTemplate<String, String> 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;
}

Loading…
Cancel
Save