From 755559739a434a4fcce53b37a5a489ee66ec0323 Mon Sep 17 00:00:00 2001 From: little-cat-sweet <851891179@qq.com> Date: Fri, 29 Oct 2021 13:04:32 +0800 Subject: [PATCH] =?UTF-8?q?todo:=20=E5=AE=8C=E5=96=84=E7=9B=91=E7=AE=A1?= =?UTF-8?q?=E4=B8=8E=E7=AC=AC=E4=B8=89=E6=96=B9=E6=8E=A8=E9=80=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evcs/notification/CoreDispatcher.java | 5 +- .../NotificationEquipChargeStatusTask.java | 2 +- .../NotificationStationStatusTask.java | 2 +- .../NotificationStopChargeResultTask.java | 123 ++++++++++-------- 4 files changed, 70 insertions(+), 62 deletions(-) diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CoreDispatcher.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CoreDispatcher.java index e4f9c5ff..9cfcc925 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CoreDispatcher.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CoreDispatcher.java @@ -44,7 +44,7 @@ public class CoreDispatcher { public static final okhttp3.MediaType JSON = okhttp3.MediaType.parse("application/json; charset=utf-8"); @Transactional - public String ok(Object object, String url, String operatorId3irdpty, String operatorID) { + public String ok(Object object, String url, AuthSecretToken authSecretTokenOut, String operatorID) { okhttp3.RequestBody body = null; OkHttpClient.Builder builder = new OkHttpClient.Builder(); @@ -58,9 +58,8 @@ public class CoreDispatcher { .writeTimeout(10, TimeUnit.SECONDS); Calendar cal = Calendar.getInstance(); String bearerToken = null; - AuthSecretToken authSecretTokenOut = getAuthSecretTokenOut(operatorId3irdpty, operatorID); if (authSecretTokenOut == null) { - String error = String.format("secret/token not found for [%s/%s](opId3pt/opId)", operatorId3irdpty, operatorID); + String error = String.format("secret/token not found for [%s/%s](opId3pt/opId)", authSecretTokenOut.getOperatorId3irdpty(), operatorID); throw new RuntimeException(error); } try { diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java index c39afe81..eb9fe765 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java @@ -169,7 +169,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher { CommonRequest commonRequest = new CommonRequest<>(); commonRequest.setOperatorId(operatorIdEvcs); commonRequest.setData(data); - String responseBody = ok(commonRequest, "/notification_equip_charge_status", "765367656", operatorIdEvcs); + String responseBody = ok(commonRequest, "/notification_equip_charge_status", authSecretTokenOut, operatorIdEvcs); EquipChargeStatusRes equipChargeStatusRes = DTOJsonHelper.parseResponseData(responseBody, EquipChargeStatusRes.class, authSecretTokenOut); if (equipChargeStatusRes != null && equipChargeStatusRes.getSuccStat() != 0) { diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStationStatusTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStationStatusTask.java index 8aed14e6..bc5369f0 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStationStatusTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStationStatusTask.java @@ -88,7 +88,7 @@ public class NotificationStationStatusTask extends CoreDispatcher { CommonRequest commonRequest = new CommonRequest<>(); commonRequest.setOperatorId(connectorStatusInfo.getOperatorID()); commonRequest.setData(data); - String responseBody = ok(commonRequest, "/notification_stationStatus", "765367656", + String responseBody = ok(commonRequest, "/notification_stationStatus", authSecretTokenOut, connectorStatusInfo.getOperatorID()); EvcsStatus status = DTOJsonHelper.parseResponseData(responseBody, EvcsStatus.class, authSecretTokenOut); if (status == null || status.getStatus() != 0) { diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStopChargeResultTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStopChargeResultTask.java index f9fa6728..2a6a60e6 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStopChargeResultTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationStopChargeResultTask.java @@ -2,9 +2,12 @@ package com.xhpc.evcs.notification; import com.fasterxml.jackson.core.JsonProcessingException; import com.xhpc.common.data.redis.CacheOrderData; +import com.xhpc.evcs.domain.AuthSecretToken; import com.xhpc.evcs.dto.ChargeResultRequest; import com.xhpc.evcs.dto.CommonRequest; +import com.xhpc.evcs.jpa.AuthSecretTokenRepository; import com.xhpc.evcs.utils.JSONUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import java.io.IOException; @@ -12,9 +15,13 @@ import java.util.List; import java.util.Map; import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS; +import static com.xhpc.evcs.domain.AuthSecretToken.SECRET_TOKEN_TYPE_OUT; public class NotificationStopChargeResultTask extends CoreDispatcher { + @Autowired + private AuthSecretTokenRepository authSecretTokenRepository; + @Scheduled(fixedRate = 1000 * 20) public void run() throws IOException { @@ -36,74 +43,76 @@ public class NotificationStopChargeResultTask extends CoreDispatcher { */ public void notifyService() { - //20秒检测一次Redis中的数据状态,并推送 + List authSecretTokenOutList = authSecretTokenRepository.findBySecretTokenType(SECRET_TOKEN_TYPE_OUT); + for (AuthSecretToken authSecretTokenOut : authSecretTokenOutList) { + //20秒检测一次Redis中的数据状态,并推送 - //获取Redis中的所有订单状态数据 - List orderStatusList = REDIS.getCacheList("orderStatus:*"); + //获取Redis中的所有订单状态数据 + List orderStatusList = REDIS.getCacheList("orderStatus:*"); - //使用for循环遍历所有订单状态数据找到已结束的充电订单 - for (int i = 0; i < orderStatusList.size() - 1; i++) { + //使用for循环遍历所有订单状态数据找到已结束的充电订单 + for (int i = 0; i < orderStatusList.size() - 1; i++) { - //获取订单数据 - Map orderStatus = (Map) orderStatusList.get(i); - //判断该订单数据是否已经被推送过了,如果已经推送过了,则不在推送 - Boolean isPush = (Boolean) orderStatus.get("isPush"); - if (!isPush) { - //获取内部的充电订单号 - String orderNo = (String) orderStatus.get("orderNo"); - //通过充电订单号,获取指定的订单 - Map order = REDIS.getCacheMap("order:" + orderNo); - //判断订单充电状态 - String status = (String) order.get("status"); - if (status.equals("已结束")) { - //获取指定的订单的数据 - CacheOrderData orderData = (CacheOrderData) order.get("orderData"); - //获取充电设备接口编码 - String pileNo = orderData.getPileNo(); - String gunId = orderData.getGunId(); - String gunSerial = pileNo + gunId; - //设置成功标识 - int succStat = 0; - //设置停止失败原因 - int failReason = 0; + //获取订单数据 + Map orderStatus = (Map) orderStatusList.get(i); + //判断该订单数据是否已经被推送过了,如果已经推送过了,则不在推送 + Boolean isPush = (Boolean) orderStatus.get("isPush"); + if (!isPush) { + //获取内部的充电订单号 + String orderNo = (String) orderStatus.get("orderNo"); + //通过充电订单号,获取指定的订单 + Map order = REDIS.getCacheMap("order:" + orderNo); + //判断订单充电状态 + String status = (String) order.get("status"); + if (status.equals("已结束")) { + //获取指定的订单的数据 + CacheOrderData orderData = (CacheOrderData) order.get("orderData"); + //获取充电设备接口编码 + String pileNo = orderData.getPileNo(); + String gunId = orderData.getGunId(); + String gunSerial = pileNo + gunId; + //设置成功标识 + int succStat = 0; + //设置停止失败原因 + int failReason = 0; - //使用指定包装类封装数据 - ChargeResultRequest chargeResultRequest = new ChargeResultRequest(); - chargeResultRequest.setStartChargeSeq(null); - chargeResultRequest.setStartChargeSeqStat(status); - chargeResultRequest.setConnectorID(gunSerial); - chargeResultRequest.setSuccStat(succStat); - chargeResultRequest.setFailReason(failReason); - //将其转换为json - String jsonData = null; - try { - jsonData = JSONUtil.toJSONString(chargeResultRequest); - } catch (JsonProcessingException e) { - e.printStackTrace(); - System.out.println("转换成Json失败"); + //使用指定包装类封装数据 + ChargeResultRequest chargeResultRequest = new ChargeResultRequest(); + chargeResultRequest.setStartChargeSeq(null); + chargeResultRequest.setStartChargeSeqStat(status); + chargeResultRequest.setConnectorID(gunSerial); + chargeResultRequest.setSuccStat(succStat); + chargeResultRequest.setFailReason(failReason); + //将其转换为json + String jsonData = null; + try { + jsonData = JSONUtil.toJSONString(chargeResultRequest); + } catch (JsonProcessingException e) { + e.printStackTrace(); + System.out.println("转换成Json失败"); + } + + //将包装类塞入要发送的请求的包装类中 + //泛型为放入json数据的实体类类型 + CommonRequest chargeResultRequestCommonRequest = new CommonRequest<>(); + chargeResultRequestCommonRequest.setData(jsonData); + + //推送数据 + //operatorId第三方的 我们场站运营商的 + ok(chargeResultRequestCommonRequest, "/notification_stop_charge_result", authSecretTokenOut, null); + + // TODO: 2021/10/21 设置该订单数据已经被推送的标识符 + orderStatus.put("isPush", true); + // 获取对应的orderStatus的Key + //REDIS.setCacheMap("",orderStatus); } - //将包装类塞入要发送的请求的包装类中 - //泛型为放入json数据的实体类类型 - CommonRequest chargeResultRequestCommonRequest = new CommonRequest<>(); - chargeResultRequestCommonRequest.setData(jsonData); + // TODO:如果充电状态为停止中: - //推送数据 - //operatorId第三方的 我们场站运营商的 - ok(chargeResultRequestCommonRequest, "/notification_stop_charge_result", "765367656", null); - - // TODO: 2021/10/21 设置该订单数据已经被推送的标识符 - orderStatus.put("isPush", true); - // 获取对应的orderStatus的Key - //REDIS.setCacheMap("",orderStatus); } - - // TODO:如果充电状态为停止中: - } } - } }