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