From 527f4fd86eafb17dea8b9589b269da531299a6e5 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期五, 02 二月 2024 15:12:08 +0800
Subject: [PATCH] 三一车辆追踪线程加入sessionId修改提交

---
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java |   39 ++++++++++++++++++---------------------
 1 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
index 70c35e3..fced250 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
@@ -934,15 +934,22 @@
 
     @Override
     public Results chaseCarByCarId(String usersId, String carId, String cycle) {
+        String sessionId = "";
+        for(String key : ONLINE_USER_SESSIONS.keySet()){
+            if(key.startsWith(usersId + "_")){
+                sessionId = key;
+            }
+        }
+        if(sessionId.equals("")){//娌℃湁session灏辫繑鍥炲け璐�
+            return Results.error("杩借釜澶辫触");
+        }
         try {
-            /*Map<String,Map<String,Object>> map = new HashMap();
-            map.put(carId,new HashMap());
-            PositionContainer.getUserPositionMap().put(usersId,map);*/
             if (cycle.equals("0")) {
                 if (userCarTimerMap.get(usersId) != null) {
                     userCarTimerMap.get(usersId).cancel();
                     userCarTimerMap.remove(usersId);
                     PositionContainer.getUserPositionMap().remove(usersId);
+                    System.out.println("鍋滄杩借釜");
                 }
                 return Results.succeed("鍋滄杩借釜");
             } else {
@@ -954,7 +961,7 @@
                     map.put(carId, new HashMap());
                     PositionContainer.getUserPositionMap().put(usersId, map);
                     Date date = new Date();
-                    Timer carPositionTimer = new Timer();//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃�
+                    Timer carPositionTimer = new Timer(sessionId);//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃�
                     TimerTask carPositionTask = new TimerTask() {
                         @Override
                         public void run() {
@@ -963,18 +970,13 @@
                                 if (position.size() != 0) {
                                     Map<String, Map<String, Object>> data = new HashMap();
                                     data.put("31000", position);
-                                    //WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(usersId), JSON.toJSONString(data));
-                                    String sessionId = "";
-                                    for(String key : ONLINE_USER_SESSIONS.keySet()){
-                                        if(key.startsWith(usersId + "_")){
-                                            sessionId = key;
-                                        }
-                                    }
-                                    if(sessionId.equals("")){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮
+                                    String sessionId = Thread.currentThread().getName();
+                                    if(ONLINE_USER_SESSIONS.get(sessionId) == null){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮
                                         if (userCarTimerMap.get(usersId) != null) {
                                             userCarTimerMap.get(usersId).cancel();
                                             userCarTimerMap.remove(usersId);
                                             PositionContainer.getUserPositionMap().remove(usersId);
+                                            System.out.println("鐢ㄦ埛绂荤嚎锛屽仠姝㈣拷韪�");
                                         }
                                     }
                                     WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sessionId), JSON.toJSONString(data));
@@ -990,7 +992,7 @@
                     map.put(carId, new HashMap());
                     PositionContainer.getUserPositionMap().put(usersId, map);
                     Date date = new Date();
-                    Timer carPositionTimer = new Timer();//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃�
+                    Timer carPositionTimer = new Timer(sessionId);//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃�
                     TimerTask carPositionTask = new TimerTask() {
                         @Override
                         public void run() {
@@ -999,18 +1001,13 @@
                                 if (position.size() != 0) {
                                     Map<String, Map<String, Object>> data = new HashMap();
                                     data.put("31000", position);
-                                    //WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(usersId), JSON.toJSONString(data));
-                                    String sessionId = "";
-                                    for(String key : ONLINE_USER_SESSIONS.keySet()){
-                                        if(key.startsWith(usersId + "_")){
-                                            sessionId = key;
-                                        }
-                                    }
-                                    if(sessionId.equals("")){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮
+                                    String sessionId = Thread.currentThread().getName();
+                                    if(ONLINE_USER_SESSIONS.get(sessionId) == null){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮
                                         if (userCarTimerMap.get(usersId) != null) {
                                             userCarTimerMap.get(usersId).cancel();
                                             userCarTimerMap.remove(usersId);
                                             PositionContainer.getUserPositionMap().remove(usersId);
+                                            System.out.println("鐢ㄦ埛绂荤嚎锛屽仠姝㈣拷韪�");
                                         }
                                     }
                                     WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sessionId), JSON.toJSONString(data));

--
Gitblit v1.9.3