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,911 @@
<?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.itrnt.bbs.bbsctt.mapper.BOItrntBbscttMapper">
<!--게시글 등록-->
<insert id="insertBOBbscttRegist">
<selectKey keyProperty="bbscttInnb" resultType="BigInteger" order="BEFORE">
SELECT IFNULL(MAX(BBSCTT_INNB), 0) + 1
FROM GC_INTRANET_BOARDDATA
</selectKey>
INSERT INTO GC_INTRANET_BOARDDATA
(
BBSCTT_INNB,
BBS_ID,
SOPMAL_CD,
PARNTS_BBSCTT_INNB,
DEPTH,
REGUSR_DV_CD,
REGUSR_ID,
REGUSR_NM,
SJ,
CN,
INQIRE_CNT,
SORT_ORDR,
NTC_AT,
EXPSR_AT,
NTC_PD_SETUP_AT,
NTC_BGN_DE,
NTC_END_DE,
POPUP_AT,
POPUP_PD_SETUP_AT,
POPUP_EXPSR_BGN_DT,
POPUP_EXPSR_END_DT,
PROCS_COMPT_AT,
STR_INNB,
STR_DV,
WRITE_DV_CD,
IP,
AGENT_ID,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES(
#{bbscttInnb},
#{bbsId},
#{sopmalCd},
#{parntsBbscttInnb},
#{depth},
#{regusrDvCd},
#{regusrId},
#{regusrNm},
#{sj},
#{cn},
0,
#{sortOrdr},
IFNULL(#{ntcAt},'N'),
'Y',
IFNULL(#{ntcPdSetupAt},'N'),
#{ntcBgnDe},
#{ntcEndDe},
IFNULL(#{popupAt},'N'),
IFNULL(#{popupPdSetupAt},'N'),
#{popupExpsrBgnDt},
#{popupExpsrEndDt},
'N',
#{strInnb},
#{strDv},
#{writeDvCd},
#{ip},
#{agentId},
'Y',
#{regusr},
NOW(),
#{updusr},
NOW()
)
</insert>
<!--게시글추가문항답변 등록-->
<insert id="insertBOBbscttQesitmAnsw">
<selectKey keyProperty="qesitmAnswInnb" resultType="java.lang.Integer" order="BEFORE">
SELECT IFNULL(MAX(QESITM_ANSW_INNB), 0) + 1
FROM GC_INTRANET_BOARD_ADDITM
</selectKey>
INSERT
INTO GC_INTRANET_BOARD_ADDITM
(
QESITM_ANSW_INNB,
SOPMAL_CD,
BBSCTT_INNB,
QESITM_INNB,
ITM_INNB,
ANSW_CN,
USE_AT,
REGUSR,
REGIST_DT
)
VALUES (
#{qesitmAnswInnb},
#{sopmalCd},
#{bbscttInnb},
#{qesitmInnb},
#{itmInnb},
#{answCn},
'Y',
#{regusr},
SYSDATE()
)
</insert>
<!--파일 등록-->
<insert id="insertBOBbscttFileUpload">
<selectKey keyProperty="bbscttAtchmnfilInnb" resultType="java.lang.String" order="BEFORE">
SELECT IFNULL(MAX(BBSCTT_ATCHMNFIL_INNB), 0) + 1
FROM GC_INTRANET_BOARDDATA_FILE
</selectKey>
INSERT
INTO GC_INTRANET_BOARDDATA_FILE
(
BBSCTT_ATCHMNFIL_INNB,
SOPMAL_CD,
BBSCTT_INNB,
ORGINL_FIL_NM,
SYS_FIL_NM,
FIL_MG,
FIL_TY,
FIL_DV_CD,
FIL_COURS
)
VALUES (
#{bbscttAtchmnfilInnb},
#{sopmalCd},
#{bbscttInnb},
#{orginlFilNm},
#{sysFilNm},
#{filMg},
#{filTy},
#{filDvCd},
#{filCours}
)
</insert>
<!--구독-->
<!--조회한 매장이아니면 insert-->
<select id="selectReadProvider" resultType="Integer">
SELECT COUNT(1) AS READ_CNT
FROM GC_INTRANET_BOARDREAD
WHERE BBS_ID = #{bbsId}
AND STR_INNB = #{strInnb}
</select>
<insert id="insertReadProvider">
<selectKey keyProperty="readInnb" resultType="java.lang.String" order="BEFORE">
SELECT IFNULL(MAX(READ_INNB), 0) + 1
FROM GC_INTRANET_BOARDREAD
</selectKey>
INSERT INTO GC_INTRANET_BOARDREAD
(
READ_INNB,
STR_INNB,
TENTCPN_ID,
TENTCPN_NM,
BBS_ID,
BBSCTT_INNB,
READ_DT
)
VALUES (
#{readInnb},
#{strInnb},
#{tentcpnId},
#{tentcpnNm},
#{bbsId},
#{bbscttInnb},
NOW()
)
</insert>
<!--슈퍼바이저 등록-->
<insert id="insertBOIntranetSv">
<selectKey keyProperty="svInnb" resultType="java.lang.String" order="BEFORE">
SELECT IFNULL(MAX(SV_INNB), 0) + 1
FROM GC_INTRANET_SV
</selectKey>
INSERT INTO GC_INTRANET_SV
(
SV_INNB,
BBS_ID,
SV_WRITE_DV_CD,
MNGR_NM,
MNGR_MBTLNB,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES
(
#{svInnb},
#{bbsId},
#{svWriteDvCd},
#{mngrNm},
HEX(AES_ENCRYPT(REPLACE(#{mngrMbtlnb},'-',''), #{secretKey})),
'Y',
#{regusr},
NOW(),
#{updusr},
NOW()
)
</insert>
<!--게시글 수정-->
<update id="updateBOBbscttUpdt">
UPDATE
GC_INTRANET_BOARDDATA
SET
SJ = #{sj},
CN = #{cn},
SORT_ORDR = #{sortOrdr},
NTC_AT = IFNULL(#{ntcAt},'N'),
NTC_PD_SETUP_AT = IFNULL(#{ntcPdSetupAt},'N'),
NTC_BGN_DE = #{ntcBgnDe},
NTC_END_DE = #{ntcEndDe},
POPUP_AT = IFNULL(#{popupAt},'N'),
POPUP_PD_SETUP_AT = IFNULL(#{popupPdSetupAt},'N'),
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(popupExpsrBgnDt)">
POPUP_EXPSR_BGN_DT = #{popupExpsrBgnDt},
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(popupExpsrEndDt)">
POPUP_EXPSR_END_DT = #{popupExpsrEndDt},
</if>
WRITE_DV_CD = #{writeDvCd},
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE
BBSCTT_INNB = #{bbscttInnb}
AND BBS_ID = #{bbsId}
</update>
<!--게시글 논리 삭제-->
<update id="updateBOBbscttDel">
UPDATE GC_INTRANET_BOARDDATA
SET USE_AT = 'N',
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE 1 = 1
AND BBSCTT_INNB = #{bbscttInnb}
AND SOPMAL_CD = #{sopmalCd}
AND BBS_ID = #{bbsId}
</update>
<!--조회수 증가-->
<update id="updateBOBbscttRdcntUpdt">
UPDATE GC_INTRANET_BOARDDATA
SET INQIRE_CNT = INQIRE_CNT + 1
WHERE BBSCTT_INNB = #{bbscttInnb}
AND BBS_ID = #{bbsId}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!--게시글 노출여부 수정-->
<update id="updateBOBbscttExpsrAt">
UPDATE GC_INTRANET_BOARDDATA BOARD
SET EXPSR_AT = #{expsrAt},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE BBSCTT_INNB = #{bbscttInnb}
AND BBS_ID = #{bbsId}
</update>
<!--게시글 처리완료처리-->
<update id="updateBOBbscttComptAt">
UPDATE GC_INTRANET_BOARDDATA
SET PROCS_COMPT_AT = #{procsComptAt},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE BBSCTT_INNB = #{bbscttInnb}
AND BBS_ID = #{bbsId}
</update>
<!--게시글추가문항답변 삭제-->
<delete id="deleteBOAditQesitmPhysiclDel">
DELETE
FROM GC_INTRANET_BOARD_ADDITM FBG
WHERE 1=1
AND FBG.BBSCTT_INNB = #{bbscttInnb}
AND FBG.SOPMAL_CD = #{sopmalCd}
</delete>
<!--게시글추가문항답변 삭제-->
<delete id="deleteBOAditQesitmLogicDel">
UPDATE GC_INTRANET_BOARD_ADDITM FBG
SET USE_AT = 'N'
WHERE 1=1
AND FBG.BBSCTT_INNB = #{bbscttInnb}
AND FBG.SOPMAL_CD = #{sopmalCd}
</delete>
<!--슈퍼바이저 삭제-->
<delete id="deleteBOIntranetSv">
UPDATE GC_INTRANET_SV
SET
USE_AT = 'N'
WHERE SV_INNB = #{svInnb}
</delete>
<!--인트라넷 게시판 리스트 조회-->
<select id="selectBOBbsList" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT GIB.BBS_ID,
GIB.BBS_NM,
COUNT(GIBD.BBSCTT_INNB) BBSCTT_INNB,
GIB.BBS_TY_CD
FROM GC_INTRANET_BOARDMANAGER GIB
LEFT JOIN GC_INTRANET_BOARDDATA GIBD
ON GIB.BBS_ID = GIBD.BBS_ID
AND GIBD.USE_AT = 'Y'
WHERE GIB.USE_AT = 'Y'
GROUP BY BBS_ID,BBS_NM,BBS_TY_CD
</select>
<sql id = "selectListWhere">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKeyword)">
/* 검색어(아이디,이름,제목,내용) */
<choose>
<when test ="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'innb')">
AND FB.BBSCTT_INNB = #{srchKeyword}
</when>
<when test ="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbrId')">
AND FB.REGUSR_ID LIKE CONCAT('%',#{srchKeyword},'%')
</when>
<when test ="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbrNm')">
AND (FB.REGUSR_NM LIKE CONCAT('%',#{srchKeyword},'%') OR GS.STR_NM LIKE CONCAT ('%',#{srchKeyword},'%'))
</when>
<when test ="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'sj')">
AND FB.SJ LIKE CONCAT('%',#{srchKeyword},'%')
</when>
<when test ="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'cn')">
AND FB.CN LIKE CONCAT('%',#{srchKeyword},'%')
</when>
</choose>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDt)">
/* 등록일 시작일 */
<![CDATA[
AND FB.REGIST_DT >= #{srchStartDt} ' 00:00:00'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDt)">
/* 등록일 종료일 */
<![CDATA[
AND FB.REGIST_DT < #{srchEndDt} ' 23:59:59'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(useAt)">
/* 삭제글 미포함 */
AND FB.USE_AT = 'Y'
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(writeDvCd)">
/* 문의유형 */
AND FB.WRITE_DV_CD = #{writeDvCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strDv)">
/* 매장구분 */
AND FB.STR_DV = #{strDv}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strInnb)">
/* 매장고유번호 */
AND FB.STR_INNB = #{strInnb}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrAt)">
/* 노출여부 */
AND FB.EXPSR_AT = 'Y'
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bbsFormVoList)">
AND FB.BBSCTT_INNB IN (
SELECT
FBA.BBSCTT_INNB
FROM
GC_INTRANET_BOARD_ADDITM FBA
WHERE
1 = 1
<foreach item="outerItem" index="outerIndex" collection="bbsFormVoList">
AND FBA.ITM_INNB IN
<foreach item="innerItem" index="innerIndex" collection="outerItem.bbsFormItmList"
open="(" close=")" separator=",">
#{innerItem.itmInnb}
</foreach>
</foreach>
AND FBA.USE_AT = 'Y'
AND FBA.SOPMAL_CD = #{sopmalCd})
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(answCn)">
AND FB.BBSCTT_INNB IN (
SELECT
FBA.BBSCTT_INNB
FROM
GC_INTRANET_BOARD_ADDITM FBA
WHERE
1 = 1
AND FBA.ANSW_CN LIKE CONCAT('%',#{answCn},'%')
AND FBA.USE_AT = 'Y'
AND FBA.SOPMAL_CD = #{sopmalCd})
</if>
</sql>
<!--게시글 건수 조회-->
<select id="selectBOBbscttListCnt" resultType="com.wb.domainserver.domain.itrnt.bbs.bbsctt.vo.BOItrntBbscttVO">
SELECT COUNT(1) AS TOT_CNT
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ntcAt)">
,IFNULL((SELECT COUNT(1)
FROM GC_INTRANET_BOARDDATA FB
WHERE FB.DEPTH = 0
AND FB.NTC_AT = 'Y'
AND FB.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(tentGroup, '02')">/*매장은 삭제글 못봄*/
AND FB.EXPSR_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bbsFormVoList)">
AND FB.BBSCTT_INNB IN (
SELECT
FBA.BBSCTT_INNB
FROM
GC_INTRANET_BOARD_ADDITM FBA
WHERE
1 = 1
<foreach item="outerItem" index="outerIndex" collection="bbsFormVoList">
AND FBA.ITM_INNB IN
<foreach item="innerItem" index="innerIndex" collection="outerItem.bbsFormItmList"
open="(" close=")" separator=",">
#{innerItem.itmInnb}
</foreach>
</foreach>
AND FBA.USE_AT = 'Y'
AND FBA.SOPMAL_CD = #{sopmalCd})
</if>
</if>
AND FB.SOPMAL_CD = #{sopmalCd}
AND FB.BBS_ID = #{bbsId}),0)NTC_CNT
</if>
FROM (
SELECT 0 AS RNUM,
(SELECT COUNT(*) FROM GC_INTRANET_BOARDCOMMENT FBC
WHERE FB.SOPMAL_CD = FBC.SOPMAL_CD
AND FB.BBSCTT_INNB = FBC.BBSCTT_INNB
AND FBC.USE_AT = 'Y') CMT_CNT,
FB.USE_AT ,
FB.EXPSR_AT
FROM GC_INTRANET_BOARDDATA FB
INNER JOIN GC_INTRANET_BOARDMANAGER FBM
ON FB.SOPMAL_CD = FBM.SOPMAL_CD
AND FB.BBS_ID = FBM.BBS_ID
LEFT OUTER JOIN GC_STORE GS
ON GS.STR_INNB = FB.STR_INNB
WHERE 1=1
AND (FB.NTC_AT = 'N'
OR (FB.NTC_AT = 'Y' AND (FB.NTC_PD_SETUP_AT = 'N' OR (DATE_FORMAT(NOW(),'%Y-%m-%d') BETWEEN FB.NTC_BGN_DE AND FB.NTC_END_DE))))
<include refid="selectListWhere"/>
AND FB.DEPTH = 0
AND FB.SOPMAL_CD = #{sopmalCd}
AND FB.BBS_ID = #{bbsId}
ORDER BY SORT_ORDR DESC, BBSCTT_INNB
) AS A
WHERE 1 = 1
AND A.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(tentGroup, '02')">/*매장은 삭제글 못봄*/
AND A.EXPSR_AT = 'Y'
</if>
</select>
<!--게시글 목록 조회-->
<select id="selectBOBbscttListInqire" resultType="com.wb.domainserver.util.dataaccess.DataMap">
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(ntcAt)">
SELECT B.*
FROM (
(
SELECT
0 RNUM,
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS NOTICE_RNUM,
FB.BBSCTT_INNB,
FB.IP,
FB.SJ,
FB.EXPSR_AT,
FB.REGUSR,
FB.NTC_AT,
FB.NTC_PD_SETUP_AT,
FB.INQIRE_CNT,
FB.USE_AT,
IFNULL(FB.SORT_ORDR, 999) SORT_ORDR,
FB.SOPMAL_CD,
FB.REGUSR_DV_CD,
CASE
WHEN FB.REGUSR_DV_CD = '02' THEN '관리자'
ELSE FB.REGUSR_NM
END REGUSR_NM,
CONCAT(SUBSTRING(FB.REGUSR_ID, 1, 3), REPEAT('*', CHAR_LENGTH(FB.REGUSR_ID) - 3))REGUSR_ID,
FBM.NEW_NTT_STDR_DE_CNT,
FBM.POPULAR_NTT_STDR_INQIRE_CNT,
CASE
WHEN FB.INQIRE_CNT >= FBM.POPULAR_NTT_STDR_INQIRE_CNT THEN 'Y'
ELSE 'N'
END POPULAR_AT,
CASE
WHEN DATE_FORMAT(FB.REGIST_DT, '%Y-%m-%d') <![CDATA[>=]]> DATE_FORMAT(DATE_SUB(NOW(), INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY), '%Y-%m-%d') THEN 'Y'
ELSE 'N'
END NEW_AT,
DATE_FORMAT(FB.REGIST_DT, '%Y-%m-%d %H:%i:%s') REGIST_DT,
FB.NTC_BGN_DE,
FB.NTC_END_DE,
CASE
WHEN FB.NTC_PD_SETUP_AT = 'N' THEN '1'
WHEN FB.NTC_PD_SETUP_AT = 'Y' AND FB.NTC_END_DE <![CDATA[>=]]> SYSDATE() THEN '2'
ELSE '3'
END NTC_DVN,
EXISTS (SELECT FBF.BBSCTT_ATCHMNFIL_INNB FROM GC_INTRANET_BOARDDATA_FILE FBF WHERE FBF.BBSCTT_INNB = FB.BBSCTT_INNB AND FBF.SOPMAL_CD = FB.SOPMAL_CD) AS ISFILES,
(SELECT COUNT(*) FROM GC_INTRANET_BOARDCOMMENT FBC
WHERE FB.SOPMAL_CD = FBC.SOPMAL_CD
AND FB.BBSCTT_INNB = FBC.BBSCTT_INNB
AND FBC.USE_AT = 'Y') CMT_CNT,
FB.PROCS_COMPT_AT AS ANSW_AT,
'' AS WRITE_DV_NM,
'' AS STR_DV_NM,
'' DEL_AT
FROM GC_INTRANET_BOARDDATA FB
INNER JOIN GC_INTRANET_BOARDMANAGER FBM
ON FB.SOPMAL_CD = FBM.SOPMAL_CD
AND FB.BBS_ID = FBM.BBS_ID
LEFT OUTER JOIN GC_STORE GS
ON GS.STR_INNB = FB.STR_INNB
WHERE (@ROWNUM:=0)=0
AND FB.DEPTH = 0
AND FB.NTC_AT = 'Y'
AND FB.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(tentGroup, '02')">/*매장은 삭제글 못봄*/
AND FB.EXPSR_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bbsFormVoList)">
AND FB.BBSCTT_INNB IN (
SELECT
FBA.BBSCTT_INNB
FROM
GC_INTRANET_BOARD_ADDITM FBA
WHERE
1 = 1
<foreach item="outerItem" index="outerIndex" collection="bbsFormVoList">
AND FBA.ITM_INNB IN
<foreach item="innerItem" index="innerIndex" collection="outerItem.bbsFormItmList"
open="(" close=")" separator=",">
#{innerItem.itmInnb}
</foreach>
</foreach>
AND FBA.USE_AT = 'Y'
AND FBA.SOPMAL_CD = #{sopmalCd})
</if>
</if>
AND FB.SOPMAL_CD = #{sopmalCd}
AND FB.BBS_ID = #{bbsId}
)
UNION ALL
(
</if>
SELECT A.*
,CASE
WHEN A.USE_AT = 'N' AND (A.CMT_CNT <![CDATA[>=]]> 0) THEN 'Y'
ELSE 'N'
END DEL_AT
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) <if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ntcCnt)">-#{ntcCnt}</if> AS RNUM
,0 AS NOTICE_RNUM
,FB.BBSCTT_INNB
,FB.IP
,FB.SJ
,FB.EXPSR_AT
,FB.REGUSR
,FB.NTC_AT
,FB.NTC_PD_SETUP_AT
,FB.INQIRE_CNT
,FB.USE_AT
,IFNULL(FB.SORT_ORDR,999) SORT_ORDR
,FB.SOPMAL_CD
,FB.REGUSR_DV_CD
,CASE
WHEN FB.REGUSR_DV_CD = '02' THEN '관리자'
ELSE GS.TENTCPN_NM
END REGUSR_NM
,CONCAT(SUBSTRING(FB.REGUSR_ID, 1, 3), REPEAT('*', CHAR_LENGTH(FB.REGUSR_ID) - 3))REGUSR_ID
,FBM.NEW_NTT_STDR_DE_CNT
,FBM.POPULAR_NTT_STDR_INQIRE_CNT
,CASE
WHEN FB.INQIRE_CNT >= FBM.POPULAR_NTT_STDR_INQIRE_CNT THEN 'Y'
ELSE 'N'
END POPULAR_AT
,CASE
WHEN DATE_FORMAT(FB.REGIST_DT, '%Y-%m-%d') <![CDATA[>=]]> DATE_FORMAT(DATE_SUB( NOW(), INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY), '%Y-%m-%d') THEN 'Y'
ELSE 'N'
END NEW_AT
,DATE_FORMAT(FB.REGIST_DT, '%Y-%m-%d %H:%i:%s') REGIST_DT
,FB.NTC_BGN_DE
,FB.NTC_END_DE
,'0' NTC_DVN
,EXISTS (SELECT FBF.BBSCTT_ATCHMNFIL_INNB
FROM GC_INTRANET_BOARDDATA_FILE FBF
WHERE FBF.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBF.SOPMAL_CD = FB.SOPMAL_CD) AS ISFILES
,(SELECT COUNT(*) FROM GC_INTRANET_BOARDCOMMENT FBC
WHERE FB.SOPMAL_CD = FBC.SOPMAL_CD
AND FB.BBSCTT_INNB = FBC.BBSCTT_INNB
AND FBC.USE_AT = 'Y') CMT_CNT
,FB.PROCS_COMPT_AT ANSW_AT
,FN_GET_COMMCODE_NAME('WRITE_DV', WRITE_DV_CD) AS WRITE_DV_NM
,FN_GET_COMMCODE_NAME('STR_DV', STR_DV) AS STR_DV_NM
FROM GC_INTRANET_BOARDDATA FB
INNER JOIN GC_INTRANET_BOARDMANAGER FBM
ON FB.SOPMAL_CD = FBM.SOPMAL_CD
AND FB.BBS_ID = FBM.BBS_ID
LEFT OUTER JOIN GC_STORE GS
ON GS.STR_INNB = FB.STR_INNB
WHERE (@ROWNUM:=0)=0
AND (FB.NTC_AT = 'N'
OR (FB.NTC_AT = 'Y' AND (FB.NTC_PD_SETUP_AT = 'N' OR (DATE_FORMAT(NOW(),'%Y-%m-%d') BETWEEN FB.NTC_BGN_DE AND FB.NTC_END_DE))))
<include refid="selectListWhere"/>
AND FB.DEPTH = 0
AND FB.SOPMAL_CD = #{sopmalCd}
AND FB.BBS_ID = #{bbsId}
ORDER BY SORT_ORDR DESC, BBSCTT_INNB
) AS A
WHERE 1 = 1
AND A.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(tentGroup, '02')">/*매장은 삭제글 못봄*/
AND A.EXPSR_AT = 'Y'
</if>
ORDER BY A.RNUM DESC
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(ntcAt)">
)
) AS B
ORDER BY B.NOTICE_RNUM DESC, B.RNUM DESC
</if>
</select>
<!--게시글 상세조회-->
<select id="selectBOBbscttDtlInqirePopup" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT AA.*
, DATE_FORMAT(AA.A_REGIST_DT, '%Y-%m-%d %H:%i:%s') REGIST_DT
, DATE_FORMAT(AA.A_BEFORE_REGIST_DT, '%Y-%m-%d %H:%i:%s') BEFORE_REGIST_DT
, DATE_FORMAT(AA.A_AFTER_REGIST_DT, '%Y-%m-%d %H:%i:%s') AFTER_REGIST_DT
, CONCAT(SUBSTRING(AA.BEFORE_REGUSR_ID, 1, 3),REPEAT('*', CHAR_LENGTH(AA.REGUSR_ID) - 3)) MASKING_BEFORE_REGUSR_ID
, CONCAT(SUBSTRING(AA.AFTER_REGUSR_ID, 1, 3),REPEAT('*', CHAR_LENGTH(AA.REGUSR_ID) - 3)) MASKING_AFTER_REGUSR_ID
, CASE
WHEN AA.BEFORE_REGUSR_DV_CD = '02' THEN '관리자'
ELSE AA.A_BEFORE_REGUSR_NM
END BEFORE_REGUSR_NM
, CASE
WHEN AA.AFTER_REGUSR_DV_CD = '02' THEN '관리자'
ELSE AA.A_AFTER_REGUSR_NM
END AFTER_REGUSR_NM
FROM(SELECT FB.BBSCTT_INNB
,FB.BBS_ID
,FB2.INQIRE_CNT
,FB2.IP
,FB2.EXPSR_AT
,FB2.NTC_AT
,FB2.NTC_END_DE
,FB2.NTC_BGN_DE
,FB2.NTC_PD_SETUP_AT
,FB2.REGIST_DT A_REGIST_DT
,FB2.REGUSR
,FB2.REGUSR_DV_CD
,FB2.SJ
,FB2.CN
,FB2.SORT_ORDR
,FB2.USE_AT
,FB2.REGUSR_ID
,CONCAT(SUBSTRING(FB2.REGUSR_ID, 1, 3), REPEAT('*', CHAR_LENGTH(FB2.REGUSR_ID) - 3))MASKING_REGUSR_ID
,FB2.REGUSR_NM
,CASE
WHEN FB2.INQIRE_CNT >= FBM.POPULAR_NTT_STDR_INQIRE_CNT THEN 'Y'
ELSE 'N'
END POPULAR_AT
,CASE
WHEN DATE_FORMAT(FB2.REGIST_DT, '%Y-%m-%d') >= DATE_FORMAT(DATE_SUB( NOW(), INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY), '%Y-%m-%d') THEN 'Y'
ELSE 'N'
END NEW_AT
,FB.BEFORE_USE_AT
,FB.BEFORE_INNB
,FB.BEFORE_SJ
,FB.A_BEFORE_REGIST_DT
,FB.BEFORE_REGUSR_DV_CD
,FB.BEFORE_REGUSR_ID
,FB.A_BEFORE_REGUSR_NM
,FB.AFTER_USE_AT
,FB.AFTER_INNB
,FB.AFTER_SJ
,FB.A_AFTER_REGIST_DT
,FB.AFTER_REGUSR_DV_CD
,FB.AFTER_REGUSR_ID
,FB.A_AFTER_REGUSR_NM
,FB.PROCS_COMPT_AT
,FB.WRITE_DV_CD
,FB2.POPUP_AT
,FB2.POPUP_PD_SETUP_AT
,FB2.POPUP_EXPSR_BGN_DT
,FB2.POPUP_EXPSR_END_DT
FROM ( SELECT AA.*
FROM(SELECT
FB.BBSCTT_INNB
,FB.BBS_ID
,FB.SOPMAL_CD
,LAG(FB.USE_AT)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS BEFORE_USE_AT
,LAG(FB.BBSCTT_INNB)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS BEFORE_INNB
,LAG(FB.SJ)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS BEFORE_SJ
,LAG(FB.REGIST_DT)OVER(ORDER BY FB.BBSCTT_INNB DESC) AS A_BEFORE_REGIST_DT
,LAG(FB.REGUSR_DV_CD)OVER(ORDER BY FB.BBSCTT_INNB DESC) AS BEFORE_REGUSR_DV_CD
,LAG(FB.REGUSR_ID)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS BEFORE_REGUSR_ID
,LAG(FB.REGUSR_NM)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS A_BEFORE_REGUSR_NM
,LEAD(FB.USE_AT)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_USE_AT
,LEAD(FB.BBSCTT_INNB)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_INNB
,LEAD(FB.SJ)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_SJ
,LEAD(FB.REGIST_DT)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS A_AFTER_REGIST_DT
,LEAD(FB.REGUSR_DV_CD)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_REGUSR_DV_CD
,LEAD(FB.REGUSR_ID)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_REGUSR_ID
,LEAD(FB.REGUSR_NM)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS A_AFTER_REGUSR_NM
,FB.PROCS_COMPT_AT
,FB.WRITE_DV_CD
FROM GC_INTRANET_BOARDDATA AS FB
WHERE 1=1
AND FB.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(tentGroup, '02')"> /*매장은 삭제글 못봄*/
AND FB.EXPSR_AT = 'Y'
AND FB.STR_INNB IN(#{strInnb} , 1, 19)/*본인 또는 본사관리자 글 만 노출*/
</if>
AND FB.SOPMAL_CD = #{sopmalCd}
AND FB.BBS_ID = #{bbsId}
AND FB.DEPTH = 0
) AA
) FB
INNER JOIN GC_INTRANET_BOARDDATA FB2
ON FB.SOPMAL_CD = FB2.SOPMAL_CD
AND FB.BBSCTT_INNB = FB2.BBSCTT_INNB
INNER JOIN GC_INTRANET_BOARDMANAGER FBM
ON FB.BBS_ID = FBM.BBS_ID
AND FB.SOPMAL_CD = FBM.SOPMAL_CD
WHERE 1=1
AND FB2.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(tentGroup, '02')">/*매장은 삭제글 못봄*/
AND FB2.EXPSR_AT = 'Y'
AND FB2.STR_INNB IN(#{strInnb} , 1, 19)/*본인 또는 본사관리자 글 만 노출*/
</if>
)AA
WHERE BBSCTT_INNB = #{bbscttInnb}
</select>
<!--게시글 답변상세조회-->
<select id="selectBOAnswInfoInqire" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT BD.BBSCTT_INNB,
BD.SJ,
BD.CN,
(SELECT FM.MNGR_ID FROM GC_MANAGER FM WHERE FM.MNGR_INNB = BD.REGUSR),
DATE_FORMAT(BD.REGIST_DT, '%Y-%m-%d %H:%i:%s')
FROM GC_INTRANET_BOARDDATA BD
WHERE BD.PARNTS_BBSCTT_INNB = #{bbscttInnb}
AND BD.BBS_ID = #{bbsId}
AND BD.SOPMAL_CD = #{sopmalCd}
</select>
<!--게시판추가문항 조회-->
<select id="selectBOBbscttQesitmInqire" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT FBFR.QESITM_INNB,
FBFR.ITM_TY_CD,
FBFR.QESITM_NM,
FBFR.QESITM_ESSNTL_AT,
FBFR.QESITM_USE_AT,
FBFR.QESITM_ORDR
FROM GC_INTRANET_BOARDFORM FBFR
WHERE 1=1
AND FBFR.BBS_ID = #{bbsId}
AND FBFR.USE_AT = 'Y'
AND FBFR.QESITM_USE_AT = 'Y'
AND FBFR.ADIT_ITM_DV_CD IN ('01','02')
ORDER BY FBFR.QESITM_ORDR ASC
</select>
<!--게시판추가문항항목 조회-->
<select id="selectItmCn" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT ITM_CN,
ITM_INNB,
(SELECT ITM_TY_CD FROM GC_INTRANET_BOARDFORM BF WHERE BF.QESITM_INNB = BFI.QESITM_INNB) AS ITM_TY,
BFI.QESITM_INNB
FROM GC_INTRANET_BOARDFORM_ITM BFI
WHERE 1=1
AND USE_AT = 'Y'
AND QESITM_INNB = #{qesitmInnb}
</select>
<!--게시글추가문항답변 조회 -->
<select id="selectBOBbscttQesitmAnswInqire" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT BA.BBSCTT_INNB,
BA.QESITM_INNB,
BA.ITM_INNB,
BA.ANSW_CN,
BA.EVL_SCORE,
FB.ADIT_ITM_DV_CD,
FB.ITM_TY_CD,
FB.QESITM_ESSNTL_AT,
FB.QESITM_NM
FROM GC_INTRANET_BOARD_ADDITM BA
INNER JOIN GC_INTRANET_BOARDFORM FB
ON FB.QESITM_INNB = BA.QESITM_INNB
AND FB.SOPMAL_CD = BA.SOPMAL_CD
WHERE 1 = 1
AND BA.USE_AT = 'Y'
AND FB.BBS_ID = #{bbsId}
AND BA.SOPMAL_CD = #{sopmalCd}
AND BA.BBSCTT_INNB = #{bbscttInnb}
</select>
<!--게시글 리스트 게시글 별 답변 조회 -->
<select id="selectBOBbscttListQesitmAnswInqire" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT BA.BBSCTT_INNB,
BA.QESITM_INNB,
BA.ITM_INNB,
BA.ANSW_CN
FROM GC_INTRANET_BOARD_ADDITM BA
WHERE 1 = 1
AND BA.USE_AT = 'Y'
AND BA.BBSCTT_INNB IN
<foreach item="innerItem" index="index" collection="list"
open="(" close=")" separator=",">
#{innerItem.bbscttInnb}
</foreach>
</select>
<!--파일 조회-->
<select id="selectBOFileInfo" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT FILE.BBSCTT_ATCHMNFIL_INNB,
FILE.BBSCTT_INNB,
FILE.ORGINL_FIL_NM,
FILE.SYS_FIL_NM,
FILE.FIL_MG,
FILE.FIL_TY,
FILE.FIL_COURS,
FILE.SOPMAL_CD
FROM GC_INTRANET_BOARDDATA_FILE FILE
WHERE 1=1
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bbscttInnbArr)">
AND FILE.BBSCTT_INNB IN
<foreach item="bbscttInnb" collection="bbscttInnbArr"
open="(" close=")" separator=",">
#{bbscttInnb}
</foreach>
</when>
<otherwise>
AND FILE.BBSCTT_INNB = #{bbscttInnb}
</otherwise>
</choose>
AND FILE.SOPMAL_CD = #{sopmalCd}
ORDER BY FILE.BBSCTT_INNB DESC
</select>
<!--슈퍼바이저 조회-->
<select id="selectBOIntranetSv" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
SV_WRITE_DV_CD,
CASE
WHEN SV_WRITE_DV_CD IN ('01','02') THEN FN_GET_COMMCODE_NAME('SV_WRITE_DV', SV_WRITE_DV_CD)
ELSE FN_GET_COMMCODE_NAME('SV_WRITE_DV', '03')
END AS SV_WRITE_DV_CD_NM,
SV_INNB,
BBS_ID,
MNGR_NM,
CAST(AES_DECRYPT(UNHEX(MNGR_MBTLNB) , #{secretKey}) AS CHAR(50)) AS MNGR_MBTLNB,
REGUSR,
DATE_FORMAT(REGIST_DT,'%Y-%m-%d')REGIST_DT
FROM GC_INTRANET_SV
WHERE USE_AT = 'Y'
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(svInnb)">
AND SV_INNB = #{svInnb}
</if>
</select>
<!--팝업 조회-->
<select id="selectBbscttPopupContent" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT GIB.SJ,
GIB.CN,
GIB.INQIRE_CNT,
DATE_FORMAT(GIB.REGIST_DT,'%Y-%m-%d %H:%i') AS REGIST_DT,
GIB.BBSCTT_INNB
FROM GC_INTRANET_BOARDDATA GIB
WHERE GIB.POPUP_AT = 'Y'
AND GIB.BBS_ID = 'gs_seller_notice'
AND (GIB.POPUP_PD_SETUP_AT = 'N' OR (GIB.POPUP_PD_SETUP_AT = 'Y' AND (NOW() BETWEEN IFNULL(GIB.POPUP_EXPSR_BGN_DT,'1900-01-01') AND IFNULL(GIB.POPUP_EXPSR_END_DT,'1900-01-01'))))
ORDER BY BBSCTT_INNB DESC
</select>
<!-- 인트라넷 슈퍼바이저 문자 발송 쿼리 -->
<select id="selectBOItrntSvMssageSndng" resultType="dataMap">
SELECT
GIB.BBSCTT_INNB
, GIB.SOPMAL_CD
, GIB.REGUSR_NM AS STR_NM
, SHOP.CSC_TELNB
, SHOP.SOPMAL_NM AS SHOP_NAME
,CASE WRITE_DV_CD WHEN '01' THEN '반품'
WHEN '02' THEN '교환'
ELSE '오발주' END AS TYPE
, CAST(AES_DECRYPT(UNHEX(GIS.MNGR_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS RECPTN_NB
, 'FORM_DV_BBS' AS FORM_DV_CD
, '03' AS FORM_DTL_DV_CD
, GIB.STR_INNB
, GIB.STR_DV
, GIB.REGUSR
FROM GC_INTRANET_BOARDDATA GIB
INNER JOIN GC_INTRANET_SV GIS
ON GIB.BBS_ID = GIS.BBS_ID
AND GIS.USE_AT = 'Y'
INNER JOIN GC_STORE STR
ON GIB.STR_INNB = STR.STR_INNB
INNER JOIN GC_SHOP SHOP
ON GIB.SOPMAL_CD = SHOP.SOPMAL_CD
WHERE 1=1
AND GIB.BBSCTT_INNB = #{bbscttInnb}
AND GIB.REGUSR_NM > ''
AND GIS.SV_INNB = #{svInnb}
</select>
</mapper>