- GET /api/auth/profile: 아바타·포인트 포함 전체 프로필(재로그인 없이 최신화) - 자기 글/댓글 추천·비추천 차단(400) - 인기 글: 등록 1일 이내 + 추천 50건 이상이면 목록 상단 최대 3건 노출(hot) - 인기 댓글: 동일 조건으로 댓글 목록 상단 정렬(hot) - PostSummary 에 downCount 추가(비추천 20+ 블라인드 판정용) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,8 @@
|
||||
p.id, p.title, p.author_id, p.author_name, p.view_count, p.blocked, p.notice, p.created_at,
|
||||
m.google_picture AS author_google_picture, m.profile_image AS author_profile_image,
|
||||
(SELECT COUNT(*) FROM comment c WHERE c.post_id = p.id) AS comment_count,
|
||||
(SELECT COUNT(*) FROM post_vote v WHERE v.post_id = p.id AND v.vote_type = 'UP') AS up_count
|
||||
(SELECT COUNT(*) FROM post_vote v WHERE v.post_id = p.id AND v.vote_type = 'UP') AS up_count,
|
||||
(SELECT COUNT(*) FROM post_vote v WHERE v.post_id = p.id AND v.vote_type = 'DOWN') AS down_count
|
||||
FROM post p
|
||||
LEFT JOIN member m ON m.id = p.author_id
|
||||
<include refid="filter"/>
|
||||
@@ -46,6 +47,24 @@
|
||||
LIMIT #{size} OFFSET #{offset}
|
||||
</select>
|
||||
|
||||
<!-- 인기 글: 등록 #{hours}시간 이내 + 추천 #{minUp}건 이상, 추천 많은 순 #{limit}건 (상단 노출용) -->
|
||||
<select id="findHotPosts" resultType="com.sb.web.board.dto.PostSummary">
|
||||
SELECT
|
||||
p.id, p.title, p.author_id, p.author_name, p.view_count, p.blocked, p.notice, p.created_at,
|
||||
m.google_picture AS author_google_picture, m.profile_image AS author_profile_image,
|
||||
(SELECT COUNT(*) FROM comment c WHERE c.post_id = p.id) AS comment_count,
|
||||
(SELECT COUNT(*) FROM post_vote v WHERE v.post_id = p.id AND v.vote_type = 'UP') AS up_count,
|
||||
(SELECT COUNT(*) FROM post_vote v WHERE v.post_id = p.id AND v.vote_type = 'DOWN') AS down_count
|
||||
FROM post p
|
||||
LEFT JOIN member m ON m.id = p.author_id
|
||||
WHERE p.notice = 0
|
||||
AND (#{category} IS NULL OR p.category = #{category})
|
||||
AND p.created_at >= NOW() - INTERVAL #{hours} HOUR
|
||||
AND (SELECT COUNT(*) FROM post_vote v WHERE v.post_id = p.id AND v.vote_type = 'UP') >= #{minUp}
|
||||
ORDER BY (SELECT COUNT(*) FROM post_vote v WHERE v.post_id = p.id AND v.vote_type = 'UP') DESC, p.id DESC
|
||||
LIMIT #{limit}
|
||||
</select>
|
||||
|
||||
<select id="countPage" resultType="long">
|
||||
SELECT COUNT(*)
|
||||
FROM post p
|
||||
|
||||
Reference in New Issue
Block a user