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)) {