394 lines
9.7 KiB
XML
394 lines
9.7 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">
|
|
|
|
<!--
|
|
/**
|
|
* 게시물 관리 처리 쿼리문
|
|
* ** enterprise의 EgovBoard_SQL_mysql.xml => BoardMapper.xml가 존재하여 BBSAdminManageMapper.xml로 생성 **
|
|
*
|
|
* @author urp 인프라본부 나혁제
|
|
* @since 2025.01.20
|
|
* @version 1.0.0
|
|
* @see
|
|
*
|
|
* <pre>
|
|
*
|
|
* << 개정이력(Modification information) >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
*ㅡㅡㅡㅡㅡㅡㅡㅡ ㅡㅡㅡㅡㅡㅡㅡㅡ ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
|
|
* 2025.01.20 나혁제 최초작성
|
|
*
|
|
* </pre>
|
|
*/
|
|
-->
|
|
|
|
<mapper namespace="com.urpsys.itmsapi.bbs.dao.BBSAdminManageDAO">
|
|
|
|
<!-- 조건에 맞는 게시물 목록을 조회 한다. -->
|
|
<select id="selectBoardArticleList" parameterType="java.util.LinkedHashMap" resultType="java.util.LinkedHashMap">
|
|
|
|
SELECT a.NTT_ID AS nttId
|
|
, a.NTT_SJ AS nttSj
|
|
, a.FRST_REGR_ID AS frstRegisterId
|
|
, IFNULL(b.USER_NM, a.PSTGR_NM) AS frstRegisterNm
|
|
, DATE_FORMAT(a.FRST_REG_DTM, '%Y-%m-%d') AS frstRegisterPnttm
|
|
, a.INQ_CNT AS inqireCo
|
|
, a.PARNTSCTT_NO AS parnts
|
|
, a.CMNT_AT AS replyAt
|
|
, a.CMNT_LCTN AS replyLc
|
|
, a.USE_AT AS useAt
|
|
, a.ATCH_FILE_ID AS atchFileId
|
|
, a.BBS_ID AS bbsId
|
|
, a.PSTG_STRT_DTM AS ntceBgnde
|
|
, a.PSTG_END_DTM AS ntceEndde
|
|
FROM
|
|
TB_BBS_INFO AS a
|
|
LEFT OUTER JOIN
|
|
COMVNUSERMASTER AS b
|
|
ON
|
|
a.FRST_REGR_ID = b.ESNTL_ID
|
|
WHERE
|
|
a.BBS_ID = #{bbsId}
|
|
<if test="useAt != ''">
|
|
AND
|
|
a.USE_AT = #{useAt}
|
|
</if>
|
|
<if test="searchCnd == 0">
|
|
AND
|
|
a.NTT_SJ LIKE CONCAT ('%', #{searchWrd},'%')
|
|
</if>
|
|
<if test="searchCnd == 1">
|
|
AND
|
|
a.NTT_CN LIKE CONCAT ('%', #{searchWrd},'%')
|
|
</if>
|
|
<if test="searchCnd == 2">
|
|
AND
|
|
b.USER_NM LIKE CONCAT ('%', #{searchWrd},'%')
|
|
</if>
|
|
ORDER BY
|
|
a.SORT_SEQ
|
|
DESC
|
|
, NTT_NO
|
|
ASC
|
|
LIMIT
|
|
#{recordCountPerPage}
|
|
OFFSET
|
|
#{firstIndex}
|
|
</select>
|
|
|
|
<!-- 조건에 맞는 게시물 목록에 대한 전체 건수를 조회 한다. -->
|
|
<select id="selectBoardArticleListCnt" parameterType="java.util.LinkedHashMap" resultType="java.lang.Integer">
|
|
|
|
SELECT
|
|
COUNT(a.NTT_ID)
|
|
FROM
|
|
TB_BBS_INFO AS a
|
|
LEFT OUTER JOIN
|
|
COMVNUSERMASTER AS b
|
|
ON
|
|
a.FRST_REGR_ID = b.ESNTL_ID
|
|
WHERE
|
|
a.BBS_ID = #{bbsId}
|
|
<if test="useAt != ''">
|
|
AND
|
|
a.USE_AT = #{useAt}
|
|
</if>
|
|
<if test="searchCnd == 0">
|
|
AND
|
|
a.NTT_SJ LIKE CONCAT ('%', #{searchWrd},'%')
|
|
</if>
|
|
<if test="searchCnd == 1">
|
|
AND
|
|
a.NTT_CN LIKE CONCAT ('%', #{searchWrd},'%')
|
|
</if>
|
|
<if test="searchCnd == 2">
|
|
AND
|
|
b.USER_NM LIKE CONCAT ('%', #{searchWrd},'%')
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 게시물 ID 설정 -->
|
|
<select id="selectMaxNttId" resultType="java.lang.Long">
|
|
|
|
SELECT
|
|
IFNULL(MAX(NTT_ID), 0) + 1 AS nttId
|
|
FROM
|
|
TB_BBS_INFO
|
|
</select>
|
|
|
|
<!-- 게시판에 답변 게시물을 등록 한다. -->
|
|
<insert id="replyBoardArticle" parameterType="java.util.LinkedHashMap">
|
|
|
|
<selectKey keyProperty="nttNo" resultType="java.lang.Long" order="BEFORE">
|
|
|
|
SELECT
|
|
IFNULL(MAX(NTT_NO), 0) + 1 AS nttNo
|
|
FROM
|
|
TB_BBS_INFO
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
SORT_SEQ = #{sortOrdr}
|
|
</selectKey>
|
|
|
|
INSERT INTO
|
|
TB_BBS_INFO
|
|
(
|
|
NTT_ID
|
|
, BBS_ID
|
|
, NTT_SJ
|
|
, NTT_CN
|
|
, SORT_SEQ
|
|
, PSTGR_ID
|
|
, PSTGR_NM
|
|
, PWD
|
|
, INQ_CNT
|
|
, PSTG_STRT_DTM
|
|
, PSTG_END_DTM
|
|
, CMNT_AT
|
|
, PARNTSCTT_NO
|
|
, NTT_NO
|
|
, CMNT_LCTN
|
|
, ATCH_FILE_ID
|
|
, FRST_REGR_ID
|
|
, FRST_REG_DTM
|
|
, USE_AT
|
|
)
|
|
VALUES
|
|
(
|
|
#{nttId}
|
|
, #{bbsId}
|
|
, #{nttSj}
|
|
, #{nttCn}
|
|
, #{sortOrdr}
|
|
, #{ntcrId}
|
|
, #{ntcrNm}
|
|
, #{password}
|
|
, #{inqireCo}
|
|
, #{ntceBgnde}
|
|
, #{ntceEndde}
|
|
, #{replyAt}
|
|
, #{parnts}
|
|
, 1
|
|
, #{replyLc}
|
|
, #{atchFileId}
|
|
, #{frstRegisterId}
|
|
, SYSDATE()
|
|
, 'Y'
|
|
)
|
|
</insert>
|
|
|
|
<!-- 답글의 부모글번호 조회 -->
|
|
<select id="getParentNttNo" parameterType="java.util.LinkedHashMap" resultType="java.lang.Long">
|
|
|
|
SELECT
|
|
NTT_NO AS nttNo
|
|
FROM
|
|
TB_BBS_INFO
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
NTT_ID = #{parnts}
|
|
</select>
|
|
|
|
<update id="updateOtherNttNo" parameterType="java.util.LinkedHashMap">
|
|
|
|
UPDATE
|
|
TB_BBS_INFO
|
|
SET
|
|
NTT_NO = NTT_NO + 1
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
SORT_SEQ = #{sortOrdr}
|
|
AND
|
|
NTT_NO > #{nttNo}
|
|
</update>
|
|
|
|
<update id="updateNttNo" parameterType="java.util.LinkedHashMap">
|
|
|
|
UPDATE
|
|
TB_BBS_INFO
|
|
SET
|
|
NTT_NO = #{nttNo}
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
NTT_ID = #{nttId}
|
|
</update>
|
|
|
|
<!-- 게시물을 등록한다. -->
|
|
<insert id="insertBoardArticle" parameterType="java.util.LinkedHashMap">
|
|
|
|
<selectKey keyProperty="nttNo" resultType="java.lang.Long" order="BEFORE">
|
|
SELECT
|
|
IFNULL(MAX(SORT_SEQ), 0) + 1 AS NTT_NO
|
|
FROM
|
|
TB_BBS_INFO
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
</selectKey>
|
|
|
|
INSERT INTO
|
|
TB_BBS_INFO
|
|
(
|
|
NTT_ID
|
|
, BBS_ID
|
|
, NTT_SJ
|
|
, NTT_CN
|
|
, SORT_SEQ
|
|
, PSTGR_ID
|
|
, PSTGR_NM
|
|
, PWD
|
|
, INQ_CNT
|
|
, PSTG_STRT_DTM
|
|
, PSTG_END_DTM
|
|
, CMNT_AT
|
|
, PARNTSCTT_NO
|
|
, NTT_NO
|
|
, CMNT_LCTN
|
|
, ATCH_FILE_ID
|
|
, FRST_REGR_ID
|
|
, FRST_REG_DTM
|
|
, USE_AT
|
|
, BLOG_ID
|
|
)
|
|
VALUES
|
|
(
|
|
#{nttId}
|
|
, #{bbsId}
|
|
, #{nttSj}
|
|
, #{nttCn}
|
|
, #{nttNo}
|
|
, #{ntcrId}
|
|
, #{ntcrNm}
|
|
, #{password}
|
|
, #{inqireCo}
|
|
, #{ntceBgnde}
|
|
, #{ntceEndde}
|
|
, #{replyAt}
|
|
, #{parnts}
|
|
, 1
|
|
, #{replyLc}
|
|
, #{atchFileId}
|
|
, #{frstRegisterId}
|
|
, SYSDATE()
|
|
, 'Y'
|
|
, #{blogId}
|
|
)
|
|
</insert>
|
|
|
|
<!-- 게시물에 대한 현재 조회 건수를 조회 한다. -->
|
|
<select id="selectMaxInqireCo" parameterType="java.util.LinkedHashMap" resultType="java.lang.Integer">
|
|
|
|
SELECT
|
|
IFNULL(MAX(INQ_CNT), 0) + 1 AS inqireCo
|
|
FROM
|
|
TB_BBS_INFO
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
NTT_ID = #{nttId}
|
|
</select>
|
|
|
|
<!-- 게시물에 대한 조회 건수를 수정 한다. -->
|
|
<update id="updateInqireCo" parameterType="java.util.LinkedHashMap">
|
|
|
|
UPDATE
|
|
TB_BBS_INFO
|
|
SET
|
|
INQ_CNT = #{inqireCo}
|
|
, LAST_UPDR_ID = #{lastUpdusrId}
|
|
, LAST_UPD_DTM = SYSDATE()
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
NTT_ID = #{nttId}
|
|
</update>
|
|
|
|
<!-- 게시물 한 건에 대하여 상세 내용을 조회 한다. -->
|
|
<select id="selectBoardArticle" parameterType="java.util.LinkedHashMap" resultType="java.util.LinkedHashMap">
|
|
|
|
SELECT a.NTT_SJ AS nttSj
|
|
, a.PSTGR_ID AS ntcrId
|
|
, a.PSTGR_NM AS ntcrNm
|
|
, a.NTT_NO AS nttNo
|
|
, a.NTT_CN AS nttCn
|
|
, a.PWD AS password
|
|
, a.FRST_REGR_ID AS frstRegisterId
|
|
, b.USER_NM AS frstRegisterNm
|
|
, DATE_FORMAT(a.FRST_REG_DTM, '%Y-%m-%d') AS frstRegisterPnttm
|
|
, a.PSTG_STRT_DTM AS ntceBgnde
|
|
, a.PSTG_END_DTM AS ntceEndde
|
|
, a.INQ_CNT AS inqireCo
|
|
, a.USE_AT AS useAt
|
|
, a.ATCH_FILE_ID AS atchFileId
|
|
, a.BBS_ID AS bbsId
|
|
, a.NTT_ID AS nttId
|
|
, a.PARNTSCTT_NO AS parnts
|
|
, a.CMNT_AT AS replyAt
|
|
, a.CMNT_LCTN AS replyLc
|
|
, a.SORT_SEQ AS sortOrdr
|
|
, c.BBS_TYCD AS bbsTyCode
|
|
, c.BBS_ATRB_CD AS bbsAttrbCode
|
|
, c.REPLY_POSBL_AT AS replyPosblAt
|
|
, c.FILE_ATCH_PSBL_AT AS fileAtchPosblAt
|
|
, c.ATCH_PSBL_FILE_NUM AS ATCH_PSBL_FILE_NUM
|
|
, c.BBS_NM AS bbsNm
|
|
FROM
|
|
TB_BBS_INFO AS a
|
|
LEFT OUTER JOIN
|
|
COMVNUSERMASTER AS b
|
|
ON
|
|
a.FRST_REGR_ID = b.ESNTL_ID
|
|
LEFT OUTER JOIN
|
|
TB_BBS_MASTR_INFO AS c
|
|
ON
|
|
a.BBS_ID = c.BBS_ID
|
|
WHERE
|
|
a.BBS_ID = #{bbsId}
|
|
AND
|
|
a.NTT_ID = #{nttId}
|
|
</select>
|
|
|
|
<!-- 게시물에 대한 내용을 수정한다. -->
|
|
<update id="updateBoardArticle" parameterType="java.util.LinkedHashMap">
|
|
|
|
UPDATE
|
|
TB_BBS_INFO
|
|
SET
|
|
NTT_SJ = #{nttSj}
|
|
, NTT_CN = #{nttCn}
|
|
, PSTGR_ID = #{ntcrId}
|
|
, PSTGR_NM = #{ntcrNm}
|
|
, PWD = #{password}
|
|
, PSTG_STRT_DTM = #{ntceBgnde}
|
|
, PSTG_END_DTM = #{ntceEndde}
|
|
, LAST_UPDR_ID = #{lastUpdusrId}
|
|
, ATCH_FILE_ID = #{atchFileId}
|
|
, LAST_UPD_DTM = SYSDATE()
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
NTT_ID = #{nttId}
|
|
</update>
|
|
|
|
<!-- 게시물에 대한 내용을 삭제한다. -->
|
|
<update id="deleteBoardArticle" parameterType="java.util.LinkedHashMap">
|
|
|
|
UPDATE
|
|
TB_BBS_INFO
|
|
SET
|
|
NTT_SJ = #{nttSj}
|
|
, USE_AT = 'N'
|
|
, LAST_UPDR_ID = #{lastUpdusrId}
|
|
, LAST_UPD_DTM = SYSDATE()
|
|
WHERE
|
|
BBS_ID = #{bbsId}
|
|
AND
|
|
NTT_ID = #{nttId}
|
|
</update>
|
|
|
|
</mapper> |