|
@@ -1,12 +1,17 @@
|
|
|
package com.management.platform.util;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.management.platform.entity.TSensitiveWords;
|
|
|
+import com.management.platform.mapper.TSensitiveWordsMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@Component
|
|
@@ -18,24 +23,24 @@ public class WordFilter {
|
|
|
private static int minMatchTYpe = 1;
|
|
|
/** * 最大匹配规则 */
|
|
|
private static int maxMatchType = 2;
|
|
|
-// @Autowired
|
|
|
-// private RedisTemplate<String, Object> redisTemplate;
|
|
|
-// @Autowired
|
|
|
-// private SensitiveWordMapper sensitiveWordMapper ;
|
|
|
+ @Resource
|
|
|
+ private RedisTemplate<String, Object> redisTemplate;
|
|
|
+ @Resource
|
|
|
+ private TSensitiveWordsMapper tSensitiveWordsMapper ;
|
|
|
//
|
|
|
public String replaceWords(String text) {
|
|
|
if (StringUtils.isBlank(text)) {
|
|
|
return text;
|
|
|
}
|
|
|
-// List<Object> words = redisTemplate.opsForList().range("SensitiveWord", 0, -1);
|
|
|
-// if (words.size()<=0){
|
|
|
-// words=sensitiveWordMapper.listStr();
|
|
|
-// //更新redis
|
|
|
-// redisTemplate.opsForList().leftPushAll("SensitiveWord",sensitiveWordMapper.listStr());
|
|
|
-// }
|
|
|
+ List<Object> words = redisTemplate.opsForList().range("SensitiveWord", 0, -1);
|
|
|
+ if (words.size()<=0){
|
|
|
+ List<TSensitiveWords> list = tSensitiveWordsMapper.selectList(new QueryWrapper<>());
|
|
|
+ words = list.stream().map(TSensitiveWords::getWord).collect(Collectors.toList());
|
|
|
+ //更新redis
|
|
|
+ redisTemplate.opsForList().leftPushAll("SensitiveWord",words);
|
|
|
+ }
|
|
|
//缓存获取敏感词汇原记录
|
|
|
-// return WordFilter.replaceSensitiveWord(words, text, WordFilter.minMatchTYpe);
|
|
|
- return null;
|
|
|
+ return WordFilter.replaceSensitiveWord(words, text, WordFilter.minMatchTYpe);
|
|
|
}
|
|
|
|
|
|
/**
|