From 77a6abf2247ce1899def3ba34b793f52748458fa Mon Sep 17 00:00:00 2001 From: Lemon Date: Mon, 15 May 2023 14:53:54 +0800 Subject: [PATCH] update --- .../com/jsowell/common/util/DateUtils.java | 3 + .../common/util/lianlian/HttpRequestUtil.java | 57 ++++++++++++ .../service/impl/LianLianServiceImpl.java | 93 +++++++++---------- 3 files changed, 103 insertions(+), 50 deletions(-) diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java index 82bd3702a..028e4bef8 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java @@ -193,6 +193,9 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { long chargingTime = DateUtils.intervalTime("2023-02-24 16:00:00", "2023-02-24 17:03:06"); System.out.println(chargingTime); + + String dateToStr = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date()); + System.out.println(dateToStr); } /** diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/lianlian/HttpRequestUtil.java b/jsowell-common/src/main/java/com/jsowell/common/util/lianlian/HttpRequestUtil.java index 847e26aa2..8a05d8cab 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/lianlian/HttpRequestUtil.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/lianlian/HttpRequestUtil.java @@ -1,5 +1,9 @@ package com.jsowell.common.util.lianlian; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson2.JSON; +import com.google.common.collect.Maps; +import com.jsowell.common.util.DateUtils; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; @@ -10,6 +14,9 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; +import java.util.Date; +import java.util.Map; + /** * @author 联联充电 */ @@ -81,5 +88,55 @@ public class HttpRequestUtil { return null; } + /** + * 联联平台发送请求 + * + * @param token 联联平台令牌 + * @param data 要传输的JsonString格式数据 + * @param url 请求地址 + * @param dataSecret 消息密钥 + * @param dataSecretIV 消息密钥初始化向量 + * @param operatorId 运营商id + * @param sigSecret 签名密钥 + * @return + */ + public static String sendPost(String token, String data, String url, String dataSecret, + String dataSecretIV, String operatorId, String sigSecret){ + //加密 + byte[] encryptText = Cryptos.aesEncrypt(data.getBytes(), + dataSecret.getBytes(), dataSecretIV.getBytes()); + String encryptData = Encodes.encodeBase64(encryptText); + System.out.println("加密数据:" + encryptData); + Map params = Maps.newLinkedHashMap(); + params.put("OperatorID", operatorId); + params.put("Data", encryptData); + params.put("TimeStamp", DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date())); + params.put("Seq", "001"); + String sign = GBSignUtils.sign(params, sigSecret); + params.put("Sig", sign); + + String postData = JSON.toJSONString(params); + System.out.println("最终提交数据:" + postData); + + String hutoolRequest = HttpRequest.post(url).header("Authorization", "Bearer " + token).body(postData).execute().body(); + + System.out.println("接收到返回数据:" + hutoolRequest); + + Map map = (Map) JSON.parse(hutoolRequest); + + String rData = map.get("Data"); + + byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData), + dataSecret.getBytes(), dataSecretIV.getBytes()); + String plainData = ""; + try { + plainData = new String(plainText, "UTF-8"); + } catch (Exception e) { + e.printStackTrace(); + } + + System.out.println("解密数据:" + plainData); + return plainData; + } } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java index ea6b4c007..67bf5443c 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java @@ -17,10 +17,7 @@ import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.*; import com.jsowell.common.util.http.HttpUtils; -import com.jsowell.common.util.lianlian.Cryptos; -import com.jsowell.common.util.lianlian.Encodes; -import com.jsowell.common.util.lianlian.GBSignUtils; -import com.jsowell.common.util.lianlian.LianLianUtils; +import com.jsowell.common.util.lianlian.*; import com.jsowell.netty.command.ykc.StartChargingCommand; import com.jsowell.netty.command.ykc.StopChargingCommand; import com.jsowell.netty.service.yunkuaichong.YKCPushCommandService; @@ -157,63 +154,59 @@ public class LianLianServiceImpl implements LianLianService { // 调用联联平台接口 String url = "http://testdataexchange.evchargeonline.com:82/shevcs/v1/" + "notification_stationInfo"; - // String jsonString = JSON.toJSONString(info); - - // Gson gson = new Gson(); - // String gsonString = gson.toJson(info); - String jsonStr = JSONUtil.toJsonStr(info); - - // System.out.println("jsonString : " + jsonString); - // System.out.println("gsonString : " + gsonString); - System.out.println("jsonStr : " + jsonStr); - JSONObject data = new JSONObject(); data.put("StationInfo", jsonStr); String jsonString = JSONObject.toJSONString(data); System.out.println("jsonString : " + jsonString); - //加密 - byte[] encryptText = Cryptos.aesEncrypt(jsonString.getBytes(), - dto.getDataSecret().getBytes(), dto.getDataSecretIV().getBytes()); - String encryptData = Encodes.encodeBase64(encryptText); - System.out.println("加密数据:" + encryptData); + String result = HttpRequestUtil.sendPost(dto.getToken(), jsonString, url, dto.getDataSecret() + , dto.getDataSecretIV(), dto.getOperatorID(), dto.getSigSecret()); - Map params = Maps.newLinkedHashMap(); - params.put("OperatorID", dto.getOperatorID()); - params.put("Data", encryptData); - params.put("TimeStamp", "20230510145200"); - params.put("Seq", "001"); - String sign = GBSignUtils.sign(params, dto.getSigSecret()); - params.put("Sig", sign); + System.out.println(result); - String postData = JSON.toJSONString(params); - System.out.println("最终提交数据:" + postData); - - String hutoolRequest = HttpRequest.post(url).header("Authorization", "Bearer " + dto.getToken()).body(postData).execute().body(); - - System.out.println("接收到返回数据:" + hutoolRequest); - - Map map = (Map) JSON.parse(hutoolRequest); - - String rData = map.get("Data"); - - byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData), - dto.getDataSecret().getBytes(), dto.getDataSecretIV().getBytes()); - String plainData = ""; - try { - plainData = new String(plainText, "UTF-8"); - } catch (Exception e) { - e.printStackTrace(); - } - - System.out.println("解密数据:" + plainData); + // //加密 + // byte[] encryptText = Cryptos.aesEncrypt(jsonString.getBytes(), + // dto.getDataSecret().getBytes(), dto.getDataSecretIV().getBytes()); + // String encryptData = Encodes.encodeBase64(encryptText); + // System.out.println("加密数据:" + encryptData); + // + // Map params = Maps.newLinkedHashMap(); + // params.put("OperatorID", dto.getOperatorID()); + // params.put("Data", encryptData); + // params.put("TimeStamp", DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date())); + // params.put("Seq", "001"); + // String sign = GBSignUtils.sign(params, dto.getSigSecret()); + // params.put("Sig", sign); + // + // String postData = JSON.toJSONString(params); + // System.out.println("最终提交数据:" + postData); + // + // String hutoolRequest = HttpRequest.post(url).header("Authorization", "Bearer " + dto.getToken()).body(postData).execute().body(); + // + // System.out.println("接收到返回数据:" + hutoolRequest); + // + // Map map = (Map) JSON.parse(hutoolRequest); + // + // String rData = map.get("Data"); + // + // byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData), + // dto.getDataSecret().getBytes(), dto.getDataSecretIV().getBytes()); + // String plainData = ""; + // try { + // plainData = new String(plainText, "UTF-8"); + // } catch (Exception e) { + // e.printStackTrace(); + // } + // + // System.out.println("解密数据:" + plainData); } - public static void main(String[] args) throws Exception { - + public static void main(String[] args){ + BigDecimal bigDecimal = new BigDecimal("7").setScale(1, BigDecimal.ROUND_HALF_UP); + System.out.println(bigDecimal); } /** @@ -696,7 +689,7 @@ public class LianLianServiceImpl implements LianLianService { String pileSn = pileBasicInfo.getSn(); equipmentInfo.setEquipmentID(pileSn); - equipmentInfo.setManufacturerID(merchantInfo.getOrganizationCode()); + equipmentInfo.setManufacturerID("987654321"); equipmentInfo.setConstructionTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileBasicInfo.getCreateTime())); PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn);