diff --git a/wcs/src/main/java/org/wcs/business/redis/SaTokenRedis.java b/wcs/src/main/java/org/wcs/business/redis/SaTokenRedis.java index e5ce6b3..11849fd 100644 --- a/wcs/src/main/java/org/wcs/business/redis/SaTokenRedis.java +++ b/wcs/src/main/java/org/wcs/business/redis/SaTokenRedis.java @@ -91,11 +91,17 @@ public class SaTokenRedis { clearPermissionCache(group); return; } - Long size = stringRedisTemplate.opsForList().size(USER_PERMISSION_KEY + ":" + group); - if(size != null && size > 0) { - return; // 如果存在就不添加了,要求必须调用清除方法后在调用这个 + List oldPermissionList = stringRedisTemplate.opsForList().range(USER_PERMISSION_KEY + ":" + group, 0, -1); + if(oldPermissionList == null || oldPermissionList.isEmpty()) { + stringRedisTemplate.opsForList().rightPushAll(USER_PERMISSION_KEY + ":" + group, permissionList); + return; } - stringRedisTemplate.opsForList().rightPushAll(USER_PERMISSION_KEY + ":" + group, permissionList); + for (String permission : permissionList) { + if(!oldPermissionList.contains(permission)) { + stringRedisTemplate.opsForList().rightPush(USER_PERMISSION_KEY + ":" + group, permission); + } + } + return; }