mirror of https://github.com/halo-dev/halo
Enhance filter ip address service
parent
427a0b86e7
commit
c054644035
|
@ -220,19 +220,20 @@ public interface BaseCommentService<COMMENT extends BaseComment> extends CrudSer
|
|||
*
|
||||
* @param comment comment dto must not be null
|
||||
*/
|
||||
void filterIpAddress(@NonNull BaseCommentDTO comment);
|
||||
<T extends BaseCommentDTO> T filterIpAddress(@NonNull T comment);
|
||||
|
||||
/**
|
||||
* Filters comment ip address.
|
||||
*
|
||||
* @param comments comment dto list
|
||||
*/
|
||||
void filterIpAddress(@Nullable List<BaseCommentDTO> comments);
|
||||
<T extends BaseCommentDTO> List<T> filterIpAddress(@Nullable List<T> comments);
|
||||
|
||||
/**
|
||||
* Filters comment ip address.
|
||||
*
|
||||
* @param commentPage comment page
|
||||
*/
|
||||
void filterIpAddress(@NonNull Page<BaseCommentDTO> commentPage);
|
||||
<T extends BaseCommentDTO> Page<T> filterIpAddress(@NonNull Page<T> commentPage);
|
||||
|
||||
}
|
||||
|
|
|
@ -471,26 +471,50 @@ public abstract class BaseCommentServiceImpl<COMMENT extends BaseComment> extend
|
|||
}
|
||||
|
||||
@Override
|
||||
public void filterIpAddress(BaseCommentDTO comment) {
|
||||
public <T extends BaseCommentDTO> T filterIpAddress(@NonNull T comment) {
|
||||
Assert.notNull(comment, "Base comment dto must not be null");
|
||||
|
||||
// Clear ip address
|
||||
comment.setIpAddress("");
|
||||
|
||||
// Handle base comment vo
|
||||
if (comment instanceof BaseCommentVO) {
|
||||
BaseCommentVO baseCommentVO = (BaseCommentVO) comment;
|
||||
Queue<BaseCommentVO> commentQueue = new LinkedList<>();
|
||||
commentQueue.offer(baseCommentVO);
|
||||
while (!commentQueue.isEmpty()) {
|
||||
BaseCommentVO current = commentQueue.poll();
|
||||
|
||||
// Clear ip address
|
||||
current.setIpAddress("");
|
||||
|
||||
if (!CollectionUtils.isEmpty(current.getChildren())) {
|
||||
// Add children
|
||||
commentQueue.addAll(current.getChildren());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return comment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void filterIpAddress(List<BaseCommentDTO> comments) {
|
||||
public <T extends BaseCommentDTO> List<T> filterIpAddress(List<T> comments) {
|
||||
if (CollectionUtils.isEmpty(comments)) {
|
||||
return;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
comments.forEach(this::filterIpAddress);
|
||||
|
||||
return comments;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void filterIpAddress(Page<BaseCommentDTO> commentPage) {
|
||||
public <T extends BaseCommentDTO> Page<T> filterIpAddress(Page<T> commentPage) {
|
||||
Assert.notNull(commentPage, "Comment page must not be null");
|
||||
commentPage.forEach(this::filterIpAddress);
|
||||
|
||||
return commentPage;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue