diff --git a/src/main/java/com/guwan/backend/constant/SensitiveWordConstants.java b/src/main/java/com/guwan/backend/constant/SensitiveWordConstants.java new file mode 100644 index 0000000..40aed89 --- /dev/null +++ b/src/main/java/com/guwan/backend/constant/SensitiveWordConstants.java @@ -0,0 +1,11 @@ +package com.guwan.backend.constant; + +import java.util.Set; + +public class SensitiveWordConstants { + public static final Set SENSITIVE_WORD = Set.of( + "傻瓜", + "笨蛋", + "白痴" + ); +} diff --git a/src/main/java/com/guwan/backend/service/impl/ReviewServiceImpl.java b/src/main/java/com/guwan/backend/service/impl/ReviewServiceImpl.java index 4399d99..e812291 100644 --- a/src/main/java/com/guwan/backend/service/impl/ReviewServiceImpl.java +++ b/src/main/java/com/guwan/backend/service/impl/ReviewServiceImpl.java @@ -2,6 +2,8 @@ package com.guwan.backend.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guwan.backend.constant.SensitiveWordConstants; +import com.guwan.backend.filter.SensitiveWordFilter; import com.guwan.backend.mapper.RatingDistributionMapper; import com.guwan.backend.mapper.ReviewMapper; import com.guwan.backend.pojo.dto.SubmitReviewDTO; @@ -13,7 +15,10 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.Date; +import java.util.HashSet; +import java.util.Set; /** * @author 12455 @@ -40,7 +45,14 @@ public class ReviewServiceImpl extends ServiceImpl review.setUserId(String.valueOf(submitReviewDTO.getUserId())); Integer rating = submitReviewDTO.getRating(); review.setRating(rating); - review.setContent(submitReviewDTO.getContent()); + // TODO DFA算法 + + SensitiveWordFilter filter = new SensitiveWordFilter(SensitiveWordConstants.SENSITIVE_WORD); + + String content = submitReviewDTO.getContent(); + content = filter.replace(content); + + review.setContent(content); review.setDate(new Date()); review.setCreatedAt(new Date()); review.setUpdatedAt(new Date());