From 66837801445702319c1fe47070463adc2d3a436c Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Wed, 24 Sep 2025 16:42:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/monitor/SysUserOnlineController.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bonus-admin/src/main/java/com/bonus/web/controller/monitor/SysUserOnlineController.java b/bonus-admin/src/main/java/com/bonus/web/controller/monitor/SysUserOnlineController.java index 50b76d0..8e171e7 100644 --- a/bonus-admin/src/main/java/com/bonus/web/controller/monitor/SysUserOnlineController.java +++ b/bonus-admin/src/main/java/com/bonus/web/controller/monitor/SysUserOnlineController.java @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import com.alibaba.fastjson2.JSONObject; import com.bonus.common.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -45,7 +46,16 @@ public class SysUserOnlineController extends BaseController { Collection keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); List userOnlineList = new ArrayList(); for (String key : keys) { - LoginUser user = redisCache.getCacheObject(key); + LoginUser user = null; + Object cacheObject = redisCache.getCacheObject(key); + if (cacheObject instanceof JSONObject) { + user = ((JSONObject) cacheObject).toJavaObject(LoginUser.class); + } else if (cacheObject instanceof LoginUser) { + user = (LoginUser) cacheObject; + } else { + // 处理其他情况或抛出异常 + throw new RuntimeException("缓存对象类型不匹配"); + } if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); } else if (StringUtils.isNotEmpty(ipaddr)) {