From ab266215587f1697779be0accb2434edb7427ded Mon Sep 17 00:00:00 2001 From: chents <78666437@qq.com> Date: Wed, 17 May 2023 14:53:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E6=96=AD=E8=BD=A6=E8=BE=86=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=BA=E7=A9=BA,websocket=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/modules/job/CarInfoTask.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springblade/modules/job/CarInfoTask.java b/src/main/java/org/springblade/modules/job/CarInfoTask.java index 26ed18b..58610d9 100644 --- a/src/main/java/org/springblade/modules/job/CarInfoTask.java +++ b/src/main/java/org/springblade/modules/job/CarInfoTask.java @@ -77,9 +77,17 @@ public class CarInfoTask { public void parseCarInfo() { //从redis获取数据 CarInfoVO info = null; + WebSocketMessage message = new WebSocketMessage(); String allCarData = CarInfoCache.getAllCarData(); JSONObject json = JSON.parseObject(allCarData); String carNo = CarInfoCache.getPushCarNo(); + HashMap statusMap = new HashMap<>(); + if (Func.isEmpty(carNo)) { + statusMap.put("status","offline"); + message.setContent(JSON.toJSONString(statusMap)); + websocketService.broadcast(message); + return; + } JSONArray carInfoList = json.getJSONArray("bus"); for (Object o : carInfoList) { JSONObject carInfo = (JSONObject) o; @@ -88,6 +96,12 @@ public class CarInfoTask { info = BeanUtil.copy(carInfo, CarInfoVO.class); } } + if (Func.isEmpty(info)) { + statusMap.put("status","offline"); + message.setContent(JSON.toJSONString(statusMap)); + websocketService.broadcast(message); + return; + } List siteList = SiteListCache.getSiteList(info.getLinename(), info.getUpordown()); int nextSiteIdx = Integer.parseInt(info.getInorder()); @@ -209,7 +223,6 @@ public class CarInfoTask { map.put("data", resultMap); String messageJson = JSON.toJSONString(map); - WebSocketMessage message = new WebSocketMessage(); message.setTitle(WEB); message.setCode(200); message.setContent(messageJson); @@ -224,8 +237,13 @@ public class CarInfoTask { public void getCarSpeed() { String carNo = CarInfoCache.getPushCarNo(); CarInfoVO info = carInfoService.getCarInfo(carNo); + WebSocketMessage message = new WebSocketMessage(); + HashMap statusMap = new HashMap<>(); if (Func.isEmpty(info)) { - throw new RuntimeException("未获取到车辆信息, 请检查车是否已掉线"); + statusMap.put("status","offline"); + message.setContent(JSON.toJSONString(statusMap)); + websocketService.broadcast(message); + return; } Map speedMap = new HashMap<>(); @@ -236,7 +254,6 @@ public class CarInfoTask { dataMap.put("msgType", SPEED); dataMap.put("data", speedMap); - WebSocketMessage message = new WebSocketMessage(); message.setTitle(WEB); message.setCode(200); message.setContent(JSON.toJSONString(dataMap));