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 {