132 lines
4.6 KiB
XML
132 lines
4.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="io.company.localhost.mapper.LocalBordMapper">
|
|
|
|
<!-- 공지사항 조회 -->
|
|
<select id="getNotices" resultType="java.util.Map">
|
|
SELECT
|
|
LOCBRDSEQ,
|
|
LOCBRDTTL,
|
|
LOCBRDCON,
|
|
LOCBRDRDT,
|
|
LOCBRDTYP,
|
|
FROM localbord
|
|
WHERE b.LOCBRDTYP = 'N'
|
|
ORDER BY b.LOCBRDRDT DESC
|
|
</select>
|
|
|
|
<!-- 자유/비밀 게시판 조회 -->
|
|
<select id="getGeneralPosts" resultType="map">
|
|
SELECT
|
|
LOCBRDSEQ AS id,
|
|
LOCBRDTTL AS title,
|
|
LOCBRDCON AS content,
|
|
LOCBRDRDT AS date
|
|
FROM localbord
|
|
WHERE LOCBRDTYP IN ('F', 'S')
|
|
ORDER BY LOCBRDRDT DESC
|
|
</select>
|
|
|
|
<!-- 게시물 작성 -->
|
|
<insert id="createBoard" parameterType="map" useGeneratedKeys="true" keyProperty="LOCBRDSEQ">
|
|
INSERT INTO localbord (LOCBRDTTL, LOCBRDCON, LOCBRDCAT, MEMBERSEQ, LOCBRDCNT, LOCBRDRDT, LOCBRDUDT, LOCBRDPWD, LOCBRDTYP)
|
|
VALUES (#{LOCBRDTTL}, #{LOCBRDCON}, #{LOCBRDCAT}, #{MEMBERSEQ}, 0, NOW(), NOW(), #{LOCBRDPWD}, #{LOCBRDTYP})
|
|
</insert>
|
|
|
|
|
|
<!-- 첨부파일 저장 -->
|
|
<insert id="addAttachment" parameterType="map">
|
|
INSERT INTO commonfil (
|
|
CMNBRDSEQ,CMNFLENAM,CMNFLEORG,CMNFLEPAT,
|
|
CMNFLEEXT,CMNFLESIZ,CMNFLEREG,CMNFLERDT
|
|
) VALUES (
|
|
#{CMNBRDSEQ},#{CMNFLENAM},#{CMNFLEORG},#{CMNFLEPAT},
|
|
#{CMNFLEEXT},#{CMNFLESIZ},#{CMNFLEREG},#{CMNFLERDT}
|
|
)
|
|
</insert>
|
|
|
|
|
|
<!-- 게시물 상세정보 조회 -->
|
|
<select id="selectBoardDetail" parameterType="long" resultType="map">
|
|
SELECT LOCBRDSEQ AS id, LOCBRDTTL AS title, LOCBRDCON AS content, LOCBRDRDT AS date, LOCBRDTYP AS type
|
|
FROM localbord
|
|
WHERE LOCBRDSEQ = #{boardId}
|
|
</select>
|
|
|
|
|
|
<!-- 첨부파일 목록 조회 -->
|
|
<select id="selectAttachments" parameterType="long" resultType="map">
|
|
SELECT CMNFLESEQ AS id, CMNFLEORG AS originalName, CMNFLENAM AS fileName, CMNFLEPAT AS path,
|
|
CMNFLEEXT AS extension, CMNFLESIZ AS size, CMNFLERDT AS uploadDate
|
|
FROM commonfil
|
|
WHERE CMNBRDSEQ = #{boardId}
|
|
ORDER BY CMNFLERDT DESC
|
|
</select>
|
|
|
|
|
|
<!-- 게시물 삭제 -->
|
|
<delete id="deleteBoard">
|
|
DELETE FROM localbord WHERE LOCBRDSEQ = #{LOCBRDSEQ}
|
|
</delete>
|
|
|
|
<!-- 게시물 수정 -->
|
|
<update id="updateBoard">
|
|
UPDATE localbord
|
|
SET LOCBRDTTL = #{LOCBRDTTL}, LOCBRDCON = #{LOCBRDCON}, LOCBRDUDT = NOW()
|
|
WHERE LOCBRDSEQ = #{LOCBRDSEQ}
|
|
</update>
|
|
|
|
<!-- 게시물 좋아요/싫어요 추가 -->
|
|
<insert id="reactToBoard">
|
|
INSERT INTO localgorb (LOCBRDSEQ, LOCCMTSEQ, MEMBERSEQ, LOCGOBGOD, LOCGOBBAD )
|
|
VALUES (#{LOCBRDSEQ}, #{LOCCMTSEQ}, #{MEMBERSEQ}, #{LOCGOBGOD}, #{LOCGOBBAD})
|
|
ON DUPLICATE KEY UPDATE LOCGOBGOD = #{LOCGOBGOD}, LOCGOBBAD = #{LOCGOBBAD}
|
|
</insert>
|
|
|
|
<!-- 댓글/대댓글 조회 -->
|
|
<select id="getComments" resultType="java.util.Map">
|
|
SELECT LOCCMTSEQ, LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT
|
|
FROM loccomt
|
|
WHERE LOCBRDSEQ = #{LOCBRDSEQ}
|
|
ORDER BY LOCCMTPNT ASC, LOCCMTRDT ASC
|
|
</select>
|
|
|
|
<!-- 댓글/대댓글 작성 -->
|
|
<insert id="addCommentOrReply">
|
|
INSERT INTO loccomt (LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT)
|
|
VALUES (#{LOCBRDSEQ}, #{LOCCMTRPY}, #{LOCCMTPWD}, NOW(), #{LOCCMTPNT})
|
|
</insert>
|
|
|
|
<!-- 댓글/대댓글 수정 -->
|
|
<update id="updateComment">
|
|
UPDATE loccomt
|
|
SET LOCCMTRPY = #{LOCCMTRPY}, LOCCMTUDT = NOW()
|
|
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
|
|
</update>
|
|
|
|
<!-- 댓글/대댓글 삭제 -->
|
|
<delete id="deleteComment">
|
|
DELETE FROM loccomt
|
|
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
|
|
</delete>
|
|
|
|
<!-- 비밀번호 확인 (게시물) -->
|
|
<select id="checkBoardPassword" resultType="boolean">
|
|
SELECT COUNT(*) > 0 FROM localbord WHERE LOCBRDSEQ = #{LOCBRDSEQ} AND LOCBRDPWD = #{LOCBRDPWD}
|
|
</select>
|
|
|
|
<!-- 비밀번호 확인 (댓글) -->
|
|
<select id="checkCommentPassword" resultType="boolean">
|
|
SELECT COUNT(*) > 0 FROM loccomt WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
|
|
</select>
|
|
|
|
<!-- 비밀 게시판 여부 확인 -->
|
|
<select id="isSecretBoard" resultType="boolean">
|
|
SELECT CASE WHEN LOCBRDTYP = 'S' THEN TRUE ELSE FALSE END
|
|
FROM localbord
|
|
WHERE LOCBRDSEQ = #{LOCBRDSEQ}
|
|
</select>
|
|
|
|
|
|
</mapper>
|