RecommendByHot_scores
Change-Id: Icfef76f6ce21a60288c61d60ad1cd2d70045f953
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);
}