From 3501ca8469b1a09f22cf0d3dbbe1adf331ea814a Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Tue, 27 Feb 2024 17:35:23 +0800
Subject: [PATCH] 圈子敏感信息校验

---
 src/main/java/org/springblade/modules/circle/service/ICircleService.java                |    1 
 src/main/java/org/springblade/modules/circle/service/impl/CircleCommentServiceImpl.java |   33 ++++++++++++++++
 src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java          |   11 ++++-
 src/main/java/org/springblade/modules/circle/controller/CircleController.java           |    9 ++++
 src/main/java/org/springblade/modules/circle/service/ICircleCommentService.java         |    1 
 src/main/java/org/springblade/modules/circle/controller/CircleCommentController.java    |    7 +++
 src/main/java/org/springblade/modules/circle/service/impl/CircleServiceImpl.java        |   25 +++++++++++-
 7 files changed, 80 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/springblade/modules/circle/controller/CircleCommentController.java b/src/main/java/org/springblade/modules/circle/controller/CircleCommentController.java
index 93d4bf6..62225f1 100644
--- a/src/main/java/org/springblade/modules/circle/controller/CircleCommentController.java
+++ b/src/main/java/org/springblade/modules/circle/controller/CircleCommentController.java
@@ -22,6 +22,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;
@@ -94,7 +95,11 @@
 			circle.setDepth(1);
 		}
 		circle.setUserId(AuthUtil.getUserId());
-		return R.status(circleService.save(circle));
+		String msg = circleService.saveComment(circle);
+		if (!Strings.isBlank(msg)){
+			return R.data(201,"",msg);
+		}
+		return R.data(200,"",msg);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/circle/controller/CircleController.java b/src/main/java/org/springblade/modules/circle/controller/CircleController.java
index 288862e..a04d883 100644
--- a/src/main/java/org/springblade/modules/circle/controller/CircleController.java
+++ b/src/main/java/org/springblade/modules/circle/controller/CircleController.java
@@ -21,8 +21,10 @@
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
+
 import javax.validation.Valid;
 
+import org.apache.logging.log4j.util.Strings;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -61,6 +63,7 @@
 		CircleEntity detail = circleService.getOne(Condition.getQueryWrapper(circle));
 		return R.data(CircleWrapper.build().entityVO(detail));
 	}
+
 	/**
 	 * 圈子表 分页
 	 */
@@ -92,7 +95,11 @@
 	@ApiOperation(value = "新增", notes = "传入circle")
 	public R save(@Valid @RequestBody CircleEntity circle) {
 		circle.setUserId(AuthUtil.getUserId());
-		return R.status(circleService.save(circle));
+		String msg = circleService.saveCircle(circle);
+		if (!Strings.isBlank(msg)) {
+			return R.data(201, "", msg);
+		}
+		return R.data(200, "", msg);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/circle/service/ICircleCommentService.java b/src/main/java/org/springblade/modules/circle/service/ICircleCommentService.java
index 82a9f5c..58bd9ff 100644
--- a/src/main/java/org/springblade/modules/circle/service/ICircleCommentService.java
+++ b/src/main/java/org/springblade/modules/circle/service/ICircleCommentService.java
@@ -40,4 +40,5 @@
 	IPage<CircleCommentVO> selectCircleCommentPage(IPage<CircleCommentVO> page, CircleCommentVO circle);
 
 
+	String saveComment(CircleCommentEntity circle);
 }
diff --git a/src/main/java/org/springblade/modules/circle/service/ICircleService.java b/src/main/java/org/springblade/modules/circle/service/ICircleService.java
index 6532dea..b290714 100644
--- a/src/main/java/org/springblade/modules/circle/service/ICircleService.java
+++ b/src/main/java/org/springblade/modules/circle/service/ICircleService.java
@@ -59,4 +59,5 @@
 	public List<CircleVO> selectCircleList(CircleDTO circleDTO);
 
 
+    String saveCircle(CircleEntity circle);
 }
diff --git a/src/main/java/org/springblade/modules/circle/service/impl/CircleCommentServiceImpl.java b/src/main/java/org/springblade/modules/circle/service/impl/CircleCommentServiceImpl.java
index 261ecd8..7b71ede 100644
--- a/src/main/java/org/springblade/modules/circle/service/impl/CircleCommentServiceImpl.java
+++ b/src/main/java/org/springblade/modules/circle/service/impl/CircleCommentServiceImpl.java
@@ -22,8 +22,12 @@
 import org.springblade.modules.circle.mapper.CircleCommentMapper;
 import org.springblade.modules.circle.service.ICircleCommentService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.words.WorksService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.Map;
 
 /**
  * 圈子评论表 服务实现类
@@ -34,10 +38,37 @@
 @Service
 public class CircleCommentServiceImpl extends ServiceImpl<CircleCommentMapper, CircleCommentEntity> implements ICircleCommentService {
 
+	@Autowired
+	private WorksService worksService;
+
 	@Override
 	public IPage<CircleCommentVO> selectCircleCommentPage(IPage<CircleCommentVO> page, CircleCommentVO circle) {
+		circle.setCheckStatus(2);
 		return page.setRecords(baseMapper.selectCircleCommentPage(page, circle));
 	}
 
-
+	@Override
+	public String saveComment(CircleCommentEntity circle) {
+		boolean flag = false;
+		// 先进行敏感词过滤
+		Map<String, Object> map = worksService.interceptWords(circle.getContent());
+		// 获取敏感词校验结果
+		String iswords = map.get("iswords").toString();
+		if (iswords.equals("false")) {
+			// 审核通过
+			circle.setCheckStatus(2);
+			flag = save(circle);
+			// 返回
+			return "操作成功";
+		} else {
+			// 审核不通过
+			circle.setCheckStatus(3);
+			// 设置审核不通过的说明
+			circle.setCheckRemark(map.get("words").toString());
+			// 保存
+			save(circle);
+			// 返回
+			return "当前评论内容中带有敏感词,当前评论无法生效!";
+		}
+	}
 }
diff --git a/src/main/java/org/springblade/modules/circle/service/impl/CircleServiceImpl.java b/src/main/java/org/springblade/modules/circle/service/impl/CircleServiceImpl.java
index c31a086..8646719 100644
--- a/src/main/java/org/springblade/modules/circle/service/impl/CircleServiceImpl.java
+++ b/src/main/java/org/springblade/modules/circle/service/impl/CircleServiceImpl.java
@@ -28,11 +28,13 @@
 import org.springblade.modules.circle.mapper.CircleMapper;
 import org.springblade.modules.circle.service.ICircleService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.words.WorksService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 圈子表 服务实现类
@@ -45,6 +47,9 @@
 
 	@Autowired
 	private ICircleLikeService iCircleLikeService;
+
+	@Autowired
+	private WorksService worksService;
 
 	@Autowired
 	private ICircleCommentService iCircleCommentService;
@@ -90,6 +95,22 @@
 		return this.baseMapper.selectCircleList(circleDTO);
 	}
 
-
-
+	@Override
+	public String saveCircle(CircleEntity circle) {
+		boolean flag = false;
+		// 先进行敏感词过滤
+		Map<String, Object> map = worksService.interceptWords(circle.getCircleText());
+		// 获取敏感词校验结果
+		String iswords = map.get("iswords").toString();
+		if (iswords.equals("false")) {
+			// 审核通过
+			flag = save(circle);
+			// 返回
+			return "操作成功";
+		} else {
+			// 审核不通过
+			// 返回
+			return "当前发布的内容中带有敏感词信息,当前发布无法生效!";
+		}
+	}
 }
diff --git a/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java b/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
index 384908b..37dea46 100644
--- a/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
+++ b/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
@@ -18,6 +18,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.models.auth.In;
 import org.springblade.common.node.TreeIntegerNode;
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.modules.label.entity.LabelEntity;
@@ -26,6 +27,7 @@
 import org.springblade.modules.label.vo.LabelVO;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -46,6 +48,7 @@
 
 	/**
 	 * 标签查询,按父id查询下级
+	 *
 	 * @param label
 	 * @return
 	 */
@@ -55,11 +58,11 @@
 		List<Integer> list = new ArrayList<>();
 		// 遍历
 		labelList.forEach((id, treeNode) -> {
-			if (treeNode.getHasChildren()){
+			if (treeNode.getHasChildren()) {
 				list.add(id);
 			}
 		});
-		if (list.size()>0) {
+		if (list.size() > 0) {
 			// 查询子集
 			Map<Integer, TreeIntegerNode> childrenLabelList = baseMapper.getChildrenLabelList(list);
 			// 合并集合
@@ -79,6 +82,10 @@
 
 	private void recursion(TreeIntegerNode node) {
 		if (node.getChildren() != null && node.getChildren().size() > 0) {
+//			BigDecimal bigDecimal = BigDecimal.valueOf(0);
+//			node.setCount(node.getChildren().stream().map(item -> {
+//				bigDecimal.add(BigDecimal.valueOf(item.getCount()));
+//			}));
 			node.getChildren().forEach(node2 -> recursion(node2));
 		} else {
 			node.setChildren(null);

--
Gitblit v1.9.3