RecommendByHot_scores

Change-Id: Icfef76f6ce21a60288c61d60ad1cd2d70045f953
diff --git a/src/main/java/com/example/g8backend/mapper/CommentMapper.java b/src/main/java/com/example/g8backend/mapper/CommentMapper.java
index b8fa1bf..8387b80 100644
--- a/src/main/java/com/example/g8backend/mapper/CommentMapper.java
+++ b/src/main/java/com/example/g8backend/mapper/CommentMapper.java
@@ -23,4 +23,7 @@
     // 删除评论
     @Delete("DELETE FROM comments WHERE comment_id = #{commentId}")
     int deleteById(Long commentId);
+
+    @Select("SELECT COUNT(*) FROM comments WHERE post_id = #{postId}")
+    Long selectCountByPostId(@Param("postId") Long postId);
 }
diff --git a/src/main/java/com/example/g8backend/mapper/PostMapper.java b/src/main/java/com/example/g8backend/mapper/PostMapper.java
index d49125e..b5a5280 100644
--- a/src/main/java/com/example/g8backend/mapper/PostMapper.java
+++ b/src/main/java/com/example/g8backend/mapper/PostMapper.java
@@ -54,4 +54,27 @@
 
     @Update("UPDATE posts SET view_count = view_count + 1 WHERE post_id = #{postId}")
     void incrementViewCount(Long postId);
+
+    @Select("SELECT COUNT(*) FROM post_likes WHERE post_id = #{postId}")
+    Long selectLikeCount(Long postId);
+
+    @Select("SELECT post_id FROM post_views WHERE user_id = #{userId}")
+    List<Long> findViewedPostIds(Long userId);
+
+    @Update({
+            "<script>",
+            "UPDATE posts",
+            "SET hot_score = CASE",
+            "  <foreach collection='posts' item='post'>",
+            "    WHEN post_id = #{post.postId} THEN #{post.hotScore}",
+            "  </foreach>",
+            "END,",
+            "last_calculated = NOW()",
+            "WHERE post_id IN",
+            "  <foreach collection='posts' item='post' open='(' separator=',' close=')'>",
+            "    #{post.postId}",
+            "  </foreach>",
+            "</script>"
+    })
+    int batchUpdateHotScore(@Param("posts") List<Post> posts);
 }