1. 业务开发

主要提供三种使用方式:

  1. 注解@SensitiveWord
  2. 工具类 SensitiveWordsUtil.find()
  3. 工具类 SensitiveWordsUtil.replace()

1.1. 注解@SensitiveWord

通用AOP过滤不来的方法,通过业务层代码通过在方法上加上 @SensitiveWord 注解达到过滤效果

@SensitiveWord
public ResultData 方法(ProgressLogEntity progressLog) {}

[!tip]
方法形参上必须存在 BaseEntity 类型参数才有效,这里 ProgressLogEntityBaseEntity 子类

1.2. 工具类 SensitiveWordsUtil.find()

业务代码中通过工具类灵活的对内容进行敏感词检测

//关键字配置 
String content = "滚出去";
List<String> sensitiveWords = SensitiveWordsUtil.find(content);
//sensitiveWords 返回当前文本中敏感词集合,有空的情况,需要空判断处理

1.3. 工具类 SensitiveWordsUtil.replace()

业务代码中通过工具类灵活的对内容进行敏感词过滤

//关键字配置 
String content = "滚出去";
content = SensitiveWordsUtil.replace(content)
//content 就是过滤之后的内容

1.4. 如果需要拦截所有的业务数据,需要修改通用的AOP

修改net.mingsoft.wordfilter.aop.SensitiveWordAop 增加下面两个拦截配置


@Before("execution(* net.mingsoft..*Action.save(..))")
public void save(JoinPoint joinPoint) throws IllegalAccessException {
    startReplace(joinPoint);
}

@Before("execution(* net.mingsoft..*Action.update(..))")
public void update(JoinPoint joinPoint) throws IllegalAccessException {
    startReplace(joinPoint);
}

[!tip] 具体会拦截 saveupdate 方法,不需要额外编写代码

1.5. 如果需要在前端拦截提示,需要增加以下代码


data: function () {
    return {
        // 是否开启敏感词检测
        isEnableWord: false,
    }
}
methods: {
    // 保存前先检查是否存在敏感词
    checkSensitiveWord: function() {
        var that = this;
        if (that.isEnableWord) {
            // 存储需要检测字段数据
            var data = {
                contentTitle: that.form.contentTitle,
            };
            ms.http.post(ms.manager + "/wordfilter/sensitiveWords/check.do", data, {
                headers: {
                    'Content-Type': 'application/json'
                }
            }).then(function (res) {
                if (res.result && res.data.length > 0) {
                    that.$refs.msAi.sensitiveSave(res.data);
                }
                else {
                    // 改成自己需要调用的方法
                    that.save();
                }
            })
        } else {
            // 改成自己需要调用的方法
            that.save();
        }
    }
}

create: function () {
    var that = this
    ms.mdiy.config("安全设置", "isEnableWord", true).then(function (res) {
        if (res.result && res.data === 'true') {
            that.isEnableWord = true;
        }
    });
}

[!tip] 注意需要引入百度AI页面业务开发

如果检测出来还需要调用原页面某个方法,需要这样处理

<ms-ai ref="msAi" @custom-event="save"  :content="form.contentDetails"></ms-ai>

[!tip] 其中save为您自定义的方法名称

Copyright © mingsoft.net 2012-2022 all right reserved,powered by Gitbook该文件修订时间: 2024-12-20 11:25:55

results matching ""

    No results matching ""

    results matching ""

      No results matching ""