From b67cd76e04eca6edbc18a52e722095b3b75e2925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Wed, 18 Mar 2026 14:28:01 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=B0=86=20Cache?= =?UTF-8?q?Constants=20=E5=90=88=E5=B9=B6=E5=88=B0=20CacheNames?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/listener/UserActionListener.java | 12 ++++---- .../dromara/web/service/SysLoginService.java | 6 ++-- .../common/core/constant/CacheConstants.java | 30 ------------------- .../common/core/constant/CacheNames.java | 11 +++++-- .../redis/aspectj/RepeatSubmitAspect.java | 3 +- .../monitor/SysLoginInfoController.java | 8 ++--- .../monitor/SysUserOnlineController.java | 12 ++++---- .../controller/system/SysUserController.java | 4 +-- 8 files changed, 30 insertions(+), 56 deletions(-) delete mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java diff --git a/ruoyi-admin/src/main/java/org/dromara/web/listener/UserActionListener.java b/ruoyi-admin/src/main/java/org/dromara/web/listener/UserActionListener.java index d99b51dbd..225b0ae6f 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/listener/UserActionListener.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/listener/UserActionListener.java @@ -6,7 +6,7 @@ import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.constant.Constants; import org.dromara.common.core.domain.dto.UserOnlineDTO; import org.dromara.common.core.utils.MessageUtils; @@ -53,9 +53,9 @@ public class UserActionListener implements SaTokenListener { dto.setDeviceType(loginParameter.getDeviceType()); dto.setDeptName((String) loginParameter.getExtra(LoginHelper.DEPT_NAME_KEY)); if (loginParameter.getTimeout() == -1) { - RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto); + RedisUtils.setCacheObject(CacheNames.ONLINE_TOKEN_KEY + tokenValue, dto); } else { - RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(loginParameter.getTimeout())); + RedisUtils.setCacheObject(CacheNames.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(loginParameter.getTimeout())); } // 记录登录日志 @@ -75,7 +75,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doLogout(String loginType, Object loginId, String tokenValue) { - RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); + RedisUtils.deleteObject(CacheNames.ONLINE_TOKEN_KEY + tokenValue); log.info("user doLogout, userId:{}, token:{}", loginId, tokenValue); } @@ -84,7 +84,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doKickout(String loginType, Object loginId, String tokenValue) { - RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); + RedisUtils.deleteObject(CacheNames.ONLINE_TOKEN_KEY + tokenValue); log.info("user doKickout, userId:{}, token:{}", loginId, tokenValue); } @@ -93,7 +93,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doReplaced(String loginType, Object loginId, String tokenValue) { - RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); + RedisUtils.deleteObject(CacheNames.ONLINE_TOKEN_KEY + tokenValue); log.info("user doReplaced, userId:{}, token:{}", loginId, tokenValue); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java index 936236a15..6e3959bd8 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java @@ -10,7 +10,7 @@ import com.baomidou.lock.annotation.Lock4j; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.model.AuthUser; -import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.constant.Constants; import org.dromara.common.core.domain.dto.PostDTO; import org.dromara.common.core.domain.dto.RoleDTO; @@ -33,8 +33,6 @@ import org.springframework.stereotype.Service; import java.time.Duration; import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.function.Supplier; /** @@ -193,7 +191,7 @@ public class SysLoginService { * @param supplier 返回 {@code true} 表示本次认证失败 */ public void checkLogin(LoginType loginType, String username, Supplier supplier) { - String errorKey = CacheConstants.PWD_ERR_CNT_KEY + username; + String errorKey = CacheNames.PWD_ERR_CNT_KEY + username; String loginFail = Constants.LOGIN_FAIL; // 获取用户登录错误次数,默认为0 (可自定义限制策略 例如: key + username + ip) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java deleted file mode 100644 index 11cd764df..000000000 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.dromara.common.core.constant; - -/** - * Redis 缓存键前缀常量。 - * - * @author Lion Li - */ -public interface CacheConstants { - - /** - * 在线用户 redis key - */ - String ONLINE_TOKEN_KEY = "online_tokens:"; - - /** - * 参数管理 cache key - */ - String SYS_CONFIG_KEY = "sys_config:"; - - /** - * 字典管理 cache key - */ - String SYS_DICT_KEY = "sys_dict:"; - - /** - * 登录账户密码错误次数 redis key - */ - String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; - -} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java index b6c7be2b9..a7a32e65f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java @@ -39,7 +39,7 @@ public interface CacheNames { /** * 客户端 */ - String SYS_CLIENT = GlobalConstants.GLOBAL_REDIS_KEY + "sys_client#30d"; + String SYS_CLIENT = "sys_client#30d"; /** * 用户账户 @@ -74,11 +74,16 @@ public interface CacheNames { /** * OSS配置 */ - String SYS_OSS_CONFIG = GlobalConstants.GLOBAL_REDIS_KEY + "sys_oss_config"; + String SYS_OSS_CONFIG = "sys_oss_config"; /** * 在线用户 */ - String ONLINE_TOKEN = "online_tokens"; + String ONLINE_TOKEN_KEY = "online_tokens:"; + + /** + * 登录账户密码错误次数 redis key + */ + String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; } diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/aspectj/RepeatSubmitAspect.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/aspectj/RepeatSubmitAspect.java index 45ce04bee..78ce7c4af 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/aspectj/RepeatSubmitAspect.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/aspectj/RepeatSubmitAspect.java @@ -12,6 +12,7 @@ import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.dromara.common.core.constant.GlobalConstants; +import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.domain.R; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MessageUtils; @@ -79,7 +80,7 @@ public class RepeatSubmitAspect { if (jsonResult instanceof R r) { try { // 成功则不删除redis数据 保证在有效时间内无法重复提交 - if (r.getCode() == R.SUCCESS) { + if (r.getCode() == HttpStatus.SUCCESS) { return; } RedisUtils.deleteObject(KEY_CACHE.get()); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java index 2db084ba9..a61e5e607 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java @@ -4,14 +4,14 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.baomidou.lock.annotation.Lock4j; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.domain.PageResult; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.core.domain.PageResult; +import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.bo.SysLoginInfoBo; @@ -100,7 +100,7 @@ public class SysLoginInfoController extends BaseController { @RepeatSubmit() @GetMapping("/unlock/{userName}") public R unlock(@PathVariable("userName") String userName) { - String loginName = CacheConstants.PWD_ERR_CNT_KEY + userName; + String loginName = CacheNames.PWD_ERR_CNT_KEY + userName; if (RedisUtils.hasKey(loginName)) { RedisUtils.deleteObject(loginName); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java index 47f2bb0dc..1e183a242 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java @@ -5,15 +5,15 @@ import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.domain.PageResult; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.dto.UserOnlineDTO; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.core.domain.PageResult; +import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.SysUserOnline; @@ -46,7 +46,7 @@ public class SysUserOnlineController extends BaseController { @GetMapping("/list") public R> list(String ipaddr, String userName) { // 获取所有未过期的 token - Collection keys = RedisUtils.keys(CacheConstants.ONLINE_TOKEN_KEY + "*"); + Collection keys = RedisUtils.keys(CacheNames.ONLINE_TOKEN_KEY + "*"); List userOnlineDTOList = new ArrayList<>(); for (String key : keys) { String token = StringUtils.substringAfterLast(key, ":"); @@ -54,7 +54,7 @@ public class SysUserOnlineController extends BaseController { if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < -1) { continue; } - userOnlineDTOList.add(RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token)); + userOnlineDTOList.add(RedisUtils.getCacheObject(CacheNames.ONLINE_TOKEN_KEY + token)); } if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> @@ -105,7 +105,7 @@ public class SysUserOnlineController extends BaseController { List tokenIds = StpUtil.getTokenValueListByLoginId(StpUtil.getLoginIdAsString()); List userOnlineDTOList = tokenIds.stream() .filter(token -> StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) >= -1) - .map(token -> (UserOnlineDTO) RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token)) + .map(token -> (UserOnlineDTO) RedisUtils.getCacheObject(CacheNames.ONLINE_TOKEN_KEY + token)) .collect(Collectors.toList()); //复制和处理 SysUserOnline 对象列表 Collections.reverse(userOnlineDTOList); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java index 379fad7b2..d1999daee 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -8,7 +8,7 @@ import cn.hutool.crypto.digest.BCrypt; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.domain.PageResult; import org.dromara.common.core.domain.R; @@ -287,7 +287,7 @@ public class SysUserController extends BaseController { if (ObjectUtil.isNull(user)) { return R.fail("用户不存在"); } - String loginName = CacheConstants.PWD_ERR_CNT_KEY + user.getUserName(); + String loginName = CacheNames.PWD_ERR_CNT_KEY + user.getUserName(); if (RedisUtils.hasKey(loginName)) { RedisUtils.deleteObject(loginName); }