
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
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>