From e94241fc70d1308ea88fec5b57e771c6ecad1cee Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 29 七月 2023 10:37:57 +0800
Subject: [PATCH] 推送app位置优化在线离线
---
ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPushService.java | 42 ++++++++++++++++++++++++++++--------------
1 files changed, 28 insertions(+), 14 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 5fad187..1fe8209 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
@@ -26,11 +26,7 @@
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 List<ArdAppPosition> initDataList;
//鍚姩鍏ㄥ眬瀹氭椂鍣�
public static Timer startTimerTask(String userId, Integer period) {
@@ -39,9 +35,10 @@
@Override
public void run() {
List<ArdAppPosition> data = dataMap.get(userId);
- if (data.size() > 0) {
+ List<ArdAppPosition> onlineData = isOnlie(data);
+ if (onlineData.size() > 0) {
Map newMap = new HashMap<>();
- newMap.put("50000", data);
+ newMap.put("50000", onlineData);
WebSocketUtils.sendMessage(WebSocketUtils.ONLINE_USER_SESSIONS.get(userId), newMap);
}
}
@@ -58,9 +55,10 @@
public void run() {
//寰幆
List<ArdAppPosition> data = tempDataMap.get(userId);
- if (data.size() > 0) {
+ List<ArdAppPosition> onlineData = isOnlie(data);
+ if (onlineData.size() > 0) {
Map newMap = new HashMap<>();
- newMap.put("50000", data);
+ newMap.put("50000", onlineData);
WebSocketUtils.sendMessage(WebSocketUtils.ONLINE_USER_SESSIONS.get(userId), newMap);
}
}
@@ -83,15 +81,31 @@
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) {
+// List<SysUser> onlineList = list.stream()
+// .filter(obj -> obj.getAppOnlineState().equals("1"))
+// .collect(Collectors.toList());
+ for (SysUser sysUser : list) {
IArdAppPositionService ardAppPositionService = SpringUtils.getBean(IArdAppPositionService.class);
ArdAppPosition ardAppPosition = ardAppPositionService.selectLastArdAppPositionByUserId(sysUser.getUserId());
- ArdAppPositions.add(ardAppPosition);
+ if (StringUtils.isNotNull(ardAppPosition)) {
+ ArdAppPositions.add(ardAppPosition);
+ }
}
return ArdAppPositions;
}
+ public static List<ArdAppPosition> isOnlie(List<ArdAppPosition> data) {
+ List<ArdAppPosition> onlineList = new ArrayList<>();
+ if (data.size() > 0) {
+ for (ArdAppPosition ardAppPosition : data) {
+ ISysUserService sysUserService = SpringUtils.getBean(ISysUserService.class);
+ SysUser sysUser = sysUserService.selectUserById(ardAppPosition.getUserId());
+ if (sysUser.getAppOnlineState().equals("1")) {
+ onlineList.add(ardAppPosition);
+ }
+ }
+ }
+ return onlineList;
+ }
+
}
--
Gitblit v1.9.3