package com.ruoyi.jianguan.chengdujianguan;
|
|
|
import cn.hutool.http.HttpUtil;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.nacos.common.utils.JacksonUtils;
|
import com.ruoyi.jianguan.chengdujianguan.model.*;
|
import com.ruoyi.jianguan.chengdujianguan.util.Cryptos;
|
import com.ruoyi.jianguan.chengdujianguan.util.Encodes;
|
import com.ruoyi.jianguan.chengdujianguan.util.GBSignUtils;
|
import com.ruoyi.jianguan.chengdujianguan.util.HttpRequestUtil;
|
import com.ruoyi.jianguan.model.ConnectorInfo;
|
import com.ruoyi.jianguan.model.ConnectorStatusInfo;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.*;
|
import java.util.concurrent.TimeUnit;
|
|
@Slf4j
|
public class ChengDuJianGuanUtil {
|
|
private static String OperatorID = "906171535";
|
private static String OperatorSecret = "amq62RxDSvtqDKYn"; // 运营商秘钥
|
private static String SigSecret = "r7UIikKAXCBj3WI9"; // 签名秘钥
|
private static String DataSecret = "bQHUTLvEFPFGoGYl"; // 消息密钥
|
private static String DataSecretIV = "GBRyCjqbzlPFQjPu"; // 消息密钥初始化向量
|
private static String requestUrl = "https://dataex.cdczpt.com:8101/shevcs/v1";
|
|
//测试环境
|
// private static String OperatorSecret = "9jG8qysc5RxdbjvnvdmuRYQg6J82FwjL"; // 运营商秘钥
|
// private static String SigSecret = "RruzbZxnr74tqxeW"; // 签名秘钥
|
// private static String DataSecret = "3QJXn4MSj78zcpWF"; // 消息密钥
|
// private static String DataSecretIV = "jhqj64V9gX8NHbuf"; // 消息密钥初始化向量
|
// private static String requestUrl = "http://106.14.123.68:8101/shevcs/v1";
|
|
|
// public static void main(String[] args) {
|
// CDStationInfo stationInfo = new CDStationInfo();
|
// stationInfo.setStationID("241231001");
|
// stationInfo.setOperatorID("906171535");
|
// stationInfo.setEquipmentOwnerID("M01234567");
|
// stationInfo.setStationName("灵泉大道充电站");
|
// stationInfo.setIsAloneApply(1);
|
// stationInfo.setAccountNumber("0110042963");
|
// stationInfo.setCapacity(new BigDecimal(1250));
|
// stationInfo.setCountryCode("CN");
|
// stationInfo.setAreaCode("510903");
|
// stationInfo.setAreaCodeCountryside("510903000000");
|
// stationInfo.setAddress("灵泉大道中国石化僧家沟加油站B区旁边前进150米");
|
// stationInfo.setStationTel("18081278695");
|
// stationInfo.setServiceTel("18081278695");
|
// stationInfo.setStationType(1);
|
// stationInfo.setIsOpen(1);
|
// stationInfo.setStationStatus(5);
|
// stationInfo.setParkNums(10);
|
// stationInfo.setStationLng(new BigDecimal(105.616058).setScale(6, RoundingMode.HALF_EVEN));
|
// stationInfo.setStationLat(new BigDecimal(30.527943).setScale(6, RoundingMode.HALF_EVEN));
|
// stationInfo.setSiteGuide("-----");
|
// stationInfo.setConstruction(8);
|
// stationInfo.setPictures(Arrays.asList("https://comppad.didistatic.com/static/comp-pad/da2f2f5f52e2af3a.blob",
|
// "https://comppad.didistatic.com/static/comp-pad/19b79f9d586f78ed.blob",
|
// "https://comppad.didistatic.com/static/comp-pad/fedcbe7d7e342e6c.blob"));
|
// stationInfo.setMatchCars("司机乘用车、出租车");
|
// stationInfo.setParkInfo("");
|
// stationInfo.setParkOwner("");
|
// stationInfo.setParkManager("");
|
// stationInfo.setOpenAllDay(1);
|
// stationInfo.setBusinessHours("全天");
|
// stationInfo.setElectricityFee("0.49");
|
// stationInfo.setServiceFee("0.52");
|
// stationInfo.setParkFeeType(0);
|
// stationInfo.setParkFee("入场充电车辆,可享受停车减免2小时,超时按场地实际收费为准,临牌不支持减免");
|
// stationInfo.setPayment("线上");
|
// stationInfo.setSupportOrder(0);
|
// stationInfo.setRemark("");
|
// stationInfo.setParkFeeType(3);
|
// stationInfo.setToiletFlag(0);
|
// stationInfo.setStoreFlag(0);
|
// stationInfo.setLoungeFlag(0);
|
// stationInfo.setCanopyFlag(0);
|
// stationInfo.setPrinterFlag(0);
|
// stationInfo.setBarrierFlag(1);
|
// stationInfo.setParkingLockFlag(0);
|
// stationInfo.setIsDemandResponse(1);
|
// stationInfo.setIsSupportOrderlyCharging(1);
|
// stationInfo.setIsEnergyStorage(0);
|
// stationInfo.setElectricityType(3);
|
// stationInfo.setRatedPower(new BigDecimal(600));
|
// stationInfo.setPeriodFee(1);
|
// stationInfo.setOfficialRunTime("2024-12-31");
|
// stationInfo.setVideoMonitor(1);
|
// List<CDEquipmentInfo> equipmentInfos1 = new ArrayList<>();
|
// CDEquipmentInfo cdEquipmentInfo = new CDEquipmentInfo();
|
// cdEquipmentInfo.setEquipmentID("2024123100001001");
|
// cdEquipmentInfo.setManufacturerID("123456789");
|
// cdEquipmentInfo.setManufacturerName("12345");
|
// cdEquipmentInfo.setEquipmentModel("123");
|
// cdEquipmentInfo.setEquipmentProductCode("12345");
|
// cdEquipmentInfo.setEquipmentName("灵泉大道1号桩");
|
// cdEquipmentInfo.setProductionDate("2024-06-31");
|
// cdEquipmentInfo.setConstructionTime("2024-12-31");
|
// cdEquipmentInfo.setEquipmentType(1);
|
// cdEquipmentInfo.setEquipmentStatus(5);
|
// cdEquipmentInfo.setEquipmentPurpose(1);
|
// cdEquipmentInfo.setEquipmentPower(new BigDecimal(120));
|
// cdEquipmentInfo.setNewNationalStandard(1);
|
// cdEquipmentInfo.setEquipmentLng(new BigDecimal(105.616058).setScale(6, RoundingMode.HALF_EVEN));
|
// cdEquipmentInfo.setEquipmentLat(new BigDecimal(30.527943).setScale(6, RoundingMode.HALF_EVEN));
|
// cdEquipmentInfo.setVinFlag(0);
|
// List<ConnectorInfo> connectorInfos = new ArrayList<>();
|
// ConnectorInfo connectorInfo = new ConnectorInfo();
|
// connectorInfo.setConnectorID("202412310000100101");
|
// connectorInfo.setConnectorName("1号桩01枪");
|
// connectorInfo.setConnectorType(4);
|
// connectorInfo.setVoltageUpperLimits(new BigDecimal(380));
|
// connectorInfo.setVoltageLowerLimits(new BigDecimal(220));
|
// connectorInfo.setCurrent(120);
|
// connectorInfo.setPower(new BigDecimal(250));
|
// connectorInfo.setNationalStandard(2);
|
// connectorInfo.setAuxPower(1);
|
// connectorInfo.setOpreateStatus(5);
|
// connectorInfo.setParkNo("01");
|
// connectorInfos.add(connectorInfo);
|
// cdEquipmentInfo.setConnectorInfos(connectorInfos);
|
// equipmentInfos1.add(cdEquipmentInfo);
|
// stationInfo.setEquipmentInfos1(equipmentInfos1);
|
// ChengDuJianGuanUtil.notificationStationInfo(null, stationInfo);
|
// }
|
|
|
|
// public static void main(String[] args) {
|
// NotificationStationFee notificationStationFee = new NotificationStationFee();
|
// notificationStationFee.setOperatorID(OperatorID);
|
// notificationStationFee.setStationID("241231001");
|
// List<ChargeFeeDetail> chargeFeeDetail = new ArrayList<>();
|
// ChargeFeeDetail chargeFeeDetail1 = new ChargeFeeDetail();
|
// chargeFeeDetail1.setEquipmentType(1);
|
// chargeFeeDetail1.setStartTime("00:00");
|
// chargeFeeDetail1.setEndTime("23:59");
|
// chargeFeeDetail1.setElectricityFee(new BigDecimal(0.49));
|
// chargeFeeDetail1.setServiceFee(new BigDecimal(0.51));
|
// chargeFeeDetail.add(chargeFeeDetail1);
|
// notificationStationFee.setChargeFeeDetail(chargeFeeDetail);
|
// ChengDuJianGuanUtil.notificationStationFee(null, notificationStationFee);
|
// }
|
|
|
// public static void main(String[] args) {
|
// ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
|
// connectorStatusInfo.setOperatorID(OperatorID);
|
// connectorStatusInfo.setEquipmentOwnerID("M01234567");
|
// connectorStatusInfo.setStationID("241231001");
|
// connectorStatusInfo.setEquipmentID("2024123100001001");
|
// connectorStatusInfo.setEquipmentClassification(1);
|
// connectorStatusInfo.setConnectorID("202412310000100101");
|
// connectorStatusInfo.setStatus(1);
|
// connectorStatusInfo.setParkStatus(0);
|
// connectorStatusInfo.setLookStatus(0);
|
// ChengDuJianGuanUtil.notificationStationStatus(null, connectorStatusInfo);
|
// }
|
|
|
// public static void main(String[] args) {
|
// ConnectorChargeStatusInfo connectorChargeStatusInfo = new ConnectorChargeStatusInfo();
|
// connectorChargeStatusInfo.setOperatorID(OperatorID);
|
// connectorChargeStatusInfo.setEquipmentOwnerID("M01234567");
|
// connectorChargeStatusInfo.setStationID("241231001");
|
// connectorChargeStatusInfo.setEquipmentID("2024123100001001");
|
// connectorChargeStatusInfo.setStartChargeSeq("0000001");
|
// connectorChargeStatusInfo.setConnectorID("202412310000100101");
|
// connectorChargeStatusInfo.setConnectorStatus(3);
|
// connectorChargeStatusInfo.setOrderStatus(2);
|
// connectorChargeStatusInfo.setCurrentA(new BigDecimal(120));
|
// connectorChargeStatusInfo.setVoltageA(new BigDecimal(120));
|
// connectorChargeStatusInfo.setSoc(new BigDecimal(60));
|
// connectorChargeStatusInfo.setStartTime("2025-11-26 13:00:00");
|
// connectorChargeStatusInfo.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
// connectorChargeStatusInfo.setPushTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
// connectorChargeStatusInfo.setLastPushTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
// connectorChargeStatusInfo.setTotalPower(new BigDecimal(20));
|
// connectorChargeStatusInfo.setElecMoney(new BigDecimal(22));
|
// connectorChargeStatusInfo.setSeviceMoney(new BigDecimal(28));
|
// connectorChargeStatusInfo.setTotalMoney(new BigDecimal(50));
|
// connectorChargeStatusInfo.setSoc1(new BigDecimal(62));
|
// ChengDuJianGuanUtil.notificationConnectorChargeStatus(null, connectorChargeStatusInfo);
|
// }
|
|
|
|
// public static void main(String[] args) {
|
// CDOrderInfo orderInfo = new CDOrderInfo();
|
// orderInfo.setOperatorID(OperatorID);
|
// orderInfo.setEquipmentOwnerID("M01234567");
|
// orderInfo.setStationID("241231001");
|
// orderInfo.setEquipmentID("2024123100001001");
|
// orderInfo.setConnectorID("202412310000100101");
|
// orderInfo.setEquipmentClassification(1);
|
// orderInfo.setStartChargeSeq("0000001");
|
// orderInfo.setUserChargeType(1);
|
// orderInfo.setMoney(new BigDecimal(50));
|
// orderInfo.setElectMoney(new BigDecimal(22));
|
// orderInfo.setServiceMoney(new BigDecimal(28));
|
// orderInfo.setElect(new BigDecimal(20));
|
// orderInfo.setStartTime("2025-11-26 13:00:00");
|
// orderInfo.setEndTime("2025-11-26 15:50:00");
|
// orderInfo.setPaymentAmount(new BigDecimal(50));
|
// orderInfo.setPayChannel(2);
|
// orderInfo.setStopReason(1);
|
// orderInfo.setPower(new BigDecimal(120));
|
// orderInfo.setChargeLast(10200);
|
// orderInfo.setMeterValueStart(new BigDecimal(0));
|
// orderInfo.setMeterValueEnd(new BigDecimal(0));
|
// orderInfo.setPushTimeStamp(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
//
|
// List<ChargeDetail> chargeDetails = new ArrayList<>();
|
// ChargeDetail chargeDetail = new ChargeDetail();
|
// chargeDetail.setDetailStartTime("2025-11-26 13:00:00");
|
// chargeDetail.setDetailEndTime("2025-11-26 15:50:00");
|
// chargeDetail.setElecPrice(new BigDecimal(0.49));
|
// chargeDetail.setSevicePrice(new BigDecimal(0.51));
|
// chargeDetail.setDetailPower(new BigDecimal(20));
|
// chargeDetail.setDetailElecMoney(new BigDecimal(22));
|
// chargeDetail.setDetailSeviceMoney(new BigDecimal(28));
|
// chargeDetails.add(chargeDetail);
|
// orderInfo.setChargeDetails(chargeDetails);
|
// ChengDuJianGuanUtil.notificationOrderInfo(null, orderInfo);
|
// }
|
|
|
|
/**
|
* 请求联联,获取token
|
*/
|
public static String getToken(RedisTemplate redisTemplate) {
|
try {
|
Object o = redisTemplate.opsForValue().get("LLTOKEN");
|
if(null != o){
|
return o.toString();
|
}
|
// 请求data
|
Map<String, String> data = new HashMap<>();
|
data.put("OperatorID", OperatorID);
|
data.put("OperatorSecret", OperatorSecret);
|
String dataJson = JacksonUtils.toJson(data);
|
|
// 加密
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String strData = Encodes.encodeBase64(encryptText);
|
|
Map<String, String> request = new LinkedHashMap<>();
|
request.put("OperatorID", OperatorID);
|
request.put("Data", strData);
|
request.put("TimeStamp", System.currentTimeMillis() + "");
|
request.put("Seq", "0001");
|
|
// 生成签名
|
String sig = GBSignUtils.sign(request, SigSecret);
|
request.put("Sig", sig);
|
String tokenRequest = JacksonUtils.toJson(request);
|
log.info("【成都监管-获取token】请求参数明文:" + dataJson);
|
log.info("【成都监管-获取token】请求参数密文:" + tokenRequest);
|
String response = HttpUtil.post(requestUrl + "/query_token", tokenRequest);
|
EDIMessagePack result = JacksonUtils.toObj(response, EDIMessagePack.class);
|
log.info("【成都监管-获取token】响应参数密文:" + response);
|
if (result.getRet() == 0) {
|
//解密data
|
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64((String) result.getData()),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String dataStr = new String(plainText, "UTF-8");
|
log.info("【成都监管-获取token】响应参数明文:" + dataStr);
|
JSONObject jsonObject = JSON.parseObject(dataStr);
|
|
Map<String, String> resultMap = (Map<String, String>) JSON.parse(dataStr);
|
String accessToken = jsonObject.getString("AccessToken");
|
Long tokenAvailableTime = jsonObject.getLong("TokenAvailableTime");
|
redisTemplate.opsForValue().set("LLTOKEN", accessToken, Long.valueOf(tokenAvailableTime), TimeUnit.SECONDS);
|
return accessToken;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.info("【成都监管-获取token】获取Token异常", e);
|
}
|
return null;
|
}
|
|
|
/**
|
* 充电站信息变化推送
|
* @param redisTemplate
|
* @param stationInfo
|
*/
|
public static void notificationStationInfo(RedisTemplate redisTemplate, CDStationInfo stationInfo){
|
try {
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("StationInfo", stationInfo);
|
String dataJson = JacksonUtils.toJson(jsonObject);
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String strData = Encodes.encodeBase64(encryptText);
|
|
Map<String, String> request = new LinkedHashMap<>();
|
request.put("OperatorID", OperatorID);
|
request.put("Data", strData);
|
request.put("TimeStamp", System.currentTimeMillis() + "");
|
request.put("Seq", "0001");
|
|
//生成签名
|
String sig = GBSignUtils.sign(request, SigSecret);
|
request.put("Sig", sig);
|
String notifyStartResult = JacksonUtils.toJson(request);
|
log.info("【成都监管-充电站信息变化推送】请求参数明文:" + dataJson);
|
log.info("【成都监管-充电站信息变化推送】请求参数密文:" + notifyStartResult);
|
String response = HttpRequestUtil.httpPost(requestUrl + "/notification_stationInfo", notifyStartResult, "Bearer " + getToken(redisTemplate));
|
log.info("【成都监管-充电站信息变化推送】响应参数密文:" + response);
|
EDIMessagePack result = JacksonUtils.toObj(response, EDIMessagePack.class);
|
if(0 != result.getRet()){
|
log.info("【成都监管-充电站信息变化推送】失败:", result.getMsg());
|
return;
|
}
|
String rData = result.getData().toString();
|
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String plainData = new String(plainText, "UTF-8");
|
log.info("【成都监管-充电站信息变化推送】响应参数明文:" + plainData);
|
|
}catch (Exception e){
|
e.printStackTrace();
|
log.info("【成都监管-充电站信息变化推送】异常:" + e.getMessage());
|
}
|
}
|
|
|
/**
|
* 站点费率变化推送
|
* @param redisTemplate
|
* @param notificationStationFee
|
*/
|
public static void notificationStationFee(RedisTemplate redisTemplate, NotificationStationFee notificationStationFee){
|
try {
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("StationFee", notificationStationFee);
|
String dataJson = JacksonUtils.toJson(jsonObject);
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String strData = Encodes.encodeBase64(encryptText);
|
|
Map<String, String> request = new LinkedHashMap<>();
|
request.put("OperatorID", OperatorID);
|
request.put("Data", strData);
|
request.put("TimeStamp", System.currentTimeMillis() + "");
|
request.put("Seq", "0001");
|
|
//生成签名
|
String sig = GBSignUtils.sign(request, SigSecret);
|
request.put("Sig", sig);
|
String notifyStartResult = JacksonUtils.toJson(request);
|
log.info("【成都监管-站点费率变化推送】请求参数明文:" + dataJson);
|
log.info("【成都监管-站点费率变化推送】请求参数密文:" + notifyStartResult);
|
String response = HttpRequestUtil.httpPost(requestUrl + "/notification_stationFee", notifyStartResult, "Bearer " + getToken(redisTemplate));
|
log.info("【成都监管-站点费率变化推送】响应参数密文:" + response);
|
EDIMessagePack result = JacksonUtils.toObj(response, EDIMessagePack.class);
|
if(0 != result.getRet()){
|
log.info("【成都监管-站点费率变化推送】失败:", result.getMsg());
|
return;
|
}
|
String rData = result.getData().toString();
|
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String plainData = new String(plainText, "UTF-8");
|
log.info("【成都监管-站点费率变化推送】响应参数明文:" + plainData);
|
|
}catch (Exception e){
|
e.printStackTrace();
|
log.info("【成都监管-站点费率变化推送】异常:" + e.getMessage());
|
}
|
}
|
|
|
/**
|
* 设备状态变化推送
|
* @param redisTemplate
|
* @param connectorStatusInfo
|
*/
|
public static void notificationStationStatus(RedisTemplate redisTemplate, ConnectorStatusInfo connectorStatusInfo){
|
try {
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("ConnectorStatusInfo", connectorStatusInfo);
|
String dataJson = JacksonUtils.toJson(jsonObject);
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String strData = Encodes.encodeBase64(encryptText);
|
Map<String, String> request = new LinkedHashMap<>();
|
request.put("OperatorID", OperatorID);
|
request.put("Data", strData);
|
request.put("TimeStamp", System.currentTimeMillis() + "");
|
request.put("Seq", "0001");
|
|
//生成签名
|
String sig = GBSignUtils.sign(request, SigSecret);
|
request.put("Sig", sig);
|
String notifyStartResult = JacksonUtils.toJson(request);
|
log.info("【成都监管-设备状态变化推送】请求参数明文:" + dataJson);
|
log.info("【成都监管-设备状态变化推送】请求参数密文:" + notifyStartResult);
|
String response = HttpRequestUtil.httpPost(requestUrl + "/notification_stationStatus", notifyStartResult, "Bearer " + getToken(redisTemplate));
|
log.info("【成都监管-设备状态变化推送】响应参数密文:" + response);
|
EDIMessagePack result = JacksonUtils.toObj(response, EDIMessagePack.class);
|
if(0 != result.getRet()){
|
log.info("【成都监管-站点费率变化推送】失败:", result.getMsg());
|
return;
|
}
|
String rData = result.getData().toString();
|
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String plainData = new String(plainText, "UTF-8");
|
log.info("【成都监管-设备状态变化推送】响应参数明文:" + plainData);
|
|
}catch (Exception e){
|
e.printStackTrace();
|
log.info("【成都监管-设备状态变化推送】异常:" + e.getMessage());
|
}
|
}
|
|
|
/**
|
* 设备充电中状态变化推送
|
* @param redisTemplate
|
* @param connectorChargeStatusInfo
|
*/
|
public static void notificationConnectorChargeStatus(RedisTemplate redisTemplate, ConnectorChargeStatusInfo connectorChargeStatusInfo){
|
try {
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("ConnectorChargeStatusInfo", connectorChargeStatusInfo);
|
String dataJson = JacksonUtils.toJson(jsonObject);
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String strData = Encodes.encodeBase64(encryptText);
|
Map<String, String> request = new LinkedHashMap<>();
|
request.put("OperatorID", OperatorID);
|
request.put("Data", strData);
|
request.put("TimeStamp", System.currentTimeMillis() + "");
|
request.put("Seq", "0001");
|
|
//生成签名
|
String sig = GBSignUtils.sign(request, SigSecret);
|
request.put("Sig", sig);
|
String notifyStartResult = JacksonUtils.toJson(request);
|
log.info("【成都监管-设备充电中状态变化推送】请求参数明文:" + dataJson);
|
log.info("【成都监管-设备充电中状态变化推送】请求参数密文:" + notifyStartResult);
|
String response = HttpRequestUtil.httpPost(requestUrl + "/notification_connector_charge_status", notifyStartResult, "Bearer " + getToken(redisTemplate));
|
log.info("【成都监管-设备充电中状态变化推送】响应参数密文:" + response);
|
EDIMessagePack result = JacksonUtils.toObj(response, EDIMessagePack.class);
|
if(0 != result.getRet()){
|
log.info("【成都监管-站点费率变化推送】失败:", result.getMsg());
|
return;
|
}
|
String rData = result.getData().toString();
|
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String plainData = new String(plainText, "UTF-8");
|
log.info("【成都监管-设备充电中状态变化推送】响应参数明文:" + plainData);
|
|
}catch (Exception e){
|
e.printStackTrace();
|
log.info("【成都监管-设备充电中状态变化推送】异常:" + e.getMessage());
|
}
|
}
|
|
|
/**
|
* 订单信息推送
|
* @param redisTemplate
|
* @param orderInfo
|
*/
|
public static void notificationOrderInfo(RedisTemplate redisTemplate, CDOrderInfo orderInfo){
|
try {
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("OrderInfo", orderInfo);
|
String dataJson = JacksonUtils.toJson(jsonObject);
|
byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String strData = Encodes.encodeBase64(encryptText);
|
Map<String, String> request = new LinkedHashMap<>();
|
request.put("OperatorID", OperatorID);
|
request.put("Data", strData);
|
request.put("TimeStamp", System.currentTimeMillis() + "");
|
request.put("Seq", "0001");
|
|
//生成签名
|
String sig = GBSignUtils.sign(request, SigSecret);
|
request.put("Sig", sig);
|
String notifyStartResult = JacksonUtils.toJson(request);
|
log.info("【成都监管-订单信息推送】请求参数明文:" + dataJson);
|
log.info("【成都监管-订单信息推送】请求参数密文:" + notifyStartResult);
|
String response = HttpRequestUtil.httpPost(requestUrl + "/notification_orderInfo", notifyStartResult, "Bearer " + getToken(redisTemplate));
|
log.info("【成都监管-订单信息推送】响应参数密文:" + response);
|
EDIMessagePack result = JacksonUtils.toObj(response, EDIMessagePack.class);
|
if(0 != result.getRet()){
|
log.info("【成都监管-站点费率变化推送】失败:", result.getMsg());
|
return;
|
}
|
String rData = result.getData().toString();
|
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData),
|
DataSecret.getBytes(), DataSecretIV.getBytes());
|
String plainData = new String(plainText, "UTF-8");
|
log.info("【成都监管-订单信息推送】响应参数明文:" + plainData);
|
|
}catch (Exception e){
|
e.printStackTrace();
|
log.info("【成都监管-订单信息推送】异常:" + e.getMessage());
|
}
|
}
|
}
|