From 4e8d126a6bbb93900425323edc4c07115fbf2e48 Mon Sep 17 00:00:00 2001 From: ZZ Date: Tue, 23 Nov 2021 15:13:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=96=B9=E8=AE=A2=E5=8D=95=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E5=89=8D=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evcs/api/QueryStartChargeController.java | 95 ++++++++++--------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java index 314163ac..f150ec28 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java @@ -42,7 +42,6 @@ public class QueryStartChargeController { String startChargeSeq = startChargeRequest.getStartChargeSeq(); String connectorID = startChargeRequest.getConnectorId(); String operatorId = startChargeSeq.substring(0, 9); - //Checking the operator whether it has its token. Optional authSecretTokenIn = authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenType(operatorId, "IN"); if (!authSecretTokenIn.isPresent()) { @@ -51,51 +50,61 @@ public class QueryStartChargeController { startChargeResponse.setStartChargeSeqStat(5); resp.setMsg("This 3rd has no token"); } else { - // invoke an order making interface(finished); - String plateNum = startChargeRequest.getPlateNum(); - plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum; - R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(), - startChargeRequest.getChargingAmt(), plateNum, 0, connectorID); - startChargeResponse.setStartChargeSeq(startChargeSeq); - startChargeResponse.setConnectorID(connectorID); - if (res.getCode() != 200) { - if (res.getCode() != 500) { - startChargeResponse.setFailReason(res.getCode()); + Map cacheGun = REDIS.getCacheMap("gun:".concat(connectorID)); + String terminalStatus = (String) cacheGun.get("vehicleGunStatus"); + String status = (String) cacheGun.get("status"); + if (!"空闲".equals(status)) { + resp.setMsg("终端状态异常:[".concat(status == null ? "未注册" : status).concat("]")); + resp.setRet("500"); + } else if ("否".equals(terminalStatus)) { + resp.setMsg("未插枪"); + resp.setRet("500"); + } else { + String plateNum = startChargeRequest.getPlateNum(); + plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum; + R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(), + startChargeRequest.getChargingAmt(), plateNum, 0, connectorID); + startChargeResponse.setStartChargeSeq(startChargeSeq); + startChargeResponse.setConnectorID(connectorID); + if (res.getCode() != 200) { + if (res.getCode() != 500) { + startChargeResponse.setFailReason(res.getCode()); + } else { + startChargeResponse.setFailReason(3); + } + startChargeResponse.setSuccStat(1); + startChargeResponse.setStartChargeSeqStat(4); } else { - startChargeResponse.setFailReason(3); + Map etOrderData = (Map) res.getData(); + EtOrderMapping etOrderMapping = new EtOrderMapping(); + etOrderMapping.setEvcsOrderNo(startChargeSeq); + etOrderMapping.setXhOrderNo(String.valueOf(etOrderData.get("orderNo"))); + etOrderMappingRepo.save(etOrderMapping); + startChargeResponse.setStartChargeSeqStat(1); + startChargeResponse.setSuccStat(0); + startChargeResponse.setFailReason(0); + //insert a gunStatusData to redis + Map pushOrder = new HashMap<>(); + //1 means starting. + pushOrder.put("startChargeSeqStat", 1); + String orderNo = String.valueOf(etOrderData.get("orderNo")); + pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq()); + pushOrder.put("connectorID", connectorID); + pushOrder.put("startTime", etOrderData.get("startTime")); + //0 means needs to be notified. + pushOrder.put("startChargeNotificationStat", 0); + //0 means needs to be notified. + pushOrder.put("chargeOrderInfoNotificationStat", 0); + pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9)); + REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder); } - startChargeResponse.setSuccStat(1); - startChargeResponse.setStartChargeSeqStat(4); - } else { - Map etOrderData = (Map) res.getData(); - EtOrderMapping etOrderMapping = new EtOrderMapping(); - etOrderMapping.setEvcsOrderNo(startChargeSeq); - etOrderMapping.setXhOrderNo(String.valueOf(etOrderData.get("orderNo"))); - etOrderMappingRepo.save(etOrderMapping); - startChargeResponse.setStartChargeSeqStat(1); - startChargeResponse.setSuccStat(0); - startChargeResponse.setFailReason(0); - //insert a gunStatusData to redis - Map pushOrder = new HashMap<>(); - //1 means starting. - pushOrder.put("startChargeSeqStat", 1); - String orderNo = String.valueOf(etOrderData.get("orderNo")); - pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq()); - pushOrder.put("connectorID", connectorID); - pushOrder.put("startTime", etOrderData.get("startTime")); - //0 means needs to be notified. - pushOrder.put("startChargeNotificationStat", 0); - //0 means needs to be notified. - pushOrder.put("chargeOrderInfoNotificationStat", 0); - pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9)); - REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder); + if (res.getCode() != 200) { + resp.setRet(EvcsConst.RET_FAIL); + } else { + resp.setRet(EvcsConst.RET_SUCC); + } + resp.setMsg(res.getMsg()); } - if (res.getCode() != 200) { - resp.setRet(EvcsConst.RET_FAIL); - } else { - resp.setRet(EvcsConst.RET_SUCC); - } - resp.setMsg(res.getMsg()); } resp.setData(JSONUtil.toJSONString(startChargeResponse)); return resp;