去掉拿接口的缓存逻辑
This commit is contained in:
+7
-1
@@ -109,5 +109,11 @@ public interface AnYanClient {
|
|||||||
* 公网环境获取服务访问token (目前仅用于访问安眼大屏)
|
* 公网环境获取服务访问token (目前仅用于访问安眼大屏)
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String publicNetworkToken() throws Exception;
|
String publicNetworkToken();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公网环境获取服务访问token (目前仅用于访问安眼大屏, 不走缓存, 每次用现取)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String publicNetworkTokenNoCache();
|
||||||
}
|
}
|
||||||
|
|||||||
+34
-18
@@ -179,12 +179,24 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String publicNetworkToken() throws Exception {
|
public String publicNetworkToken(){
|
||||||
String token = redisClientUtil.get(new RedisKeyPrefix(AnYanConstants.AN_YAN_API_TOKEN_PREFIX) ,"publicToken",String.class);
|
String token = redisClientUtil.get(new RedisKeyPrefix(AnYanConstants.AN_YAN_API_TOKEN_PREFIX) ,"publicToken",String.class);
|
||||||
if(StrUtil.isEmpty(token)){
|
if(StrUtil.isEmpty(token)){
|
||||||
JSONObject param = new JSONObject();
|
AuthResult authResult = queryPublicToken();
|
||||||
String password = anYanProperties.getPublicPassWrod();
|
if(null != authResult){
|
||||||
String userName = anYanProperties.getPublicUserNmae();
|
token = authResult.getAccess_token();
|
||||||
|
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in())? authResult.getExpires_in() : 7200;
|
||||||
|
redisClientUtil.set(new RedisKeyPrefix(expireSeconds,AnYanConstants.AN_YAN_API_TOKEN_PREFIX),"publicToken", token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return token;
|
||||||
|
}
|
||||||
|
|
||||||
|
private AuthResult queryPublicToken(){
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
String password = anYanProperties.getPublicPassWrod();
|
||||||
|
String userName = anYanProperties.getPublicUserNmae();
|
||||||
|
try {
|
||||||
String sm4Password = SM4Utils.encryptSM4(password);
|
String sm4Password = SM4Utils.encryptSM4(password);
|
||||||
String encryptPassword = StringUtils.encryptByPublicKey(publicKey, password);
|
String encryptPassword = StringUtils.encryptByPublicKey(publicKey, password);
|
||||||
param.put("password",encryptPassword);
|
param.put("password",encryptPassword);
|
||||||
@@ -193,23 +205,27 @@ public class AnYanClientExecutor implements AnYanClient {
|
|||||||
param.put("timeStamp", UUID.randomUUID().toString());
|
param.put("timeStamp", UUID.randomUUID().toString());
|
||||||
ResponseEntity<AnYanResult> responseEntity = RestTemplateUtil.postExchangeForGetToken(AnYanApiEnum.PUBLIC_NETWORK_AUTH_TOKEN, param,AnYanResult.class);
|
ResponseEntity<AnYanResult> responseEntity = RestTemplateUtil.postExchangeForGetToken(AnYanApiEnum.PUBLIC_NETWORK_AUTH_TOKEN, param,AnYanResult.class);
|
||||||
//安眼提供的接口包过深 ,先从AnYanResult对象中取出加密的密文,后在解密密文拿出 AuthResult对象 , 再从AuthResult对象中拿出 access_token
|
//安眼提供的接口包过深 ,先从AnYanResult对象中取出加密的密文,后在解密密文拿出 AuthResult对象 , 再从AuthResult对象中拿出 access_token
|
||||||
try {
|
AnYanResult anYanResult = responseEntity.getBody();
|
||||||
AnYanResult anYanResult = responseEntity.getBody();
|
if(ObjectUtil.isNotEmpty(anYanResult) && ObjectUtil.isNotEmpty(anYanResult.getData())){
|
||||||
if(ObjectUtil.isNotEmpty(anYanResult) && ObjectUtil.isNotEmpty(anYanResult.getData())){
|
String decryptAuthResult = SM4Utils.decryptSM4((String) anYanResult.getData());
|
||||||
String decryptAuthResult = SM4Utils.decryptSM4((String) anYanResult.getData());
|
AuthResult authResult = JSON.parseObject(decryptAuthResult).toJavaObject(AuthResult.class);
|
||||||
AuthResult authResult = JSON.parseObject(decryptAuthResult).toJavaObject(AuthResult.class);
|
if(null != authResult && null != authResult.getAccess_token()){
|
||||||
if(null != authResult && null != authResult.getAccess_token()){
|
return authResult;
|
||||||
token = authResult.getAccess_token();
|
}else {
|
||||||
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in())? authResult.getExpires_in() : 7200;
|
ExceptionAssertsUtil.fail("获取安眼系统token失败");
|
||||||
redisClientUtil.set(new RedisKeyPrefix(expireSeconds,AnYanConstants.AN_YAN_API_TOKEN_PREFIX),"publicToken", token);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
ExceptionAssertsUtil.fail("获取安眼系统token失败");
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
ExceptionAssertsUtil.fail("获取安眼系统token失败");
|
||||||
}
|
}
|
||||||
return token;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String publicNetworkTokenNoCache(){
|
||||||
|
AuthResult authResult = queryPublicToken();
|
||||||
|
return null != authResult? authResult.getAccess_token() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -283,7 +283,7 @@ public class LargeScreenNewController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("queryAnYanToken")
|
@GetMapping("queryAnYanToken")
|
||||||
public Result<String> queryAnYanToken() throws Exception {
|
public Result<String> queryAnYanToken(){
|
||||||
return Result.ok(largeScreenService.queryAnYanToken());
|
return Result.ok(largeScreenService.queryAnYanToken());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -55,5 +55,5 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
|
|||||||
*/
|
*/
|
||||||
void syncAnYanHospital();
|
void syncAnYanHospital();
|
||||||
|
|
||||||
String queryAnYanToken() throws Exception;
|
String queryAnYanToken();
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -535,7 +535,7 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String queryAnYanToken() throws Exception {
|
public String queryAnYanToken(){
|
||||||
return anYanClient.publicNetworkToken();
|
return anYanClient.publicNetworkTokenNoCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user