diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/listener/UserActionListener.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/listener/UserActionListener.java index c434eca4..39fad0ad 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/listener/UserActionListener.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/listener/UserActionListener.java @@ -6,11 +6,11 @@ import cn.dev33.satoken.stp.SaLoginModel; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; -import com.ruoyi.common.core.constant.CacheNames; +import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.enums.UserType; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.ip.AddressUtils; -import com.ruoyi.common.redis.utils.CacheUtils; +import com.ruoyi.common.redis.utils.RedisUtils; import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.api.domain.SysUserOnline; import com.ruoyi.system.api.model.LoginUser; @@ -18,6 +18,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import java.time.Duration; + /** * 用户行为 侦听器的实现 * @@ -51,12 +53,7 @@ public class UserActionListener implements SaTokenListener { if (ObjectUtil.isNotNull(user.getDeptName())) { userOnline.setDeptName(user.getDeptName()); } - String cacheNames = CacheNames.ONLINE_TOKEN; - if (tokenConfig.getTimeout() > 0) { - // 增加 ttl 过期时间 单位秒 - cacheNames = CacheNames.ONLINE_TOKEN + "#" + tokenConfig.getTimeout() + "s"; - } - CacheUtils.put(cacheNames, tokenValue, userOnline); + RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, userOnline, Duration.ofSeconds(tokenConfig.getTimeout())); log.info("user doLogin, useId:{}, token:{}", loginId, tokenValue); } else if (userType == UserType.APP_USER) { // app端 自行根据业务编写 @@ -68,7 +65,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doLogout(String loginType, Object loginId, String tokenValue) { - CacheUtils.evict(CacheNames.ONLINE_TOKEN, tokenValue); + RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); log.info("user doLogout, useId:{}, token:{}", loginId, tokenValue); } @@ -77,7 +74,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doKickout(String loginType, Object loginId, String tokenValue) { - CacheUtils.evict(CacheNames.ONLINE_TOKEN, tokenValue); + RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); log.info("user doLogoutByLoginId, useId:{}, token:{}", loginId, tokenValue); } @@ -86,7 +83,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doReplaced(String loginType, Object loginId, String tokenValue) { - CacheUtils.evict(CacheNames.ONLINE_TOKEN, tokenValue); + RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); log.info("user doReplaced, useId:{}, token:{}", loginId, tokenValue); } diff --git a/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/utils/DictUtils.java b/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/utils/DictUtils.java index 01d10e38..aed32124 100644 --- a/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/utils/DictUtils.java +++ b/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/utils/DictUtils.java @@ -1,11 +1,9 @@ package com.ruoyi.common.dict.utils; -import cn.hutool.core.util.ObjectUtil; -import com.ruoyi.common.core.constant.CacheConstants; -import com.ruoyi.common.redis.utils.RedisUtils; +import com.ruoyi.common.core.constant.CacheNames; +import com.ruoyi.common.redis.utils.CacheUtils; import com.ruoyi.system.api.domain.SysDictData; -import java.util.Collection; import java.util.List; /** @@ -21,7 +19,7 @@ public class DictUtils { * @param dictDatas 字典数据列表 */ public static void setDictCache(String key, List dictDatas) { - RedisUtils.setCacheObject(getCacheKey(key), dictDatas); + CacheUtils.put(CacheNames.SYS_DICT, key, dictDatas); } /** @@ -31,11 +29,7 @@ public class DictUtils { * @return dictDatas 字典数据列表 */ public static List getDictCache(String key) { - List dictDatas = RedisUtils.getCacheObject(getCacheKey(key)); - if (ObjectUtil.isNotNull(dictDatas)) { - return dictDatas; - } - return null; + return CacheUtils.get(CacheNames.SYS_DICT, key); } /** @@ -44,24 +38,14 @@ public class DictUtils { * @param key 字典键 */ public static void removeDictCache(String key) { - RedisUtils.deleteObject(getCacheKey(key)); + CacheUtils.evict(CacheNames.SYS_DICT, key); } /** * 清空字典缓存 */ public static void clearDictCache() { - Collection keys = RedisUtils.keys(CacheConstants.SYS_DICT_KEY + "*"); - RedisUtils.deleteObject(keys); + CacheUtils.clear(CacheNames.SYS_DICT); } - /** - * 设置cache key - * - * @param configKey 参数键 - * @return 缓存键key - */ - public static String getCacheKey(String configKey) { - return CacheConstants.SYS_DICT_KEY + configKey; - } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java index d4af40cc..eb721c5a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java @@ -4,7 +4,6 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.stp.StpUtil; import com.ruoyi.common.core.constant.CacheConstants; -import com.ruoyi.common.core.constant.CacheNames; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -12,7 +11,7 @@ import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.mybatis.core.page.TableDataInfo; -import com.ruoyi.common.redis.utils.CacheUtils; +import com.ruoyi.common.redis.utils.RedisUtils; import com.ruoyi.system.api.domain.SysUserOnline; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -49,8 +48,7 @@ public class SysUserOnlineController extends BaseController { if (StpUtil.stpLogic.getTokenActivityTimeoutByToken(token) < 0) { continue; } - SysUserOnline dto = CacheUtils.get(CacheNames.ONLINE_TOKEN, token); - userOnlineList.add(dto); + userOnlineList.add(RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token)); } if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { userOnlineList = StreamUtils.filter(userOnlineList, userOnline ->