perf(novel-front): 优化评论时间显示

This commit is contained in:
xiongxiaoyang
2025-07-12 14:08:42 +08:00
parent 3c409023e5
commit 675b156094
5 changed files with 74 additions and 6 deletions

View File

@ -0,0 +1,23 @@
package com.java2nb.novel.core.serialize;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.java2nb.novel.core.utils.DateUtil;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.util.Date;
public class TimeAgoFormatSerialize extends JsonSerializer<Date> {
@Override
public void serialize(Date s, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException {
if (s != null) {
jsonGenerator.writeString(DateUtil.formatTimeAgo(s));
}
}
}

View File

@ -1,9 +1,8 @@
package com.java2nb.novel.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.java2nb.novel.core.serialize.CommentUserNameSerialize;
import com.java2nb.novel.entity.BookComment;
import com.java2nb.novel.core.serialize.TimeAgoFormatSerialize;
import com.java2nb.novel.entity.BookCommentReply;
import lombok.Data;
@ -20,7 +19,7 @@ public class BookCommentReplyVO extends BookCommentReply {
private String createUserPhoto;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@JsonSerialize(using = TimeAgoFormatSerialize.class)
private Date createTime;
private Long likesCount;

View File

@ -1,8 +1,9 @@
package com.java2nb.novel.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.java2nb.novel.core.serialize.CommentUserNameSerialize;
import com.java2nb.novel.core.serialize.TimeAgoFormatSerialize;
import com.java2nb.novel.core.utils.DateUtil;
import com.java2nb.novel.entity.BookComment;
import lombok.Data;
@ -19,13 +20,17 @@ public class BookCommentVO extends BookComment {
private String createUserPhoto;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@JsonSerialize(using = TimeAgoFormatSerialize.class)
private Date createTime;
private Long likesCount;
private Long unLikesCount;
public String getCreateTimeFormat() {
return DateUtil.formatTimeAgo(getCreateTime());
}
@Override
public String toString() {
return super.toString();

View File

@ -114,7 +114,7 @@
th:text="${comment.location} + '读者'"></span></span></li>
<li class="dec" th:utext="${comment.commentContent}"></li>
<li class="other cf"><span class="time fl"
th:text="${#calendars.format(comment.createTime, 'yyyy-MM-dd HH:mm:ss')}"></span><span
th:text="${comment.createTimeFormat}"></span><span
class="fr"><a th:href="'javascript:toggleCommentUnLike(\''+${comment.id}+'\')'" onclick="javascript:;" class="zan"
style="padding-left: 10px">踩<i class="num" th:id="'unLikeCount'+${comment.id}">([[${comment.unLikesCount}]])</i></a></span><span
class="fr"><a th:href="'javascript:toggleCommentLike(\''+${comment.id}+'\')'" class="zan"