From 57c673aa3e83677bcf5d30b4b45d06bae6609db8 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期四, 08 八月 2024 16:14:40 +0800
Subject: [PATCH] 优化:获取会话

---
 ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java |  117 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 55 insertions(+), 62 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java
index b2f0b67..d60f957 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java
@@ -21,6 +21,7 @@
  * @Version 1.0
  * {"enabled":false,"frequency":1000,"userId":"69cf75f289424a48ba10cf33fa324206"}
  */
+@Slf4j
 public class AppPositionPushService {
     public static Map<String, List<ArdAppPosition>> dataMap = new HashMap<>();//甯歌鏁版嵁 姣忎釜鐢ㄦ埛鍏宠仈
     public static Map<String, List<ArdAppPosition>> tempDataMap = new HashMap<>();//涓存椂鏁版嵁 姣忎釜鐢ㄦ埛鍏宠仈
@@ -121,73 +122,65 @@
 
     //鎺ユ敹澶勭悊鍣�
     public static void messageHandler(String userId, String message) {
-        Map<String, Object> map = JSONObject.parseObject(message, Map.class);
-        if (map.size() > 0) {
-            Boolean enabled = (Boolean) map.get("enabled");
-            if (enabled) {
-                //鍚姩鍏ㄥ眬鎺ㄩ��
-                List<ArdAppPosition> newList = new ArrayList<>(AppPositionPushService.getAppPositionList());
-                AppPositionPushService.dataMap.put(userId, newList);
-                if (!AppPositionPushService.userTimerMap.containsKey(userId)) {
-                    Timer timer = AppPositionPushService.startTimerTask(userId, 3000);
-                    AppPositionPushService.userTimerMap.put(userId, timer);//灏嗗畾鏃跺櫒鍏宠仈鐢ㄦ埛
+        try {
+            Map<String, Object> map = JSONObject.parseObject(message, Map.class);
+            if (map.size() > 0) {
+                Boolean enabled = (Boolean) map.get("enabled");
+                if(enabled==null)
+                {
+                    return;
                 }
-            } else {
-                //鍋滄鍏ㄥ眬鎺ㄩ��
-                if (AppPositionPushService.userTimerMap.containsKey(userId)) {
-                    Timer timer = AppPositionPushService.userTimerMap.get(userId);
+                if (enabled) {
+                    //鍚姩鍏ㄥ眬鎺ㄩ��
+                    List<ArdAppPosition> newList = new ArrayList<>(AppPositionPushService.getAppPositionList());
+                    AppPositionPushService.dataMap.put(userId, newList);
+                    if (!AppPositionPushService.userTimerMap.containsKey(userId)) {
+                        Timer timer = AppPositionPushService.startTimerTask(userId, 3000);
+                        AppPositionPushService.userTimerMap.put(userId, timer);//灏嗗畾鏃跺櫒鍏宠仈鐢ㄦ埛
+                    }
+                } else {
+                    //鍋滄鍏ㄥ眬鎺ㄩ��
+                    if (AppPositionPushService.userTimerMap.containsKey(userId)) {
+                        Timer timer = AppPositionPushService.userTimerMap.get(userId);
+                        AppPositionPushService.stopTimerTask(timer);
+                        AppPositionPushService.userTimerMap.remove(userId);
+                    }
+                    if (AppPositionPushService.tempUserTimerMap.containsKey(userId)) {
+                        Timer temptimer = AppPositionPushService.tempUserTimerMap.get(userId);
+                        AppPositionPushService.stopTimerTask(temptimer);
+                        AppPositionPushService.tempUserTimerMap.remove(userId);
+                    }
+                    AppPositionPushService.dataMap.remove(userId);
+                    AppPositionPushService.tempDataMap.remove(userId);
+                }
+
+                Integer frequency = (Integer) map.get("frequency");
+                String uId = (String) map.get("userId");
+                if (frequency > 0) {
+                    List<ArdAppPosition> List = AppPositionPushService.getAppPositionList().stream()
+                            .filter(obj -> !obj.getUserId().equals(uId))
+                            .collect(Collectors.toList());//鍘婚櫎寮曞鍚庣殑list
+                    AppPositionPushService.dataMap.put(userId, List);
+
+                    List<ArdAppPosition> tempList = AppPositionPushService.getAppPositionList().stream()
+                            .filter(obj -> obj.getUserId().equals(uId))
+                            .collect(Collectors.toList());//鑾峰彇寮曞鐨刲ist
+                    AppPositionPushService.tempDataMap.put(userId, tempList);
+                    Timer timer = AppPositionPushService.startTempTimerTask(userId, frequency);
+                    AppPositionPushService.tempUserTimerMap.put(userId, timer);
+                } else {
+                    List<ArdAppPosition> newList = new ArrayList<>(AppPositionPushService.getAppPositionList());
+                    AppPositionPushService.dataMap.put(userId, newList);
+                    Timer timer = AppPositionPushService.tempUserTimerMap.get(userId);
                     AppPositionPushService.stopTimerTask(timer);
-                    AppPositionPushService.userTimerMap.remove(userId);
-                }
-                if (AppPositionPushService.tempUserTimerMap.containsKey(userId)) {
-                    Timer temptimer = AppPositionPushService.tempUserTimerMap.get(userId);
-                    AppPositionPushService.stopTimerTask(temptimer);
                     AppPositionPushService.tempUserTimerMap.remove(userId);
+                    AppPositionPushService.tempDataMap.remove(userId);
                 }
-                AppPositionPushService.dataMap.remove(userId);
-                AppPositionPushService.tempDataMap.remove(userId);
             }
-
-            Integer frequency = (Integer) map.get("frequency");
-            String uId = (String) map.get("userId");
-            if (frequency > 0) {
-                List<ArdAppPosition> List = AppPositionPushService.getAppPositionList().stream()
-                        .filter(obj -> !obj.getUserId().equals(uId))
-                        .collect(Collectors.toList());//鍘婚櫎寮曞鍚庣殑list
-                AppPositionPushService.dataMap.put(userId, List);
-
-                List<ArdAppPosition> tempList = AppPositionPushService.getAppPositionList().stream()
-                        .filter(obj -> obj.getUserId().equals(uId))
-                        .collect(Collectors.toList());//鑾峰彇寮曞鐨刲ist
-                AppPositionPushService.tempDataMap.put(userId, tempList);
-                Timer timer = AppPositionPushService.startTempTimerTask(userId, frequency);
-                AppPositionPushService.tempUserTimerMap.put(userId, timer);
-            } else {
-                List<ArdAppPosition> newList = new ArrayList<>(AppPositionPushService.getAppPositionList());
-                AppPositionPushService.dataMap.put(userId, newList);
-                Timer timer = AppPositionPushService.tempUserTimerMap.get(userId);
-                AppPositionPushService.stopTimerTask(timer);
-                AppPositionPushService.tempUserTimerMap.remove(userId);
-                AppPositionPushService.tempDataMap.remove(userId);
-            }
-            //region 鏃ф柟娉�
-//            Map<String, List<ArdAppPosition>> dataMap = new HashMap<>();
-//            List<ArdAppPosition> positionList = AppPositionPush.initDataMap.get(userId);//鑾峰彇褰撳墠鐢ㄦ埛鐨勯粯璁ゅ彂閫佺殑鏁版嵁map
-//            if(frequency>0)
-//            {
-//                //鎺ユ敹鍒伴鐜囧ぇ浜�0锛屽睘浜庣敵璇峰紩瀵硷紝鑾峰彇闄ゅ紩瀵煎鐨勫叾浠朼pp鐢ㄦ埛鐨勪綅缃甃ist
-//                List<ArdAppPosition> appPositionList = positionList.stream()
-//                        .filter(obj -> !obj.getUserId().equals(uId))
-//                        .collect(Collectors.toList());
-//                dataMap.put(userId,appPositionList);
-//            }
-//           else {
-//                //鎺ユ敹鍒伴鐜囩瓑浜�0锛屽睘浜庨噴鏀惧紩瀵硷紝鑾峰彇鍒板叏閮╝pp鐢ㄦ埛鐨勪綅缃甃ist
-//                dataMap.put(userId,AppPositionPush.getAppPositionList());
-//            }
-//            AppPositionPush.initDataMap.putAll(dataMap);//鏇存柊鍒濆浼氳瘽榛樿鏁版嵁map
-//            AppPositionPush.startLocationPushTask(userId,session,uId, frequency);//寮�鍚柊浠诲姟
-            //endregion
+        }
+        catch (Exception ex)
+        {
+            log.error(ex.getMessage());
         }
     }
 

--
Gitblit v1.9.3