diff --git a/src/main/java/run/halo/app/content/comment/CommentServiceImpl.java b/src/main/java/run/halo/app/content/comment/CommentServiceImpl.java index 1023860d7..231b2acdc 100644 --- a/src/main/java/run/halo/app/content/comment/CommentServiceImpl.java +++ b/src/main/java/run/halo/app/content/comment/CommentServiceImpl.java @@ -2,10 +2,12 @@ package run.halo.app.content.comment; import static run.halo.app.extension.router.selector.SelectorUtil.labelAndFieldSelectorToPredicate; +import java.time.Instant; import java.util.Comparator; import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.security.core.context.ReactiveSecurityContextHolder; import org.springframework.stereotype.Component; @@ -81,6 +83,10 @@ public class CommentServiceImpl implements CommentService { } comment.getSpec() .setApproved(Boolean.FALSE.equals(commentSetting.getRequireReviewForNew())); + if (BooleanUtils.isTrue(comment.getSpec().getApproved()) + && comment.getSpec().getApprovedTime() == null) { + comment.getSpec().setApprovedTime(Instant.now()); + } comment.getSpec().setHidden(false); if (comment.getSpec().getOwner() != null) { return Mono.just(comment); diff --git a/src/main/java/run/halo/app/content/comment/ReplyServiceImpl.java b/src/main/java/run/halo/app/content/comment/ReplyServiceImpl.java index dedd85ae0..0863116f5 100644 --- a/src/main/java/run/halo/app/content/comment/ReplyServiceImpl.java +++ b/src/main/java/run/halo/app/content/comment/ReplyServiceImpl.java @@ -6,6 +6,7 @@ import java.time.Instant; import java.util.Comparator; import java.util.function.Function; import java.util.function.Predicate; +import org.apache.commons.lang3.BooleanUtils; import org.springframework.security.core.context.ReactiveSecurityContextHolder; import org.springframework.stereotype.Service; import reactor.core.publisher.Flux; @@ -62,6 +63,11 @@ public class ReplyServiceImpl implements ReplyService { reply.getSpec().setApproved( Boolean.FALSE.equals(commentSetting.getRequireReviewForNew())); reply.getSpec().setHidden(!reply.getSpec().getApproved()); + + if (BooleanUtils.isTrue(reply.getSpec().getApproved()) + && reply.getSpec().getApprovedTime() == null) { + reply.getSpec().setApprovedTime(Instant.now()); + } return reply; }); }) diff --git a/src/main/java/run/halo/app/core/extension/Comment.java b/src/main/java/run/halo/app/core/extension/Comment.java index 666da8708..42a0f08c4 100644 --- a/src/main/java/run/halo/app/core/extension/Comment.java +++ b/src/main/java/run/halo/app/core/extension/Comment.java @@ -65,6 +65,8 @@ public class Comment extends AbstractExtension { private String ipAddress; + private Instant approvedTime; + @Schema(required = true, defaultValue = "0") private Integer priority;