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

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

@@ -92,7 +92,7 @@ public class YCBCController extends BaseController {
QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class);
queryStationInfoDTO.setOperatorId(dto.getOperatorID());
Map<String, String> map = ycbcService.queryStationsInfo(queryStationInfoDTO);
logger.info("甬城泊车平台查询充电站信息 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "查询充电站信息成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.info("甬城泊车平台查询充电站信息 error:", e);
@@ -135,7 +135,7 @@ public class YCBCController extends BaseController {
QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class);
queryStationInfoDTO.setOperatorId(dto.getOperatorID());
Map<String, String> map = ycbcService.queryStationStatus(queryStationInfoDTO);
logger.info("甬城泊车平台查询充电站状态信息 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "查询充电站状态信息成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.info("甬城泊车平台查询充电站状态信息 error:", e);
@@ -230,7 +230,7 @@ public class YCBCController extends BaseController {
QueryEquipmentDTO queryEquipmentDTO = JSONObject.parseObject(dataStr, QueryEquipmentDTO.class);
queryEquipmentDTO.setOperatorID(dto.getOperatorID());
Map<String, String> map = ycbcService.queryEquipAuth(queryEquipmentDTO);
logger.info("甬城泊车平台请求设备认证 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "请求设备认证成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.info("甬城泊车平台请求设备认证 error:", e);
@@ -272,7 +272,7 @@ public class YCBCController extends BaseController {
QueryStartChargeDTO queryStartChargeDTO = JSONObject.parseObject(dataStr, QueryStartChargeDTO.class);
queryStartChargeDTO.setOperatorId(dto.getOperatorID());
Map<String, String> map = ycbcService.queryStartCharge(queryStartChargeDTO);
logger.info("甬城泊车平台请求启动充电 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "请求启动充电成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.error("甬城泊车平台请求启动充电 error", e);
@@ -313,7 +313,7 @@ public class YCBCController extends BaseController {
QueryEquipChargeStatusDTO queryEquipChargeStatusDTO = JSONObject.parseObject(dataStr, QueryEquipChargeStatusDTO.class);
queryEquipChargeStatusDTO.setOperatorID(dto.getOperatorID());
Map<String, String> map = ycbcService.queryEquipChargeStatus(queryEquipChargeStatusDTO);
logger.info("甬城泊车平台查询充电状态 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "查询充电状态成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.error("甬城泊车平台查询充电状态 error", e);
@@ -378,7 +378,7 @@ public class YCBCController extends BaseController {
QueryStartChargeDTO queryStartChargeDTO = JSONObject.parseObject(dataStr, QueryStartChargeDTO.class);
queryStartChargeDTO.setOperatorId(dto.getOperatorID());
Map<String, String> map = ycbcService.queryStopCharge(queryStartChargeDTO);
logger.info("甬城泊车平台请求停止充电 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "请求停止充电成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.error("甬城泊车平台请求停止充电 error", e);

View File

@@ -94,7 +94,7 @@ public class ZDLController extends BaseController {
queryStationInfoDTO.setOperatorId(dto.getOperatorID());
queryStationInfoDTO.setAddress("宁波");
Map<String, String> map = zdlService.queryStationsInfo(queryStationInfoDTO);
logger.info("中电联平台查询充电站信息 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "查询充电站信息成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.info("中电联平台查询充电站信息 error:", e);
@@ -137,7 +137,7 @@ public class ZDLController extends BaseController {
QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class);
queryStationInfoDTO.setOperatorId(dto.getOperatorID());
Map<String, String> map = zdlService.queryStationStats(queryStationInfoDTO);
logger.info("中电联平台查询统计信息 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "查询统计信息成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.info("中电联平台查询统计信息 error:", e);
@@ -184,7 +184,7 @@ public class ZDLController extends BaseController {
QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class);
queryStationInfoDTO.setOperatorId(dto.getOperatorID());
Map<String, String> map = zdlService.queryStationStatus(queryStationInfoDTO);
logger.info("中电联平台设备接口状态查询 result:{}", JSONObject.toJSONString(map));
return CommonResult.success(0, "设备接口状态查询成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.info("中电联平台设备接口状态查询 error:", e);

View File

@@ -183,6 +183,11 @@ public class CacheConstants {
*/
public static final String LTYT_TOKEN_BY_APPID = "ltyt_token_by_appid:";
/**
* 甬城泊车系统Token
*/
public static final String YCBC_TOKEN_BY_OPERATORID = "yong_cheng_bo_che_token_by_operatorId:";
/**
* 桩硬件故障
*/

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;