From 2c97f9adf61f846edbce4ef458400416f0003ff8 Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期五, 28 七月 2023 23:16:31 +0800
Subject: [PATCH] 修改exe程序调用方式 修改推送app实时位置为传参开启
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java | 7 +
/dev/null | 37 -----
ard-work/src/main/java/com/ruoyi/utils/websocket/service/ChatServerEndpoint.java | 117 ++++++++++++----
ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java | 2
ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java | 97 +++++++++++++
ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java | 58 ++++++++
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java | 48 +++++-
7 files changed, 287 insertions(+), 79 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java
index 7294c55..fc5f294 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java
@@ -23,7 +23,7 @@
import java.util.stream.Collectors;
/**
- * @Description: app浣嶇疆鎺ㄩ��
+ * @Description: app浣嶇疆鎺ㄩ�侊紙寮冪敤锛�
* @ClassName: AppPositionPush
* @Author: 鍒樿嫃涔�
* @Date: 2023骞�07鏈�25鏃�16:07:04
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
new file mode 100644
index 0000000..5fad187
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java
@@ -0,0 +1,97 @@
+package com.ruoyi.app.position.service.impl;
+
+import com.ruoyi.app.position.domain.ArdAppPosition;
+import com.ruoyi.app.position.service.IArdAppPositionService;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.utils.websocket.util.WebSocketUtils;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName AppPositionPushService
+ * @Description: app浣嶇疆鎺ㄩ��
+ * @Author 鍒樿嫃涔�
+ * @Date 2023/7/28 19:18
+ * @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<>();//涓存椂鏁版嵁 姣忎釜鐢ㄦ埛鍏宠仈
+ public static Map<String, Timer> userTimerMap = new HashMap();//瀹氭椂鍣� 姣忎釜鐢ㄦ埛鍏宠仈
+ public static Map<String, Timer> tempUserTimerMap = new HashMap();//涓存椂瀹氭椂鍣� 姣忎釜鐢ㄦ埛鍏宠仈
+ public static List<ArdAppPosition> initDataList;
+
+ static {
+ initDataList = getAppPositionList();
+ }
+
+ //鍚姩鍏ㄥ眬瀹氭椂鍣�
+ public static Timer startTimerTask(String userId, Integer period) {
+ Timer timer = new Timer();
+ timer.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ List<ArdAppPosition> data = dataMap.get(userId);
+ if (data.size() > 0) {
+ Map newMap = new HashMap<>();
+ newMap.put("50000", data);
+ WebSocketUtils.sendMessage(WebSocketUtils.ONLINE_USER_SESSIONS.get(userId), newMap);
+ }
+ }
+ }, 0, period);
+
+ return timer;
+ }
+
+ //鍚姩寮曞瀹氭椂鍣�
+ public static Timer startTempTimerTask(String userId, Integer period) {
+ Timer timer = new Timer();
+ timer.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ //寰幆
+ List<ArdAppPosition> data = tempDataMap.get(userId);
+ if (data.size() > 0) {
+ Map newMap = new HashMap<>();
+ newMap.put("50000", data);
+ WebSocketUtils.sendMessage(WebSocketUtils.ONLINE_USER_SESSIONS.get(userId), newMap);
+ }
+ }
+ }, 0, period);
+
+ return timer;
+ }
+
+ //鍋滄瀹氭椂鍣�
+ public static void stopTimerTask(Timer timer) {
+ if (timer != null) {
+ timer.cancel();
+ log.info("鍋滄杩愯");
+ }
+ }
+
+ //鏌ヨ鎵�鏈塧pp鐢ㄦ埛鐨勪綅缃俊鎭�
+ public static List<ArdAppPosition> getAppPositionList() {
+ List<ArdAppPosition> ArdAppPositions = new ArrayList<>();
+ ISysUserService sysUserService = SpringUtils.getBean(ISysUserService.class);
+ //鑾峰彇鎵�鏈塧pp鐢ㄦ埛
+ List<SysUser> list = sysUserService.selectAllAppUserList(new SysUser());
+ List<SysUser> onlineList = list.stream()
+ .filter(obj -> obj.getAppOnlineState().equals("1"))
+ .collect(Collectors.toList());
+ for (SysUser sysUser : onlineList) {
+ IArdAppPositionService ardAppPositionService = SpringUtils.getBean(IArdAppPositionService.class);
+ ArdAppPosition ardAppPosition = ardAppPositionService.selectLastArdAppPositionByUserId(sysUser.getUserId());
+ ArdAppPositions.add(ardAppPosition);
+ }
+ return ArdAppPositions;
+ }
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
index b28201b..31a8fe7 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
@@ -15,8 +15,10 @@
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
@@ -43,20 +45,42 @@
if (Platform.isWindows()) {
String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + "mediamtx.exe";
String ymlPath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + "mediamtx.yml";
- try {
- // 鏋勫缓鍚姩鍛戒护锛屼娇鐢╟md /c start鍛戒护鏉ュ惎鍔ㄥ彲鎵ц绋嬪簭骞舵樉绀哄懡浠ゆ彁绀虹绐楀彛
- String[] cmd = {"cmd", "/c", "start", exePath,ymlPath};
- ProcessBuilder processBuilder = new ProcessBuilder(cmd);
- processBuilder.redirectErrorStream(true); // 灏嗛敊璇緭鍑洪噸瀹氬悜鍒版爣鍑嗚緭鍑�
- Process process = processBuilder.start();
- // 濡傛灉浣犳兂绛夊緟绋嬪簭瀹屾垚
- int exitCode = process.waitFor();
- } catch (IOException | InterruptedException e) {
- e.printStackTrace();
- }
+ // 鏋勫缓鍚姩鍛戒护锛屼娇鐢╟md /c start鍛戒护鏉ュ惎鍔ㄥ彲鎵ц绋嬪簭骞舵樉绀哄懡浠ゆ彁绀虹绐楀彛
+// String[] cmd = {"cmd", "/c", "start", exePath,ymlPath};
+// ProcessBuilder processBuilder = new ProcessBuilder(cmd);
+// processBuilder.redirectErrorStream(true); // 灏嗛敊璇緭鍑洪噸瀹氬悜鍒版爣鍑嗚緭鍑�
+// Process process = processBuilder.start();
+ // 濡傛灉浣犳兂绛夊緟绋嬪簭瀹屾垚
+ // int exitCode = process.waitFor();
+ List<String> cmd = new ArrayList<>();
+ cmd.add(exePath);
+ cmd.add(ymlPath);
+ commandStart(cmd);
+
}
}
-
+ public static void commandStart(List<String> command) {
+ command.forEach(v -> System.out.print(v + " "));
+ System.out.println();
+ System.out.println();
+ ProcessBuilder builder = new ProcessBuilder();
+ //姝e父淇℃伅鍜岄敊璇俊鎭悎骞惰緭鍑�
+ builder.redirectErrorStream(true);
+ builder.command(command);
+ //寮�濮嬫墽琛屽懡浠�
+ Process process = null;
+ try {
+ process = builder.start();
+ //濡傛灉浣犳兂鑾峰彇鍒版墽琛屽畬鍚庣殑淇℃伅锛岄偅涔堜笅闈㈢殑浠g爜涔熸槸闇�瑕佺殑
+// String line = "";
+// BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
+// while ((line = br.readLine()) != null) {
+// System.out.println(line);
+// }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
@Override
public String addPath(String name, String rtspPath, String mode) {
String rtspUrl = "rtsp://" + mediamtxHost + ":7554/";
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
new file mode 100644
index 0000000..299d2e3
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
@@ -0,0 +1,58 @@
+package com.ruoyi.media.service.impl;
+
+import com.sun.jna.Platform;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @ClassName: webrtcService
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�07鏈�26鏃�13:43:07
+ * @Version: 1.0
+ **/
+@Component
+public class WebrtcService {
+ @PostConstruct
+ public void init() {
+ if (Platform.isWindows()) {
+ // String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + "setup.bat";
+ // String[] cmd = {"cmd", "/c", "start", exePath};
+ String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + "webrtc-streamer.exe";
+ List<String> cmd = new ArrayList<>();
+ cmd.add(exePath);
+ cmd.add("-o");
+ cmd.add("-H127.0.0.1:8000");
+ commandStart(cmd);
+ }
+ }
+ public static void commandStart(List<String> command) {
+ command.forEach(v -> System.out.print(v + " "));
+ System.out.println();
+ System.out.println();
+ ProcessBuilder builder = new ProcessBuilder();
+ //姝e父淇℃伅鍜岄敊璇俊鎭悎骞惰緭鍑�
+ builder.redirectErrorStream(true);
+ builder.command(command);
+ //寮�濮嬫墽琛屽懡浠�
+ Process process = null;
+ try {
+ process = builder.start();
+// //濡傛灉浣犳兂鑾峰彇鍒版墽琛屽畬鍚庣殑淇℃伅锛岄偅涔堜笅闈㈢殑浠g爜涔熸槸闇�瑕佺殑
+// String line = "";
+// BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
+// while ((line = br.readLine()) != null) {
+// System.out.println(line);
+// }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/webrtcService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/webrtcService.java
deleted file mode 100644
index a4bf6a4..0000000
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/webrtcService.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.ruoyi.media.service.impl;
-
-import com.sun.jna.Platform;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * @Description:
- * @ClassName: webrtcService
- * @Author: 鍒樿嫃涔�
- * @Date: 2023骞�07鏈�26鏃�13:43:07
- * @Version: 1.0
- **/
-@Component
-public class webrtcService {
- @PostConstruct
- public void init() {
- if (Platform.isWindows()) {
- String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + "setup.bat";
-
- try {
- // 鏋勫缓鍚姩鍛戒护锛屼娇鐢╟md /c start鍛戒护鏉ュ惎鍔ㄥ彲鎵ц绋嬪簭骞舵樉绀哄懡浠ゆ彁绀虹绐楀彛
- String[] cmd = {"cmd", "/c", "start", exePath};
- ProcessBuilder processBuilder = new ProcessBuilder(cmd);
- processBuilder.redirectErrorStream(true); // 灏嗛敊璇緭鍑洪噸瀹氬悜鍒版爣鍑嗚緭鍑�
- Process process = processBuilder.start();
- // 濡傛灉浣犳兂绛夊緟绋嬪簭瀹屾垚
- int exitCode = process.waitFor();
- } catch (IOException | InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
-}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/websocket/service/ChatServerEndpoint.java b/ard-work/src/main/java/com/ruoyi/utils/websocket/service/ChatServerEndpoint.java
index f4186b2..6050250 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/websocket/service/ChatServerEndpoint.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/websocket/service/ChatServerEndpoint.java
@@ -4,6 +4,7 @@
import com.ruoyi.app.position.domain.ArdAppPosition;
import com.ruoyi.app.position.service.IArdAppPositionService;
import com.ruoyi.app.position.service.impl.AppPositionPush;
+import com.ruoyi.app.position.service.impl.AppPositionPushService;
import com.ruoyi.app.position.service.impl.ArdAppPositionServiceImpl;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -18,10 +19,7 @@
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -36,45 +34,93 @@
@Slf4j(topic = "websocket")
@ServerEndpoint("/websocket/{userId}")
public class ChatServerEndpoint {
-
@OnOpen
public void openSession(@PathParam("userId") String userId, Session session) {
WebSocketUtils.ONLINE_USER_SESSIONS.put(userId, session);
String message = "鐢ㄦ埛[" + userId + "] 鎴愬姛杩炴帴锛�";
log.info("鐢ㄦ埛鐧诲綍锛�" + message);
WebSocketUtils.sendMessage(session, message);
- //姣忎釜鐢ㄦ埛杩炴帴鏃讹紝鍚姩鍒濆鎵�鏈塧pp鐢ㄦ埛浣嶇疆鍙戦��
- AppPositionPush.initDataMap.put(userId,AppPositionPush.getAppPositionList());
- AppPositionPush.initPushTask(userId,session,3000);
+ //region 鏃ф柟娉�
+// //姣忎釜鐢ㄦ埛杩炴帴鏃讹紝鍚姩鍒濆鎵�鏈塧pp鐢ㄦ埛浣嶇疆鍙戦��
+// AppPositionPush.initDataMap.put(userId,AppPositionPush.getAppPositionList());
+// AppPositionPush.initPushTask(userId,session,3000);
+ //endregion
}
@OnMessage
public void onMessage(@PathParam("userId") String userId, String message) {
log.info("鏀跺埌娑堟伅锛�" + message);
Session session = WebSocketUtils.ONLINE_USER_SESSIONS.get(userId);
- // WebSocketUtils.sendMessage(session, message);
+ WebSocketUtils.sendMessage(session, message);
// sendMessageAll("鐢ㄦ埛[" + userid + "] : " + message);
// 鏍规嵁鐢ㄦ埛鏂扮殑棰戠巼閲嶆柊璋冩暣瀹氭椂浠诲姟
- Map<String,Object> map = JSONObject.parseObject(message, Map.class);
- if(map.size()>0) {
- Integer frequency = (Integer)map.get("frequency");
+ 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.initDataList);
+ 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");
- 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()
+ if (frequency > 0) {
+ List<ArdAppPosition> List = AppPositionPushService.initDataList.stream()
.filter(obj -> !obj.getUserId().equals(uId))
- .collect(Collectors.toList());
- dataMap.put(userId,appPositionList);
+ .collect(Collectors.toList());//鍘婚櫎寮曞鍚庣殑list
+ AppPositionPushService.dataMap.put(userId,List);
+
+ List<ArdAppPosition> tempList = AppPositionPushService.initDataList.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.initDataList);
+ AppPositionPushService.dataMap.put(userId, newList);
+ Timer timer = AppPositionPushService.tempUserTimerMap.get(userId);
+ AppPositionPushService.stopTimerTask(timer);
+ AppPositionPushService.tempUserTimerMap.remove(userId);
+ AppPositionPushService.tempDataMap.remove(userId);
}
- else {
- //鎺ユ敹鍒伴鐜囩瓑浜�0锛屽睘浜庨噴鏀惧紩瀵硷紝鑾峰彇鍒板叏閮╝pp鐢ㄦ埛鐨勪綅缃甃ist
- dataMap.put(userId,AppPositionPush.getAppPositionList());
- }
- AppPositionPush.initDataMap.putAll(dataMap);//鏇存柊鍒濆浼氳瘽榛樿鏁版嵁map
- AppPositionPush.startLocationPushTask(userId,session,uId, frequency);//寮�鍚柊浠诲姟
+ //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
}
}
@@ -83,12 +129,25 @@
//褰撳墠鐨凷ession 绉婚櫎
WebSocketUtils.ONLINE_USER_SESSIONS.remove(userId);
// //骞朵笖閫氱煡鍏朵粬浜哄綋鍓嶇敤鎴峰凡缁忕寮�鑱婂ぉ瀹や簡
- String message="鐢ㄦ埛[" + userId + "] 鏂紑杩炴帴锛�";
+ String message = "鐢ㄦ埛[" + userId + "] 鏂紑杩炴帴锛�";
// sendMessage(session,message);
- log.info("娑堟伅锛�"+message);
+ log.info("娑堟伅锛�" + message);
try {
session.close();
- AppPositionPush.stopLocationPushTask(session);
+ //鍋滄鍏ㄥ眬鎺ㄩ��
+ 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);
+ // AppPositionPush.stopLocationPushTask(session);//鏃ф柟娉�
} catch (IOException e) {
log.error("onClose error", e);
}
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java
index e4b8c25..aa5a322 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java
@@ -4,6 +4,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.rongcloud.service.RongCloudService;
import com.ruoyi.system.service.ISysUserService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -20,6 +21,7 @@
* @Version: 1.0
**/
@Component("RongCloudTask")
+@Slf4j
public class RongCloudTask {
@Resource
@@ -29,6 +31,7 @@
public void getAppUserOnlineStateTask()
{
+ try{
List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
if(SysUserList.size()>0) {
for (SysUser sysUser : SysUserList) {
@@ -40,6 +43,10 @@
}
sysUserService.updateUserProfile(sysUser);
}
+ }}
+ catch (Exception ex)
+ {
+ log.error("铻嶄簯鍦ㄧ嚎鎺ュ彛寮傚父锛�"+ex.getMessage());
}
}
}
--
Gitblit v1.9.3