From 6fab0d097477c7eee9fe7641114f97767eb1b881 Mon Sep 17 00:00:00 2001 From: panshuling321 Date: Thu, 1 Sep 2022 13:36:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=AE=9E=E6=97=B6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=94=B5=E9=87=8F=E5=92=8C=E9=87=91=E9=A2=9D=E4=B8=BA?= =?UTF-8?q?0=E5=88=99=E5=81=9C=E6=AD=A2=E5=85=85=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xhpc/pp/logic/BmsReqChargerOutputDataLogic.java | 6 ++---- .../java/com/xhpc/pp/logic/RealtimeDataLogic.java | 13 ++++++++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsReqChargerOutputDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsReqChargerOutputDataLogic.java index 795f9d35..57f75311 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsReqChargerOutputDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/BmsReqChargerOutputDataLogic.java @@ -43,12 +43,10 @@ public class BmsReqChargerOutputDataLogic implements ServiceLogic { BmsReqChargerOutputData orderData = objectMapper.convertValue(req, BmsReqChargerOutputData.class); String orderNo = (String) req.get("orderNo"); - String orderKey = "order:".concat(orderNo); - Map cacheOrder = REDIS.getCacheMap(orderKey); + String orderKey = "order:".concat(orderNo).concat(".bms"); CacheBmsReqChargerOutputData cacheBmsReqChargerOutputData = translate(orderData); - cacheOrder.put("bmsData", cacheBmsReqChargerOutputData); - REDIS.setCacheMap(orderKey, cacheOrder); + REDIS.setCacheObject(orderKey, cacheBmsReqChargerOutputData); pileOrderService.pileRimeOrderBms(orderNo); XhpcDeviceMessage deviceMessage = new XhpcDeviceMessage(); 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 0bfa7aeb..9b1457b9 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 @@ -132,7 +132,7 @@ public class RealtimeDataLogic implements ServiceLogic { } Integer balance = (Integer) cacheOrder.get("initBalance"); CacheRealtimeData cacheRealtimeData = translate(realtimeData); - balance -= cacheRealtimeData.getAmountCharged(); + cacheRealtimeData.setCreateTime(DateUtil.now()); String lord = orderkey.concat(".lord"); REDIS.setCacheObject(lord, cacheRealtimeData); @@ -147,6 +147,7 @@ public class RealtimeDataLogic implements ServiceLogic { cacheOrder.put("em1", calcem1(cdhex)); } } + balance -= cacheRealtimeData.getAmountCharged(); cacheOrder.put("rbalance", balance); cacheOrder.put("remainingTime", tr); cacheOrder.put("status", statusplain); @@ -201,6 +202,16 @@ public class RealtimeDataLogic implements ServiceLogic { cacheOrder.put("lordiss", "false"); pileOrderService.pileStop(orderNo, 4, "订单实时数据恢复"); } + // 判断金额和电量为0, 防止白嫖 + if(realtimeDataList.size() > 3){ + if(cacheRealtimeData.getAmountCharged() < 0.1 && cacheRealtimeData.getChargingDegree() < 0.1){ + log.error("实时数据充电度数:{}, 实时充电金额为: {},订单[{}] 自动结束", + cacheRealtimeData.getChargingDegree(), + cacheRealtimeData.getAmountCharged(), + cacheRealtimeData.getOrderNo()); + chargingController.stopCharging(pileNo, gunId, default_version); + } + } } } } else {