From 6cf4cea4bd8214245926dab0d081d30fa13ed9f0 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Mon, 26 Feb 2024 16:35:55 +0800
Subject: [PATCH] 文章评论过滤

---
 src/main/java/org/springblade/modules/answerRecord/service/impl/AnswerRecordServiceImpl.java |   15 +++++++++------
 src/main/java/org/springblade/modules/article/service/IArticleCommentService.java            |    1 +
 src/main/java/org/springblade/modules/article/controller/ArticleCommentController.java       |    8 +++++++-
 src/main/java/org/springblade/modules/article/service/impl/ArticleCommentServiceImpl.java    |   31 ++++++++++++++++++++++++++++++-
 4 files changed, 47 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/springblade/modules/answerRecord/service/impl/AnswerRecordServiceImpl.java b/src/main/java/org/springblade/modules/answerRecord/service/impl/AnswerRecordServiceImpl.java
index 3e55c0a..be1db66 100644
--- a/src/main/java/org/springblade/modules/answerRecord/service/impl/AnswerRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/answerRecord/service/impl/AnswerRecordServiceImpl.java
@@ -76,7 +76,7 @@
 	@Override
 	public Boolean saveAnswer(List<SubjectChoicesVO> subjectChoicesVO) {
 		BigDecimal bigDecimal = BigDecimal.valueOf(0);
-		List<AnswerRecordEntity> objects = new ArrayList<>();
+		List<AnswerRecordEntity> answerRecordEntityList = new ArrayList<>();
 		// 遍历题目和选项
 		for (SubjectChoicesVO choicesVO : subjectChoicesVO) {
 			List<SubjectOptionVO> subjectOptionList = choicesVO.getSubjectOptionList();
@@ -97,7 +97,7 @@
 						answerRecordDTO.setSubjectChoicesId(choicesVO.getId());
 						answerRecordDTO.setSubjectChoicesType(1);
 						answerRecordDTO.setSubjectOptionId(subjectOptionVO.getId());
-						objects.add(answerRecordDTO);
+						answerRecordEntityList.add(answerRecordDTO);
 						bigDecimal = bigDecimal.add(subjectOptionVO.getScore());
 						break;
 					}
@@ -110,7 +110,7 @@
 					answerRecordDTO.setAnswer(subjectOptionVO.getNumbers());
 					answerRecordDTO.setSubjectOptionId(subjectOptionVO.getId());
 					answerRecordDTO.setSubjectChoicesType(3);
-					objects.add(answerRecordDTO);
+					answerRecordEntityList.add(answerRecordDTO);
 					BigDecimal multiply = BigDecimal.valueOf(subjectOptionVO.getNumbers()).multiply(subjectOptionVO.getScore());
 					bigDecimal = bigDecimal.subtract(multiply);
 				}
@@ -129,7 +129,9 @@
 			one.setPartyBuildingInfoScore(bigDecimal);
 			bean.update(Wrappers.<PropertyCompanyEntity>lambdaUpdate().set(PropertyCompanyEntity::getPartyBuildingInfoScore, bigDecimal)
 				.eq(PropertyCompanyEntity::getId, subjectChoicesVO.get(0).getPropertyId()));
-		} else if (subjectChoicesVO.get(0).getSubclassName().equals("企业良好行为")) {
+		} else if (subjectChoicesVO.get(0).getSubclassName().equals("街道社区")) {
+			one.setStreetScore(bigDecimal);
+		}else if (subjectChoicesVO.get(0).getSubclassName().equals("企业良好行为")) {
 			one.setGoodCorporateScore(bigDecimal);
 		} else if (subjectChoicesVO.get(0).getSubclassName().equals("项目良好行为")) {
 			one.setGoodProjectScore(bigDecimal);
@@ -144,10 +146,11 @@
 			.add(one.getGoodCorporateScore())
 			.add(one.getGoodProjectScore())
 			.add(one.getLllegalAndIrregularScore())
-			.add(one.getEvaluateScore());
+			.add(one.getEvaluateScore())
+			.add(one.getStreetScore());
 		one.setAllScore(getAllScore(add));
 		bean.updateById(one);
-		return saveBatch(objects);
+		return saveBatch(answerRecordEntityList);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/article/controller/ArticleCommentController.java b/src/main/java/org/springblade/modules/article/controller/ArticleCommentController.java
index 6888f4f..8d64eb8 100644
--- a/src/main/java/org/springblade/modules/article/controller/ArticleCommentController.java
+++ b/src/main/java/org/springblade/modules/article/controller/ArticleCommentController.java
@@ -7,6 +7,7 @@
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.util.Strings;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -75,6 +76,7 @@
 	@ApiOperation(value = "分页", notes = "传入articleComment")
 	public R<IPage<ArticleCommentVO>> page(ArticleCommentVO articleComment, Query query) {
 		articleComment.setUserId(AuthUtil.getUserId());
+		articleComment.setCheckStatus(2);
 		IPage<ArticleCommentVO> pages = articleCommentService.selectArticleCommentPage(Condition.getPage(query), articleComment);
 		return R.data(pages);
 	}
@@ -87,7 +89,11 @@
 	@ApiOperation(value = "新增", notes = "传入articleComment")
 	public R save(@Valid @RequestBody ArticleCommentEntity articleComment) {
 		articleComment.setUserId(AuthUtil.getUserId());
-		return R.status(articleCommentService.save(articleComment));
+		String msg = articleCommentService.saveComment(articleComment);
+		if (!Strings.isBlank(msg)){
+			return R.data(201,"",msg);
+		}
+		return R.data(200,"",msg);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/article/service/IArticleCommentService.java b/src/main/java/org/springblade/modules/article/service/IArticleCommentService.java
index 8d4103f..c492d04 100644
--- a/src/main/java/org/springblade/modules/article/service/IArticleCommentService.java
+++ b/src/main/java/org/springblade/modules/article/service/IArticleCommentService.java
@@ -23,4 +23,5 @@
 	IPage<ArticleCommentVO> selectArticleCommentPage(IPage<ArticleCommentVO> page, ArticleCommentVO noticeComment);
 
 
+	String saveComment(ArticleCommentEntity articleComment);
 }
diff --git a/src/main/java/org/springblade/modules/article/service/impl/ArticleCommentServiceImpl.java b/src/main/java/org/springblade/modules/article/service/impl/ArticleCommentServiceImpl.java
index 6568a44..a5ae2d9 100644
--- a/src/main/java/org/springblade/modules/article/service/impl/ArticleCommentServiceImpl.java
+++ b/src/main/java/org/springblade/modules/article/service/impl/ArticleCommentServiceImpl.java
@@ -24,9 +24,12 @@
 import org.springblade.modules.article.mapper.ArticleCommentMapper;
 import org.springblade.modules.article.service.IArticleCommentService;
 import org.springblade.modules.article.vo.ArticleCommentVO;
+import org.springblade.modules.words.WorksService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 通知评论表 服务实现类
@@ -36,6 +39,9 @@
  */
 @Service
 public class ArticleCommentServiceImpl extends ServiceImpl<ArticleCommentMapper, ArticleCommentEntity> implements IArticleCommentService {
+
+	@Autowired
+	private WorksService worksService;
 
 	@Override
 	public IPage<ArticleCommentVO> selectArticleCommentPage(IPage<ArticleCommentVO> page, ArticleCommentVO noticeComment) {
@@ -51,5 +57,28 @@
 		return page.setRecords(baseMapper.selectArticleCommentPage(page, noticeComment));
 	}
 
-
+	@Override
+	public String saveComment(ArticleCommentEntity articleComment) {
+		boolean flag = false;
+		// 先进行敏感词过滤
+		Map<String, Object> map = worksService.interceptWords(articleComment.getContent());
+		// 获取敏感词校验结果
+		String iswords = map.get("iswords").toString();
+		if (iswords.equals("false")){
+			// 审核通过
+			articleComment.setCheckStatus(2);
+			flag = save(articleComment);
+			// 返回
+			return "操作成功";
+		}else {
+			// 审核不通过
+			articleComment.setCheckStatus(3);
+			// 设置审核不通过的说明
+			articleComment.setCheckRemark(map.get("words").toString());
+			// 保存
+			save(articleComment);
+			// 返回
+			return "当前评论内容中带有敏感词,当前评论无法生效!";
+		}
+	}
 }

--
Gitblit v1.9.3