merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정

This commit is contained in:
jilee4unity
2026-05-28 23:34:06 +09:00
7250 changed files with 570509 additions and 25 deletions

View File

@@ -0,0 +1,369 @@
<?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="com.wb.domainserver.domain.gcone.bbs.cm.mapper.BOCmMapper">
<!-- 댓글 목록 조회 -->
<select id = "selectBOBCmListCnt"
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
resultType="Integer">
<![CDATA[
SELECT
COUNT(1)
FROM
GC_BOARDCOMMENT FBC
WHERE 1 = 1
AND FBC.DEPTH = 0
AND FBC.SOPMAL_CD = #{sopmalCd}
AND (FBC.USE_AT = 'Y' OR (FBC.USE_AT = 'N' && 0 < (SELECT
COUNT(FBC2.CM_INNB)
FROM
GC_BOARDCOMMENT FBC2
WHERE
1 = 1
AND FBC2.USE_AT = 'Y'
AND FBC2.DEPTH = 1
AND FBC2.PARNTS_CM_INNB = FBC.CM_INNB
AND FBC2.SOPMAL_CD = FBC.SOPMAL_CD
AND FBC2.BBSCTT_INNB = FBC.BBSCTT_INNB
LIMIT 1)))
AND FBC.BBSCTT_INNB = #{bbscttInnb}
]]>
</select>
<!-- 댓글 목록 조회 -->
<select id = "selectBOCmListInqire"
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
resultType="DataMap">
<![CDATA[
SELECT FBC.CM_INNB
, FBC.BBSCTT_INNB
, FBC.PARNTS_CM_INNB
, FBC.SOPMAL_CD
, FBC.CN
, FBC.SECRET_BBSCTT_AT
, FBC.USE_AT
, FBC.REGUSR_DV_CD
, FBC.IP
, FBC.PASSWORD
, FBC.DEPTH
, FBC.REGUSR
, FBC.REGUSR_ID
, FBC.REGUSR_NM
, DATE_FORMAT(FBC.REGIST_DT, '%Y.%m.%d. %H:%i') REGIST_DT
, CONCAT(SUBSTRING(FBC.REGUSR_ID, 1, 4), '***') MASKING_REGUSR_ID
, CONCAT(SUBSTRING(FBC.REGUSR_NM, 1, 1), '*',
SUBSTRING(FBC.REGUSR_NM, CHAR_LENGTH(FBC.REGUSR_NM), 1)) MASKING_REGUSR_NM
, IFNULL(FBC.RECOMEND_CNT, 0) RECOMEND_CNT
, IFNULL(FBC.NONRECOMEND_CNT, 0) NONRECOMEND_CNT
, CASE
WHEN DATE_ADD(FBC.REGIST_DT, INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY) > SYSDATE() THEN 'Y'
ELSE 'N'
END NEW_AT
, FBM.WRTER_INDICT_TY_CD
, IFNULL(FBM.MNGR_NM, '관리자') AS MNGR_NM
, FMG.MBR_GRAD_NM
, GM.JOIN_MTH_CD
, GM.MBR_DV_CD
, GM.MBR_INNB
FROM GC_BOARDCOMMENT FBC
INNER JOIN GC_BOARDDATA FB
ON FBC.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBC.SOPMAL_CD = FB.SOPMAL_CD
INNER JOIN GC_BOARDMANAGER FBM
ON FB.BBS_ID = FBM.BBS_ID
AND FBM.SOPMAL_CD = FBC.SOPMAL_CD
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
ON FBC.SOPMAL_CD = FMGM.SOPMAL_CD
AND FBC.REGUSR = FMGM.MBR_INNB
LEFT JOIN GC_MEMBER GM
ON GM.MBR_DV_CD = FMGM.MBR_DV_CD
AND GM.MBR_INNB = FMGM.MBR_INNB
LEFT JOIN GC_MEMBER_GRAD FMG
ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
AND FMG.SOPMAL_CD = FBC.SOPMAL_CD
WHERE 1=1
AND FBC.DEPTH = 0
AND (FBC.USE_AT = 'Y' OR (FBC.USE_AT = 'N' && 0 < (SELECT
COUNT(FBC2.CM_INNB)
FROM
GC_BOARDCOMMENT FBC2
WHERE
1 = 1
AND FBC2.USE_AT = 'Y'
AND FBC2.DEPTH = 1
AND FBC2.PARNTS_CM_INNB = FBC.CM_INNB
AND FBC2.SOPMAL_CD = FBC.SOPMAL_CD
AND FBC2.BBSCTT_INNB = FBC.BBSCTT_INNB
LIMIT 1)))
AND FBC.SOPMAL_CD = #{sopmalCd}
AND FBC.BBSCTT_INNB = #{bbscttInnb}
ORDER BY FBC.CM_INNB DESC
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 대댓글 목록 조회 -->
<select id = "selectBOCmAnswListInqire"
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
resultType="DataMap">
SELECT FBC.CM_INNB
,FBC.BBSCTT_INNB
,FBC.SOPMAL_CD
,FBC.CN
,DATE_FORMAT(FBC.REGIST_DT,'%Y-%m-%d')REGIST_DT
,CONCAT(SUBSTRING(FBC.REGUSR_ID, 1, 4), '***')MASKING_REGUSR_ID
,CONCAT(SUBSTRING(FBC.REGUSR_NM, 1, 1),'*',SUBSTRING(FBC.REGUSR_NM,CHAR_LENGTH(FBC.REGUSR_NM),1))MASKING_REGUSR_NM
,FBC.PARNTS_CM_INNB
,FBC.SECRET_BBSCTT_AT
,FBC.USE_AT
,FBC.REGUSR_DV_CD
,FBC.IP
,FBC.PASSWORD
,FBC.DEPTH
,FBC.REGUSR
,FBC.REGUSR_ID
,FBC.REGUSR_NM
,IFNULL(FBC.RECOMEND_CNT, 0) RECOMEND_CNT
,IFNULL(FBC.NONRECOMEND_CNT, 0) NONRECOMEND_CNT
,CASE
WHEN DATE_ADD(FBC.REGIST_DT, INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY) > SYSDATE() THEN 'Y'
ELSE 'N'
END NEW_AT
,FBM.WRTER_INDICT_TY_CD
,FBM.MNGR_NM
,FMG.MBR_GRAD_NM
,GM.JOIN_MTH_CD
,GM.MBR_DV_CD
,GM.MBR_INNB
FROM GC_BOARDCOMMENT FBC
INNER JOIN GC_BOARDDATA FB
ON FBC.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBC.SOPMAL_CD = FB.SOPMAL_CD
INNER JOIN GC_BOARDMANAGER FBM
ON FB.BBS_ID = FBM.BBS_ID
AND FBM.SOPMAL_CD = FBC.SOPMAL_CD
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
ON FBC.SOPMAL_CD = FMGM.SOPMAL_CD
AND FBC.REGUSR = FMGM.MBR_INNB
LEFT JOIN GC_MEMBER GM
ON GM.MBR_DV_CD = FMGM.MBR_DV_CD
AND GM.MBR_INNB = FMGM.MBR_INNB
LEFT JOIN GC_MEMBER_GRAD FMG
ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
AND FMG.SOPMAL_CD = FBC.SOPMAL_CD
WHERE 1=1
AND FBC.DEPTH = 1
AND FBC.USE_AT = 'Y'
AND FBC.SOPMAL_CD = #{sopmalCd}
AND FBC.PARNTS_CM_INNB IN
<foreach collection="cmInnbArr" item="cmInnbArr" open="(" close=")" separator=",">
#{cmInnbArr}
</foreach>
AND FBC.BBSCTT_INNB = #{bbscttInnb}
</select>
<select id="selectBOCmWrter" parameterType="com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo.BOGnrlbbscttVO"
resultType="dataMap">
SELECT
CONCAT(SUBSTRING(BB.REGUSR_ID, 1, 3), REPEAT('*', CHAR_LENGTH(BB.REGUSR_ID) - 3))MNGR_REGUSR_ID,
BB.REGUSR_ID,
BB.REGUSR,
BB.MBR_GRAD_NM,
CONCAT(SUBSTRING(BB.REGUSR_NM, 1, 1), REPEAT('*', CHAR_LENGTH(BB.REGUSR_NM) - 2),SUBSTRING(BB.REGUSR_NM,CHAR_LENGTH(BB.REGUSR_NM),1))REGUSR_NM,
BB.WRTER_INDICT_TY_CD,
BB.MNGR_NM,
BB.REGUSR_DV_CD
FROM(SELECT
AA.*,
(SELECT
BB.MBR_GRAD_NM
FROM
(SELECT
FMG.MBR_GRAD_NM
FROM
GC_MEMBER_GRAD_MAPPING FMGMG
LEFT OUTER JOIN GC_MEMBER_GRAD FMG
on FMGMG.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
AND FMGMG.SOPMAL_CD = FMG.SOPMAL_CD
WHERE FMGMG.SOPMAL_CD= AA.SOPMAL_CD
AND FMGMG.MBR_INNB = AA.REGUSR)BB) AS MBR_GRAD_NM
FROM
(SELECT FBC.REGUSR_DV_CD
,FBC.REGUSR_NM
,FBC.REGUSR_ID
,FBC.REGUSR
,FBC.SOPMAL_CD
,FBC.DEPTH
,FBM.WRTER_INDICT_TY_CD
,IFNULL(FBM.MNGR_NM,'관리자')MNGR_NM
FROM
GC_BOARDCOMMENT FBC
INNER JOIN GC_BOARDDATA FB
ON FBC.SOPMAL_CD = FB.SOPMAL_CD
AND FBC.BBSCTT_INNB = FB.BBSCTT_INNB
INNER JOIN GC_BOARDMANAGER FBM
ON FB.SOPMAL_CD = FBM.SOPMAL_CD
AND FB.BBS_ID = FBM.BBS_ID
WHERE 1 = 1
AND FBC.CM_INNB = #{cmInnbInt}
AND FB.SOPMAL_CD = #{sopmalCd})AA
)BB
</select>
<!-- 게시글 상세 조회 가능 여부 판단 -->
<select id="selectBOCmRegusrCnfirm"
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
resultType="dataMap">
SELECT
CASE
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '01'
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(crudDv, 'R')"> /* 수정, 삭제일 경우 */
AND GB.REGUSR = #{mbrInnb}
</if> THEN 'YES' /* 회원이 쓴 글이고 작성자가 본인일 시 */
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(crudDv, 'R')"> /* 회원이 쓴 글이고 작성자가 본인이 아닐 시 (수정, 삭제시) */
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '01' AND GB.REGUSR <![CDATA[<>]]> #{mbrInnb} AND 0 <![CDATA[<]]> #{mbrInnb} THEN 'OTHER'
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '01' AND 0 = #{mbrInnb} THEN 'LOGIN' /* 회원이 쓴 글이고 접속자가 비회원일 경우 로그인 유도 */
</if>
<choose>
<when test="!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(crudDv, 'R')">
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '02' THEN 'PW' /* 관리자가 쓴 글 */
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '99' THEN 'PW' /* 비회원 수정, 삭제일 경우 */
</when>
<otherwise>
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '02' THEN 'YES' /* 관리자가 쓴 글 */
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '99' THEN 'YES' /* 비회원 읽기 일 경우 */
</otherwise>
</choose>
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD <![CDATA[<>]]> '01' THEN 'PW' /* 작성자 구분이 회원이 아닐경우 비밀번호 입력 */
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD = '01' AND GB.REGUSR = #{mbrInnb} THEN 'YES' /* 회원이 쓴 글이고 작성자가 본인인 경우 */
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD = '01' AND GB.REGUSR <![CDATA[<>]]> #{mbrInnb} AND 0 <![CDATA[<]]> #{mbrInnb} THEN 'OTHER' /* 회원이 쓴 글이고 작성자가 본인이 아니고 현재 접속자가 회원인 경우 */
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD = '01' AND 0 = #{mbrInnb} THEN 'LOGIN' /* 회원이 쓴 글이고 접속자가 비회원일 경우 로그인 유도 */
END MOVE_AT
FROM GC_BOARDCOMMENT GB
WHERE GB.BBSCTT_INNB = #{bbscttInnb}
AND GB.SOPMAL_CD = #{sopmalCd}
AND GB.CM_INNB = #{cmInnb}
</select>
<!-- 댓글 조회 -->
<select id="selectBOCmCn" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
resultType="dataMap">
SELECT FBC.CN
,FBC.CM_INNB
,FBC.PASSWORD
,FBC.SECRET_BBSCTT_AT
,IFNULL(FBC.RECOMEND_CNT,0)RECOMEND_CNT
,IFNULL(FBC.NONRECOMEND_CNT,0)NONRECOMEND_CNT
,FBC.REGUSR_NM
FROM GC_BOARDCOMMENT FBC
WHERE FBC.BBSCTT_INNB = #{bbscttInnb}
AND FBC.SOPMAL_CD = #{sopmalCd}
AND FBC.CM_INNB = #{cmInnb}
</select>
<!-- 댓글 등록 -->
<insert id="insertBOCmRegist">
INSERT INTO GC_BOARDCOMMENT (
SOPMAL_CD,
BBSCTT_INNB,
PARNTS_CM_INNB,
REGUSR_DV_CD,
REGUSR_ID,
REGUSR_NM,
DEPTH,
PASSWORD,
CN,
SECRET_BBSCTT_AT,
INQIRE_CNT,
RECOMEND_CNT,
NONRECOMEND_CNT,
AGENT_ID,
IP,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES (
#{sopmalCd},
#{bbscttInnb},
#{parntsCmInnb},
#{regusrDvCd},
#{regusrId},
#{regusrNm},
#{depth},
MD5(#{password}),
#{cn},
#{secretBbscttAt},
0,
0,
0,
#{agentId},
#{ip},
'Y',
#{regusr},
NOW(),
#{updusr},
NOW()
)
</insert>
<!-- 댓글 수정 -->
<update id="updateBOCmUpdt" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO">
UPDATE GC_BOARDCOMMENT
SET CN = #{cn},
UPDUSR = #{updusr},
UPDT_DT = NOW(),
SECRET_BBSCTT_AT = #{secretBbscttAt}
WHERE CM_INNB = #{cmInnb}
AND BBSCTT_INNB = #{bbscttInnb}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 댓글 논리삭제 -->
<update id="updateBOCmDel" parameterType="DataMap">
UPDATE GC_BOARDCOMMENT
SET USE_AT = #{useAt},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE BBSCTT_INNB = #{bbscttInnb}
AND SOPMAL_CD = #{sopmalCd}
AND CM_INNB = #{cmInnb}
</update>
<!-- 비밀번호 체크 -->
<select id = "selectBOComparPassword" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
resultType="Integer">
SELECT COUNT(*)
FROM GC_BOARDCOMMENT FB
WHERE 1=1
AND FB.PASSWORD = MD5(#{password})
AND FB.CM_INNB = #{cmInnb}
AND FB.SOPMAL_CD = #{sopmalCd}
</select>
<!--추천 비추천 업데이트-->
<update id="updateBOCmRecomendUpdt" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO">
UPDATE GC_BOARDCOMMENT FBC, (
SELECT
IFNULL(MAX(RECOMEND_CNT), 0) + 1 AS RECOMEND_CNT
,IFNULL(MAX(NONRECOMEND_CNT), 0) + 1 AS NONRECOMEND_CNT
,BBSCTT_INNB
,SOPMAL_CD
,CM_INNB
FROM
GC_BOARDCOMMENT
WHERE
1 = 1
AND BBSCTT_INNB = #{bbscttInnb}
AND SOPMAL_CD = #{sopmalCd}
AND CM_INNB = #{cmInnb})FBC2
SET
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(recomendDv, 'recommend')">
FBC.RECOMEND_CNT = FBC2.RECOMEND_CNT
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(recomendDv, 'nonrecommend')">
FBC.NONRECOMEND_CNT = FBC2.NONRECOMEND_CNT
</if>
WHERE 1=1
AND FBC.BBSCTT_INNB = #{bbscttInnb}
AND FBC.SOPMAL_CD = #{sopmalCd}
AND FBC.CM_INNB = #{cmInnb}
</update>
</mapper>