添加日志、获取甬城泊车平台令牌存入缓存

This commit is contained in:
Lemon
2023-11-23 10:22:33 +08:00
parent fc4eb40904
commit c282a56a99
5 changed files with 66 additions and 37 deletions

View File

@@ -243,37 +243,38 @@ public class LianLianServiceImpl implements LianLianService {
}
public static void main(String[] args) throws UnsupportedEncodingException {
String dataSecret = "P29C6N1K0B1CIRLP"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO
String dataSecretIV = "9UL7GUR8AGEHQNDI"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR
String signSecret = "BSOUJ73MM7KETDIT"; // sRjCDeokckFGpYpA
// String dataString = "LrjN9OmwM1HLzq7ljVy4u+w9fjZ3Csfat1/t9JBRx7U2i/7k8pDbFMEj1hGy1hLYG3I4urpCIunP01xUUI2VC1PyTKxjLlJBhiSsnEGE1Nb78v8Zx8ESeh52oJ5se1h8vGTQIWG679Q1xO1yPINkMN4+wZXq3VsaJNaQ8PfzLn1j0kN0LP7h9SNpddwXQfxaZgAM64qxpzX15yZpAtNDAfv/R9+uTh4M32bipQSPOl0P7PUqNIDxRfKMe8u50tGzTUVjF/XgJB5TZkW0oU6lYLrTuFDeHS2NS4lR5BWRfiUY3Kf6sGC5PbZtaqrkK5zQw1slwNPHWDt3kMlVqrpawAdeBzoOtOn3csjr/wRMe4UNoAI/sVZWW+ha5HbfcHh3MUwQjzdmeTg1uBK76sOLvA==";
String dataSecret = "SPBNJ1Z5EQNmpK08"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO
String dataSecretIV = "peRoTcb2C7zqKeII"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR
String signSecret = "sRjCDeokckFGpYpA"; // sRjCDeokckFGpYpA
String dataString = "jLVyZbrFkAVN1LuTZqjxBwvvUo2Du8fT5im8x0Uqvq/9qEswU7wqeKRbjPoc+Jzcq84fDT4kgozILsCfCxeEK0CqVwAyc7PcrRz6tWsOzr2BMNcewqM73Bk/rB\n" +
"lT369oOVpUznA+I7TFtm4eQDEQ0p671unzvm/zUUn5YhGSPBJiyitwKI0XWu62tUwReupxx7KmsC1zsYFXsPGESAAo7WUJdLhK+71SNnX2/7HLg3U=";
// // 解密data
// byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes());
// String dataStr = new String(plainText, StandardCharsets.UTF_8);
// Map<String, String> resMap = (Map<String, String>) JSON.parse(dataStr);
// // String secret = resMap.get("OperatorSecret");
// System.out.println(resMap);
// 解密data
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes());
String dataStr = new String(plainText, StandardCharsets.UTF_8);
Map<String, String> resMap = (Map<String, String>) JSON.parse(dataStr);
// String secret = resMap.get("OperatorSecret");
System.out.println(resMap);
// 加密data
JSONObject json = new JSONObject();
json.put("OperatorID", "MA771QENX");
json.put("OperatorSecret", "YVK5DZS4CCGJJVBT");
Map<String, String> resultMap = Maps.newLinkedHashMap();
// 加密数据
byte[] encryptText = Cryptos.aesEncrypt(JSONObject.toJSONString(json).getBytes(),
dataSecret.getBytes(), dataSecretIV.getBytes());
String encryptData = Encodes.encodeBase64(encryptText);
resultMap.put("Data", encryptData);
// 生成sig
String resultSign = GBSignUtils.sign(resultMap, signSecret);
resultMap.put("Sig", resultSign);
System.out.println(resultSign);
System.out.println(resultMap);
// JSONObject json = new JSONObject();
// json.put("OperatorID", "MA771QENX");
// json.put("OperatorSecret", "YVK5DZS4CCGJJVBT");
//
// Map<String, String> resultMap = Maps.newLinkedHashMap();
// // 加密数据
// byte[] encryptText = Cryptos.aesEncrypt(JSONObject.toJSONString(json).getBytes(),
// dataSecret.getBytes(), dataSecretIV.getBytes());
// String encryptData = Encodes.encodeBase64(encryptText);
//
// resultMap.put("Data", encryptData);
// // 生成sig
// String resultSign = GBSignUtils.sign(resultMap, signSecret);
// resultMap.put("Sig", resultSign);
//
// System.out.println(resultSign);
// System.out.println(resultMap);
}

View File

@@ -3,7 +3,10 @@ package com.jsowell.thirdparty.yongchengboche.service.impl;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.dto.*;
import com.jsowell.thirdparty.lianlian.dto.CommonParamsDTO;
import com.jsowell.thirdparty.lianlian.service.LianLianService;
@@ -24,6 +27,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* 甬城泊车 Service
@@ -40,6 +44,9 @@ public class YCBCServiceImpl implements YCBCService {
@Autowired
private LianLianService lianLianService;
@Autowired
private RedisCache redisCache;
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -57,7 +64,15 @@ public class YCBCServiceImpl implements YCBCService {
String urlAddress = dto.getUrlAddress();
String signSecret = dto.getSignSecret();
String token = "";
String redisKey = CacheConstants.YCBC_TOKEN_BY_OPERATORID + operatorId;
// 先查缓存
String token = redisCache.getCacheObject(redisKey);
if (StringUtils.isNotBlank(token)) {
logger.info("获取甬城泊车平台令牌,缓存中有值为:{}", token);
return token;
}else {
token = "";
}
try {
// 请求地址
String requestUrl = urlAddress + "query_token";
@@ -97,8 +112,16 @@ public class YCBCServiceImpl implements YCBCService {
dataSecret.getBytes(), dataSecretIv.getBytes());
String dataStr = new String(plainText, "UTF-8");
Map<String, String> resultMap = (Map<String, String>) JSON.parse(dataStr);
int succStat = Integer.parseInt(resultMap.get("SuccStat"));
if (succStat != 0) {
logger.error("获取甬城泊车平台令牌 error:{}", result.getMsg());
return token;
}
token = resultMap.get("AccessToken");
logger.info("甬城泊车 token: {}", token);
// 存入缓存
int tokenAvailableTime = Integer.parseInt(resultMap.get("TokenAvailableTime"));
redisCache.setCacheObject(redisKey, token, tokenAvailableTime, TimeUnit.SECONDS);
}
} catch (Exception e) {
return token;