From a6c3b8e6eb7a0d48649cfa93487532e62c353d37 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 24 八月 2023 15:03:55 +0800 Subject: [PATCH] 修改app从融云获取用户在线状态(有状态变化再更新数据库) --- ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java | 57 ++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 34 insertions(+), 23 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java index c7d9fb5..385f1d5 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java @@ -49,6 +49,7 @@ import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -501,6 +502,7 @@ //region 澶勭悊閫氱敤鍏夌數鎶ヨ ArdAlarmCamera ardAlarmCamera = JSONObject.parseObject(message, ArdAlarmCamera.class); ardAlarmCamera.setId(IdUtils.simpleUUID()); + ardAlarmCamera.setCreateTime(new Date()); int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera); if (aac > 0) { log.debug("camera鍏ュ簱鎴愬姛锛�" + ardAlarmCamera); @@ -678,7 +680,6 @@ log.info("鐩告満:" + cameraId + "鏈紑鍚姤璀﹀紩瀵煎姛鑳�"); return; } - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); GuideTask guideTask = new GuideTask(); //鐩告満ID @@ -736,35 +737,45 @@ */ private String getNearbyCamera(double[] targetPosition) { String minDistanceCameraId = ""; - //鑾峰彇鎵�鏈夊ぇ鍏夌數 - List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras("1")); - //缁熻鎵�鏈夊ぇ鍏夌數鍙鑼冨洿鍐呬笌鎶ヨ鐐圭殑璺濈 - Map<String, Double> distanceMap = new HashMap<>(); - Map<String, Integer> guideMap = new HashMap<>(); - for (ArdCameras camera : ardCamerasList) { - double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; - double distance = GisTool.getDistance(targetPosition, camPosition); - if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { - distanceMap.put(camera.getId(), distance); - if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) { - camera.setCamAlarmGuideEnable(0); + try { + //鑾峰彇鎵�鏈夊ぇ鍏夌數 + List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras("1")); + //缁熻鎵�鏈夊ぇ鍏夌數鍙鑼冨洿鍐呬笌鎶ヨ鐐圭殑璺濈 + Map<String, Double> distanceMap = new HashMap<>(); + Map<String, Integer> guideMap = new HashMap<>(); + for (ArdCameras camera : ardCamerasList) { + if (camera.getCamMaxVisibleDistance() == null) { + continue; } - guideMap.put(camera.getId(), camera.getCamAlarmGuideEnable()); + double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; + double distance = GisTool.getDistance(targetPosition, camPosition); + if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { + distanceMap.put(camera.getId(), distance); + if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) { + camera.setCamAlarmGuideEnable(0); + } + guideMap.put(camera.getId(), camera.getCamAlarmGuideEnable()); + } + } + if (distanceMap.size() > 0) { + log.debug("灏濊瘯鏌ユ壘鏈�杩戝厜鐢�"); + //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D + minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); + log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId); + if (guideMap.get(minDistanceCameraId).equals(0)) { + log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); + return " "; + } } } - if (distanceMap.size() > 0) { - log.debug("灏濊瘯鏌ユ壘鏈�杩戝厜鐢�"); - //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D - minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); - log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId); - if (guideMap.get(minDistanceCameraId).equals(0)) { - log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); - return " "; - } + catch (Exception ex) + { + log.error("鑾峰彇闄勮繎寮�鍚姤璀﹀紩瀵煎姛鑳藉厜鐢靛紓甯�:"+ex.getMessage()); } return minDistanceCameraId; } + /** * 闆疯揪寮曞鍏ラ槦 */ -- Gitblit v1.9.3