- post.notice 컬럼 추가(멱등 ALTER)
- 목록 정렬 ORDER BY notice DESC, id DESC (공지 최상단)
- 작성 시 공지 설정(관리자만 반영) + /posts/{id}/notice·unnotice 토글
- Post/PostSummary/PostDetail/PostRequest 에 notice 반영
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,8 @@ ALTER TABLE post ADD COLUMN IF NOT EXISTS block_reason VARCHAR(255) NULL;
|
||||
ALTER TABLE post ADD COLUMN IF NOT EXISTS category VARCHAR(30) NOT NULL DEFAULT 'community';
|
||||
-- 큰 이미지(base64 인라인) 수용을 위해 content 를 LONGTEXT 로 확대 (멱등)
|
||||
ALTER TABLE post MODIFY content LONGTEXT NOT NULL;
|
||||
-- 공지(상단 고정) — 관리자만 설정. 목록에서 최상단 노출 (멱등)
|
||||
ALTER TABLE post ADD COLUMN IF NOT EXISTS notice TINYINT(1) NOT NULL DEFAULT 0 COMMENT '공지(상단 고정)';
|
||||
|
||||
-- 태그 카테고리(그룹) — 예: 게시판, 게시판2 ...
|
||||
CREATE TABLE IF NOT EXISTS tag_category (
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
|
||||
<select id="findPage" resultType="com.sb.web.board.dto.PostSummary">
|
||||
SELECT
|
||||
p.id, p.title, p.author_name, p.view_count, p.blocked, p.created_at,
|
||||
p.id, p.title, p.author_name, p.view_count, p.blocked, p.notice, p.created_at,
|
||||
(SELECT COUNT(*) FROM comment c WHERE c.post_id = p.id) AS comment_count
|
||||
FROM post p
|
||||
<include refid="filter"/>
|
||||
ORDER BY p.id DESC
|
||||
ORDER BY p.notice DESC, p.id DESC
|
||||
LIMIT #{size} OFFSET #{offset}
|
||||
</select>
|
||||
|
||||
@@ -51,15 +51,15 @@
|
||||
|
||||
<select id="findById" parameterType="long" resultType="com.sb.web.board.domain.Post">
|
||||
SELECT id, title, content, author_id, author_name, view_count,
|
||||
blocked, block_reason, category, created_at, updated_at
|
||||
blocked, block_reason, notice, category, created_at, updated_at
|
||||
FROM post
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insert" parameterType="com.sb.web.board.domain.Post"
|
||||
useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO post (title, content, author_id, author_name, view_count, category, created_at, updated_at)
|
||||
VALUES (#{title}, #{content}, #{authorId}, #{authorName}, 0, #{category}, NOW(), NOW())
|
||||
INSERT INTO post (title, content, author_id, author_name, view_count, notice, category, created_at, updated_at)
|
||||
VALUES (#{title}, #{content}, #{authorId}, #{authorName}, 0, #{notice}, #{category}, NOW(), NOW())
|
||||
</insert>
|
||||
|
||||
<update id="update" parameterType="com.sb.web.board.domain.Post">
|
||||
@@ -80,4 +80,8 @@
|
||||
UPDATE post SET blocked = #{blocked}, block_reason = #{blockReason} WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="updateNotice">
|
||||
UPDATE post SET notice = #{notice} WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user