From f6d7020165f0786c5f8e4f6b95754b78559b62d6 Mon Sep 17 00:00:00 2001 From: WilliamColton Date: Mon, 4 Aug 2025 16:29:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=98=BE=E7=A4=BA=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E8=AF=84=E8=AE=BA=E6=97=B6=E9=97=B4=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/openisle/controller/UserController.java | 4 +++- .../main/java/com/openisle/repository/CommentRepository.java | 4 ++++ .../src/main/java/com/openisle/service/CommentService.java | 4 ++++ frontend/src/views/ProfileView.vue | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/openisle/controller/UserController.java b/backend/src/main/java/com/openisle/controller/UserController.java index 1aef3a650..0501c07b1 100644 --- a/backend/src/main/java/com/openisle/controller/UserController.java +++ b/backend/src/main/java/com/openisle/controller/UserController.java @@ -75,7 +75,7 @@ public class UserController { @PutMapping("/me") public ResponseEntity updateProfile(@RequestBody UpdateProfileDto dto, - Authentication auth) { + Authentication auth) { User user = userService.updateProfile(auth.getName(), dto.getUsername(), dto.getIntroduction()); return ResponseEntity.ok(Map.of( "token", jwtService.generateToken(user.getUsername()), @@ -239,6 +239,7 @@ public class UserController { dto.setFollowing(subscriptionService.countSubscribed(user.getUsername())); dto.setCreatedAt(user.getCreatedAt()); dto.setLastPostTime(postService.getLastPostTime(user.getUsername())); + dto.setLastCommentTime(commentService.getLastCommentTimeOfUserByUserId(user.getId())); dto.setTotalViews(postService.getTotalViews(user.getUsername())); dto.setVisitedDays(userVisitService.countVisits(user.getUsername())); dto.setReadPosts(postReadService.countReads(user.getUsername())); @@ -306,6 +307,7 @@ public class UserController { private long following; private java.time.LocalDateTime createdAt; private java.time.LocalDateTime lastPostTime; + private java.time.LocalDateTime lastCommentTime; private long totalViews; private long visitedDays; private long readPosts; diff --git a/backend/src/main/java/com/openisle/repository/CommentRepository.java b/backend/src/main/java/com/openisle/repository/CommentRepository.java index 1b4b8e092..12f20fecd 100644 --- a/backend/src/main/java/com/openisle/repository/CommentRepository.java +++ b/backend/src/main/java/com/openisle/repository/CommentRepository.java @@ -23,4 +23,8 @@ public interface CommentRepository extends JpaRepository { @org.springframework.data.jpa.repository.Query("SELECT COUNT(c) FROM Comment c WHERE c.author.username = :username AND c.createdAt >= :start") long countByAuthorAfter(@org.springframework.data.repository.query.Param("username") String username, @org.springframework.data.repository.query.Param("start") java.time.LocalDateTime start); + + @org.springframework.data.jpa.repository.Query("SELECT MAX(c.createdAt) FROM Comment c WHERE c.author.id = :userId") + java.time.LocalDateTime findLastCommentTimeOfUserByUserId(@org.springframework.data.repository.query.Param("userId") Long userId); + } diff --git a/backend/src/main/java/com/openisle/service/CommentService.java b/backend/src/main/java/com/openisle/service/CommentService.java index ddae361f9..96ed10f4e 100644 --- a/backend/src/main/java/com/openisle/service/CommentService.java +++ b/backend/src/main/java/com/openisle/service/CommentService.java @@ -76,6 +76,10 @@ public class CommentService { return comment; } + public java.time.LocalDateTime getLastCommentTimeOfUserByUserId(Long userId) { // 根据用户id查询该用户最后回复时间 + return commentRepository.findLastCommentTimeOfUserByUserId(userId); + } + @Transactional public Comment addReply(String username, Long parentId, String content) { log.debug("addReply called by user {} for parent comment {}", username, parentId); diff --git a/frontend/src/views/ProfileView.vue b/frontend/src/views/ProfileView.vue index 0a9308cc3..538830a6c 100644 --- a/frontend/src/views/ProfileView.vue +++ b/frontend/src/views/ProfileView.vue @@ -44,6 +44,10 @@
最后发帖时间:
{{ formatDate(user.lastPostTime) }}
+
+
最后评论时间:
+
{{ user.lastCommentTime!=null?formatDate(user.lastCommentTime):"暂无评论" }}
+
浏览量:
{{ user.totalViews }}