From 15e909c318b2b7ccdf8e302e03734a26ea564a62 Mon Sep 17 00:00:00 2001 From: lbw <1192299468@qq.com> Date: Wed, 24 Dec 2025 15:35:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor(role):=20=E4=BD=BF=E7=94=A8=20RedisTem?= =?UTF-8?q?plate=20=E6=9B=BF=E6=8D=A2=20StringRedisTemplate=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=A7=92=E8=89=B2=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 RoleServiceImpl 中 stringRedisTemplate 替换为更通用的 redisTemplate - 调整角色和用户角色关系写入 Redis 的代码,删除存储过期时间参数 - 添加日志记录,输出同步到 Redis 的用户角色关系数据 - 删除 LoginServiceImpl 中未实现的 initUserRole 方法 - 新增 RoleService 的单元测试 RoleTest,验证角色权限同步功能 - 移除 UserRoleRelDOMapper.xml 中 selectAll 查询的 is_deleted 过滤条件 --- .../service/login/LoginServiceImpl.java | 4 ---- .../service/service/role/RoleServiceImpl.java | 8 ++++--- .../resources/mapper/UserRoleRelDOMapper.xml | 1 - .../enlish/service/service/role/RoleTest.java | 21 +++++++++++++++++++ 4 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 enlish-service/src/test/java/com/yinlihupo/enlish/service/service/role/RoleTest.java diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/login/LoginServiceImpl.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/login/LoginServiceImpl.java index af43c23..5228f57 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/login/LoginServiceImpl.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/login/LoginServiceImpl.java @@ -80,10 +80,6 @@ public class LoginServiceImpl implements LoginService { } } - private void initUserRole(UserDO userDO) { - // todo - } - /** * 发送短信 */ diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/role/RoleServiceImpl.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/role/RoleServiceImpl.java index 31cdef3..1fed7d4 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/role/RoleServiceImpl.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/role/RoleServiceImpl.java @@ -10,6 +10,7 @@ import com.yinlihupo.enlish.service.service.RoleService; import com.yinlihupo.framework.common.util.JsonUtils; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; @@ -22,7 +23,7 @@ import java.util.stream.Collectors; public class RoleServiceImpl implements RoleService { @Resource - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Resource private RoleDOMapper roleDOMapper; @Resource @@ -34,11 +35,12 @@ public class RoleServiceImpl implements RoleService { List roleDOS = roleDOMapper.selectAll(); List roleKeys = roleDOS.stream().map(RoleDO::getRoleKey).toList(); log.info("将角色同步到 redis 中, {}", roleKeys); - stringRedisTemplate.opsForValue().set(RoleConstants.ROLE, JsonUtils.toJsonString(roleKeys), 60 * 60 * 24); + redisTemplate.opsForValue().set(RoleConstants.ROLE, JsonUtils.toJsonString(roleKeys)); Map roleId2RoleDO = roleDOS.stream().collect(Collectors.toMap(RoleDO::getId, roleDO -> roleDO)); List userRoleRelDOS = userRoleRelDOMapper.selectAll(); + log.info("将用户角色关系同步到 redis 中, {}", userRoleRelDOS); Map> userId2UserRoleRelDOs = userRoleRelDOS.stream().collect(Collectors.groupingBy(UserRoleRelDO::getUserId)); userId2UserRoleRelDOs.forEach((userId, userRoleRelDOs) -> { @@ -46,7 +48,7 @@ public class RoleServiceImpl implements RoleService { List roleDOs = roleIds.stream().map(roleId2RoleDO::get).toList(); List user2RoleKeys = roleDOs.stream().map(RoleDO::getRoleKey).toList(); log.info("将用户 {} 的角色同步到 redis 中, {}", userId, roleKeys); - stringRedisTemplate.opsForValue().set(RoleConstants.buildUserRoleKey(userId), JsonUtils.toJsonString(user2RoleKeys)); + redisTemplate.opsForValue().set(RoleConstants.buildUserRoleKey(userId), JsonUtils.toJsonString(user2RoleKeys)); }); } diff --git a/enlish-service/src/main/resources/mapper/UserRoleRelDOMapper.xml b/enlish-service/src/main/resources/mapper/UserRoleRelDOMapper.xml index dfc6269..f5ecc66 100644 --- a/enlish-service/src/main/resources/mapper/UserRoleRelDOMapper.xml +++ b/enlish-service/src/main/resources/mapper/UserRoleRelDOMapper.xml @@ -11,7 +11,6 @@