diff --git a/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/service/RedisService.java b/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/service/RedisService.java index 4c6bd66..3cd170d 100644 --- a/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/service/RedisService.java +++ b/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/service/RedisService.java @@ -283,6 +283,19 @@ public class RedisService { return redisTemplate.opsForSet().members(key); } + /** + * @description 判断Set中是否存在指定元素 + * @param key String 键 + * @param value Object 元素 + * @return boolean 是否存在 + * @author yslg + * @since 2025-12-18 + */ + public boolean sIsMember(String key, Object value) { + Boolean result = redisTemplate.opsForSet().isMember(key, value); + return result != null && result; + } + /** * @description 获取Set集合大小(等价于Redis的SCARD) * @param key String 键 diff --git a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/service/SensitiveServiceImpl.java b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/service/SensitiveServiceImpl.java index 01affa0..1d977f8 100644 --- a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/service/SensitiveServiceImpl.java +++ b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/service/SensitiveServiceImpl.java @@ -45,7 +45,7 @@ public class SensitiveServiceImpl implements SensitiveService{ // 第一次检查:Redis中是否已存在 String redisKey = "allow".equals(type) ? SensitiveRedisContants.SENSITIVE_WORD_ALLOW : SensitiveRedisContants.SENSITIVE_WORD_DENY; - if (redisService.sMembers(redisKey).contains(word)) { + if (redisService.sIsMember(redisKey, word)) { resultDomain.fail("敏感词已存在"); return resultDomain; } @@ -53,7 +53,7 @@ public class SensitiveServiceImpl implements SensitiveService{ // 加锁 synchronized (this) { // 第二次检查:再次确认Redis中是否已存在 - if (redisService.sMembers(redisKey).contains(word)) { + if (redisService.sIsMember(redisKey, word)) { resultDomain.fail("敏感词已存在"); return resultDomain; } @@ -81,7 +81,7 @@ public class SensitiveServiceImpl implements SensitiveService{ String targetRedisKey = "allow".equals(newType) ? SensitiveRedisContants.SENSITIVE_WORD_ALLOW : SensitiveRedisContants.SENSITIVE_WORD_DENY; // 检查目标类型中是否已存在该词 - if (redisService.sMembers(targetRedisKey).contains(word)) { + if (redisService.sIsMember(targetRedisKey, word)) { resultDomain.fail("该敏感词在目标类型中已存在"); return resultDomain; } @@ -89,7 +89,7 @@ public class SensitiveServiceImpl implements SensitiveService{ // 加锁 synchronized (this) { // 再次检查 - if (redisService.sMembers(targetRedisKey).contains(word)) { + if (redisService.sIsMember(targetRedisKey, word)) { resultDomain.fail("该敏感词在目标类型中已存在"); return resultDomain; } @@ -117,7 +117,7 @@ public class SensitiveServiceImpl implements SensitiveService{ // 第一次检查:Redis中是否存在 String redisKey = "allow".equals(type) ? SensitiveRedisContants.SENSITIVE_WORD_ALLOW : SensitiveRedisContants.SENSITIVE_WORD_DENY; - if (!redisService.sMembers(redisKey).contains(word)) { + if (!redisService.sIsMember(redisKey, word)) { resultDomain.fail("敏感词不存在"); return resultDomain; } @@ -125,7 +125,7 @@ public class SensitiveServiceImpl implements SensitiveService{ // 加锁 synchronized (this) { // 第二次检查:再次确认Redis中是否存在 - if (!redisService.sMembers(redisKey).contains(word)) { + if (!redisService.sIsMember(redisKey, word)) { resultDomain.fail("敏感词不存在"); return resultDomain; } diff --git a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicAllowWord.java b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicAllowWord.java index 48f8c1c..bef5baf 100644 --- a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicAllowWord.java +++ b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicAllowWord.java @@ -27,7 +27,7 @@ public class DynamicAllowWord implements IWordAllow { List list = new ArrayList<>(members.size()); for (Object o : members) { if (o != null) { - list.add(String.valueOf(o)); + list.add(o.toString()); } } return list; diff --git a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicDenyWord.java b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicDenyWord.java index 22d39f5..a5610b5 100644 --- a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicDenyWord.java +++ b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/word/DynamicDenyWord.java @@ -27,7 +27,7 @@ public class DynamicDenyWord implements IWordDeny { List list = new ArrayList<>(members.size()); for (Object o : members) { if (o != null) { - list.add(String.valueOf(o)); + list.add(o.toString()); } } return list; diff --git a/schoolNewsWeb/src/apis/resource/sensitive.ts b/schoolNewsWeb/src/apis/resource/sensitive.ts index 0530144..411ae17 100644 --- a/schoolNewsWeb/src/apis/resource/sensitive.ts +++ b/schoolNewsWeb/src/apis/resource/sensitive.ts @@ -40,7 +40,7 @@ export const sensitiveApi = { * @returns Promise> */ async deleteSensitiveWord(sensitiveWord: SensitiveWord): Promise> { - const response = await api.delete(`/sensitive`, { data: sensitiveWord }); + const response = await api.delete(`/sensitive`, sensitiveWord); return response.data; }, } \ No newline at end of file