
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<?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">
<!--
작성자 : 방선주
작성일 : 2024.05.27
내 용 : 게시판 댓글 관련
-->
<mapper namespace="com.takensoft.cms.bbs.dao.CmntDAO">
<resultMap id="CmntMap" type="CmntVO">
<result property="cmntId" column="cmnt_id"/>
<result property="bbsId" column="bbs_id"/>
<result property="upCmntId" column="up_cmnt_id"/>
<result property="cmntCn" column="cmnt_cn"/>
<result property="cmntGrd" column="cmnt_grd"/>
<result property="cmntSn" column="cmnt_sn"/>
<result property="useYn" column="use_yn"/>
<result property="rgtr" column="rgtr"/>
<result property="regDt" column="reg_dt"/>
<result property="mdfr" column="mdfr"/>
<result property="mdfcnDt" column="mdfcn_dt"/>
</resultMap>
<!--
작성자 : 방선주
작성일 : 2024.05.27
내 용 : 게시판 댓글 등록
-->
<insert id="saveCmnt" parameterType="CmntVO">
INSERT INTO cmnt(
bbs_id
, up_cmnt_id
, cmnt_cn
, cmnt_grd
, cmnt_sn
, use_yn
, rgtr
, reg_dt
) VALUES (
#{bbsId}
, #{upCmntId}
, #{cmntCn}
, #{cmntGrd}
, #{cmntSn}
, 'Y'
, #{rgtr}
, now()
);
</insert>
<!--
작성자 : 방선주
작성일 : 2024.05.27
내 용 : 부모가 같은 댓글 개수 조회
-->
<select id="getCmntCount" parameterType="CmntVO" resultType="Integer">
SELECT COUNT(*)
FROM cmnt
WHERE bbs_id = #{bbsId}
<if test="upCmntId != null">
AND up_cmnt_id = #{upCmntId}
</if>
AND use_yn = 'Y'
</select>
<!--
작성자 : 방선주
작성일 : 2024.05.27
내 용 : 부모의 정보 조회
-->
<select id="findParentCmnt" parameterType="int" resultMap="CmntMap">
SELECT cmnt_id
, bbs_id
, up_cmnt_id
, cmnt_cn
, cmnt_grd
, cmnt_sn
, use_yn
, rgtr
, TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
, mdfr
, TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
FROM cmnt
WHERE cmnt_id = #{upCmntId}
</select>
<!--
작성자 : 방선주
작성일 : 2024.05.27
내 용 : 댓글 조회
-->
<select id="findCmntList" parameterType="String" resultMap="CmntMap">
WITH RECURSIVE CommentHierarchy AS (
SELECT cm1.cmnt_id
, cm1.bbs_id
, cm1.up_cmnt_id
, cm1.cmnt_cn
, cm1.cmnt_grd
, cm1.cmnt_sn
, cm1.use_yn
, cm1.rgtr
, TO_CHAR(cm1.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
, rgtrInfo.mbr_nm AS rgtrNm
, cm1.mdfr
, TO_CHAR(cm1.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
, mdfrInfo.mbr_nm AS mdfrNm
FROM cmnt cm1
LEFT JOIN mbr_info rgtrInfo ON cm1.rgtr = rgtrInfo.mbr_id
LEFT JOIN mbr_info mdfrInfo ON cm1.mdfr = mdfrInfo.mbr_id
WHERE cm1.bbs_id = #{bbsId}
AND cm1.up_cmnt_id = 0
UNION ALL
SELECT cm.cmnt_id
, cm.bbs_id
, cm.up_cmnt_id
, cm.cmnt_cn
, cm.cmnt_grd
, cm.cmnt_sn
, cm.use_yn
, cm.rgtr
, TO_CHAR(cm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
, rgtrInfo.mbr_nm AS rgtrNm
, cm.mdfr
, TO_CHAR(cm.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
, mdfrInfo.mbr_nm AS mdfrNm
FROM cmnt cm
INNER JOIN CommentHierarchy ch ON cm.up_cmnt_id = ch.cmnt_id
LEFT JOIN mbr_info rgtrInfo ON cm.rgtr = rgtrInfo.mbr_id
LEFT JOIN mbr_info mdfrInfo ON cm.mdfr = mdfrInfo.mbr_id
)
SELECT * FROM CommentHierarchy
ORDER BY cmnt_sn, cmnt_id
</select>
<!--
작성자 : 방선주
작성일 : 2024.05.27
내 용 : 댓글 업데이트
-->
<update id="updateCmnt" parameterType="CmntVO">
UPDATE cmnt
SET cmnt_cn = #{cmntCn}
, mdfr = #{mdfr}
, mdfcn_dt = now()
WHERE cmnt_id = #{cmntId}
</update>
<!--
작성자 : 방선주
작성일 : 2024.05.27
내 용 : 댓글 삭제
-->
<update id="deleteCmnt" parameterType="CmntVO">
UPDATE cmnt
SET use_yn = #{useYn}
, mdfr = #{mdfr}
, mdfcn_dt = now()
WHERE cmnt_id = #{cmntId}
</update>
</mapper>