浏览代码

关键词

seyason 4 年之前
父节点
当前提交
a1892d6682

+ 6 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/aop/SensitiveWordConfig.java

@@ -26,9 +26,11 @@ public class SensitiveWordConfig {
     RedisUtil redisUtils;
     @Autowired
     WordFilter wordFilter;
+
     @Around("@annotation(org.springframework.web.bind.annotation.PostMapping)||@annotation(org.springframework.web.bind.annotation.PutMapping)")
     @SneakyThrows
     public Object doBefore(ProceedingJoinPoint point) {
+        System.out.println("####################进入敏感词检测#######");
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         if (request.getRequestURI().contains("/word/sensitiveword")) {
             return point.proceed();
@@ -44,12 +46,10 @@ public class SensitiveWordConfig {
     }
 
     /**
-     * @author: zhangyb
-     * @date:  2020/11/19 13:57
-     * @Description: 递归将String替换
-     * @UpdateUser : zhangyb
-     * @UpdateDate :2020/11/19 13:57
-     * @UpdateRemark:
+     * 递归将string替换
+     * @param clazz
+     * @param arg
+     * @return
      */
     @SneakyThrows
     public Class<?> foundString(Class clazz,Object arg ){

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TSensitiveWordsController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-12
+ */
+@RestController
+@RequestMapping("/t-sensitive-words")
+public class TSensitiveWordsController {
+
+}
+

+ 41 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TSensitiveWords.java

@@ -0,0 +1,41 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TSensitiveWords extends Model<TSensitiveWords> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("id")
+    private Integer id;
+
+    /**
+     * 违禁词
+     */
+    @TableField("word")
+    private String word;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TSensitiveWordsMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.TSensitiveWords;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-12
+ */
+public interface TSensitiveWordsMapper extends BaseMapper<TSensitiveWords> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TSensitiveWordsService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.TSensitiveWords;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-12
+ */
+public interface TSensitiveWordsService extends IService<TSensitiveWords> {
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TSensitiveWordsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.TSensitiveWords;
+import com.management.platform.mapper.TSensitiveWordsMapper;
+import com.management.platform.service.TSensitiveWordsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-12
+ */
+@Service
+public class TSensitiveWordsServiceImpl extends ServiceImpl<TSensitiveWordsMapper, TSensitiveWords> implements TSensitiveWordsService {
+
+}

+ 17 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/WordFilter.java

@@ -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);
     }
 
     /**

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TSensitiveWordsMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.TSensitiveWordsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.TSensitiveWords">
+        <id column="id" property="id" />
+        <result column="word" property="word" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, word
+    </sql>
+
+</mapper>