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 }}