From 34e5f7d88b447c9e1e9f0b8a1e1cf55775e561e5 Mon Sep 17 00:00:00 2001 From: ZZ Date: Tue, 10 Aug 2021 19:03:11 +0800 Subject: [PATCH] =?UTF-8?q?todo:=20=E4=BD=99=E9=A2=9D=E4=B8=8D=E8=B6=B3?= =?UTF-8?q?=E5=8F=91=E7=9F=AD=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/data/down/StartChargingData.java | 11 +++++++++ .../data/up/BalanceUpdateReplyData.java | 11 +++++++++ .../pp/controller/ChargingController.java | 6 +++++ .../pp/logic/BalanceUpdateReplyDataLogic.java | 2 +- .../xhpc/pp/logic/BmsChargingDataLogic.java | 4 ++-- .../com/xhpc/pp/logic/RealtimeDataLogic.java | 24 +++++++++++++------ .../java/com/xhpc/pp/logic/RegisterLogic.java | 2 +- 7 files changed, 49 insertions(+), 11 deletions(-) diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java index 7818ef12..4ed08207 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java @@ -13,6 +13,7 @@ public class StartChargingData { private String gunId; //枪号 @Min(value = 5, message = "账户余额不能小于5") private Integer balance; //账户余额(精度:小数点后2位)=实际金额(元)×100 + private String tel; private String logicCardNo = "0000000000000000"; //逻辑卡号 16进制,无需补零 private String physicCardNo = "0000000000000000"; //物理卡号 同上 private String version = "0A"; //协议版本号(0A) @@ -57,6 +58,16 @@ public class StartChargingData { this.balance = balance; } + public String getTel() { + + return tel; + } + + public void setTel(String tel) { + + this.tel = tel; + } + public String getLogicCardNo() { return logicCardNo; diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/up/BalanceUpdateReplyData.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/up/BalanceUpdateReplyData.java index 5774df0a..b3c1cabb 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/up/BalanceUpdateReplyData.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/up/BalanceUpdateReplyData.java @@ -3,6 +3,7 @@ package com.xhpc.common.data.up; public class BalanceUpdateReplyData extends BaseData { private String pileNo; //桩号 + private String gunId; //枪号 private String cardNo; //物理卡号 private String modifyResult; //修改结果 @@ -16,6 +17,16 @@ public class BalanceUpdateReplyData extends BaseData { this.pileNo = pileNo; } + public String getGunId() { + + return gunId; + } + + public void setGunId(String gunId) { + + this.gunId = gunId; + } + public String getCardNo() { return cardNo; diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java index 3de8c686..bd39a23e 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java @@ -201,6 +201,12 @@ public class ChargingController { String seq = seqHex(skey); byte[] msg = translateStart(startChargingData, seq); clientHandler.sendClientBinary(msg); + Integer balance = startChargingData.getBalance(); + String orderkey = "order:".concat(startChargingData.getOrderNo()); + Map cacheOrder = REDIS.getCacheMap(orderkey); + cacheOrder.put("balance", balance); + cacheOrder.put("tel", startChargingData.getTel()); + REDIS.setCacheMap(orderkey, cacheOrder); return R.ok(); } catch (IOException e) { log.error("send message failed. " + e.getMessage(), e); diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BalanceUpdateReplyDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BalanceUpdateReplyDataLogic.java index e789ebc7..6cf7eadf 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BalanceUpdateReplyDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BalanceUpdateReplyDataLogic.java @@ -24,7 +24,7 @@ public class BalanceUpdateReplyDataLogic implements ServiceLogic { Map req = sp.getParameters(); ObjectMapper objectMapper = new ObjectMapper(); BalanceUpdateReplyData balanceUpdateReplyData = objectMapper.convertValue(req, BalanceUpdateReplyData.class); - //todo + log.info("balanceUpdateResult({}) [{}]", balanceUpdateReplyData.getPileNo().concat(balanceUpdateReplyData.getGunId()), balanceUpdateReplyData.getModifyResult()); return new ServiceResult(false); } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsChargingDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsChargingDataLogic.java index 3954f4f9..ad6e037d 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsChargingDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsChargingDataLogic.java @@ -31,9 +31,9 @@ public class BmsChargingDataLogic implements ServiceLogic { String orderNo = bmsChargingData.getOrderNo(); String orderkey = "order:".concat(orderNo); Map cacheOrder = REDIS.getCacheMap(orderkey); - List bmsChargingDataList = (List) cacheOrder.getOrDefault("bmsChargings", new ArrayList<>()); + List bmsChargingDataList = (List) cacheOrder.getOrDefault("bmsChargingData", new ArrayList<>()); bmsChargingDataList.add(bmsChargingData); - cacheOrder.put("bmsChargings", bmsChargingDataList); + cacheOrder.put("bmsChargingData", bmsChargingDataList); REDIS.setCacheMap(orderkey, cacheOrder); return new ServiceResult(false); } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java index 37770d7b..ef45e343 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java @@ -62,16 +62,26 @@ public class RealtimeDataLogic implements ServiceLogic { String orderNo = realtimeData.getOrderNo(); String orderkey = "order:".concat(orderNo); if (!orderNo.equals("00000000000000000000000000000000")) { - Map order = REDIS.getCacheMap(orderkey); - List realtimeDataList = (List) order.get("realtimeDataList"); + Map cacheOrder = REDIS.getCacheMap(orderkey); + List realtimeDataList = (List) cacheOrder.get("realtimeDataList"); if (realtimeDataList == null) { realtimeDataList = new ArrayList<>(); } - realtimeDataList.add(translate(realtimeData)); - order.put("soc", realtimeData.getSoc()); - order.put("status", statusplain); - order.put("realtimeDataList", realtimeDataList); - REDIS.setCacheMap(orderkey, order); + Integer balance = (Integer) cacheOrder.get("balance"); + CacheRealtimeData cacheRealtimeData = translate(realtimeData); + if ((balance - cacheRealtimeData.getAmountCharged()) < 500) { + String alerted = (String) cacheOrder.get("alerted"); + String tel = (String) cacheOrder.get("tel"); + if (alerted == null && tel != null) { + // todo send sms + cacheOrder.put("alerted", "true"); + } + } + realtimeDataList.add(cacheRealtimeData); + cacheOrder.put("soc", realtimeData.getSoc()); + cacheOrder.put("status", statusplain); + cacheOrder.put("realtimeDataList", realtimeDataList); + REDIS.setCacheMap(orderkey, cacheOrder); } return new ServiceResult(false); } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RegisterLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RegisterLogic.java index aa405969..a160d20c 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RegisterLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RegisterLogic.java @@ -40,7 +40,7 @@ public class RegisterLogic implements ServiceLogic { resultCode = ServiceResult.FAIL; } else if (!EarlierBeanConf.ifreg(pileNo)) { log.info("pile already registered ({}) ", pileNo); - hexCode = ServiceResult.HEX_FAIL; //todo we may need optimize it + hexCode = ServiceResult.HEX_FAIL; resultCode = ServiceResult.FAIL; } else { String pkey = "pile:".concat(pileNo);