historyviewUpdate

Change-Id: I1a333931b6c999a5b267a51287d745a369ee58a6
diff --git a/src/main/java/com/example/g8backend/service/IPostService.java b/src/main/java/com/example/g8backend/service/IPostService.java
index 855952e..cd82ef4 100644
--- a/src/main/java/com/example/g8backend/service/IPostService.java
+++ b/src/main/java/com/example/g8backend/service/IPostService.java
@@ -1,6 +1,7 @@
 package com.example.g8backend.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.example.g8backend.dto.PostHistoryDTO;
 import com.example.g8backend.entity.Post;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -30,4 +31,6 @@
     Page<Post> getRecommendedPosts(int page, int size, Long userId);
 
     Page<Post> getRecommendedByTags(int page, int size, Long userId);
+
+    List<PostHistoryDTO> getViewHistoryWithTitles(Long userId);
 }
diff --git a/src/main/java/com/example/g8backend/service/impl/PostServiceImpl.java b/src/main/java/com/example/g8backend/service/impl/PostServiceImpl.java
index 5faa4ac..1fda1e2 100644
--- a/src/main/java/com/example/g8backend/service/impl/PostServiceImpl.java
+++ b/src/main/java/com/example/g8backend/service/impl/PostServiceImpl.java
@@ -2,6 +2,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.g8backend.dto.PostHistoryDTO;
 import com.example.g8backend.entity.*;
 import com.example.g8backend.mapper.*;
 import com.example.g8backend.service.IPostService;
@@ -177,4 +178,30 @@
                 .orderByDesc("hot_score"); // 确保排序条件正确
         return postMapper.selectPage(new Page<>(page, size), queryWrapper);
     }
+
+    @Override
+    public List<PostHistoryDTO> getViewHistoryWithTitles(Long userId) {
+        // 1. 查询浏览记录(按时间倒序)
+        List<PostView> history = postViewMapper.selectList(
+                new QueryWrapper<PostView>()
+                        .eq("user_id", userId)
+                        .orderByDesc("view_time")
+        );
+
+
+        // 2. 转换为DTO并填充标题
+        return history.stream().map(view -> {
+            PostHistoryDTO dto = new PostHistoryDTO();
+            dto.setViewId(view.getViewId());
+            dto.setPostId(view.getPostId());
+            dto.setViewTime(view.getViewTime());
+
+            // 3. 查询帖子标题
+            Post post = postMapper.selectById(view.getPostId());
+            if (post != null) {
+                dto.setPostTitle(post.getPostTitle());
+            }
+            return dto;
+        }).collect(Collectors.toList());
+    }
 }
\ No newline at end of file