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,16 @@
<?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.bbs.mapper.BOItrntBbsMapper">
<!--게시판 설정 조회-->
<select id="selectBOBbsSetupInfo" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT BBS_ID,
BBS_NM,
DFT_CN,
FIL_PERM_FIL_EXTSN,
SOPMAL_CD,
BBS_TY_CD
FROM GC_INTRANET_BOARDMANAGER GIB
WHERE USE_AT = 'Y'
AND BBS_ID = #{bbsId}
</select>
</mapper>

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>

View File

@@ -0,0 +1,212 @@
<?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.cm.mapper.BOItrntCmMapper">
<!--댓글 등록-->
<insert id="insertBOCmRegist">
<selectKey keyProperty="cmInnb" resultType="java.lang.String" order="BEFORE">
SELECT IFNULL(MAX(CM_INNB), 0) + 1
FROM GC_INTRANET_BOARDCOMMENT
</selectKey>
INSERT INTO GC_INTRANET_BOARDCOMMENT (
CM_INNB,
SOPMAL_CD,
BBSCTT_INNB,
PARNTS_CM_INNB,
REGUSR_DV_CD,
REGUSR_ID,
REGUSR_NM,
DEPTH,
CN,
SECRET_BBSCTT_AT,
INQIRE_CNT,
AGENT_ID,
IP,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES (
#{cmInnb},
#{sopmalCd},
#{bbscttInnb},
#{parntsCmInnb},
#{regusrDvCd},
#{regusrId},
#{regusrNm},
#{depth},
#{cn},
IFNULL(#{secretBbscttAt},'N'),
0,
#{agentId},
#{ip},
'Y',
#{regusr},
NOW(),
#{updusr},
NOW()
)
</insert>
<!--댓글 수정-->
<update id="updateBOCmUpdt">
UPDATE GC_INTRANET_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">
UPDATE GC_INTRANET_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="selectBOBCmListCnt" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM(SELECT FBC.CM_INNB
, FBC.USE_AT
, (SELECT COUNT(FBC2.CM_INNB)
FROM GC_INTRANET_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) CM_ANSW_CNT
FROM GC_INTRANET_BOARDCOMMENT FBC
INNER JOIN GC_INTRANET_BOARDDATA FB
ON FBC.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBC.SOPMAL_CD = FB.SOPMAL_CD
INNER JOIN GC_INTRANET_BOARDMANAGER FBM
ON FB.BBS_ID = FBM.BBS_ID
AND FBM.SOPMAL_CD = FBM.SOPMAL_CD
WHERE 1=1
AND FBC.DEPTH = 0
AND FBC.SOPMAL_CD = #{sopmalCd}
AND FBM.SOPMAL_CD = #{sopmalCd}
AND FBC.BBSCTT_INNB = #{bbscttInnb})FBC
WHERE 1=1
AND !(FBC.USE_AT = 'N' AND FBC.CM_ANSW_CNT = 0)
</select>
<!--댓글 목록 조회-->
<select id="selectBOCmListInqire" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,FB.*
FROM ( SELECT FBC.*
,DATE_FORMAT(FBC.A_REGIST_DT,'%Y.%m.%d. %H:%i')REGIST_DT
,CONCAT(SUBSTRING(FBC.REGUSR_ID, 1, 4), '***')MASKING_REGUSR_ID
FROM(SELECT FBC.CM_INNB
,FBC.BBSCTT_INNB
,FBC.PARNTS_CM_INNB
,FBC.SOPMAL_CD
,FBC.CN
,FBC.REGIST_DT A_REGIST_DT
,FBC.SECRET_BBSCTT_AT
,FBC.USE_AT
,FBC.REGUSR_DV_CD
,FBC.IP
,FBC.DEPTH
,FBC.REGUSR
,FBC.REGUSR_ID
,CASE WHEN FBC.REGUSR_DV_CD = '02' THEN '관리자' ELSE FBC.REGUSR_NM END REGUSR_NM
,(SELECT COUNT(FBC2.CM_INNB)
FROM GC_INTRANET_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)CM_ANSW_CNT
,CASE
WHEN DATE_ADD(FBC.REGIST_DT, INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY) > SYSDATE() THEN 'Y'
ELSE 'N'
END NEW_AT
FROM GC_INTRANET_BOARDCOMMENT FBC
INNER JOIN GC_INTRANET_BOARDDATA FB
ON FBC.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBC.SOPMAL_CD = FB.SOPMAL_CD
INNER JOIN GC_INTRANET_BOARDMANAGER FBM
ON FB.BBS_ID = FBM.BBS_ID
AND FBM.SOPMAL_CD = FBM.SOPMAL_CD
WHERE 1=1
AND FBC.DEPTH = 0
AND FBC.SOPMAL_CD = #{sopmalCd}
AND FBM.SOPMAL_CD = #{sopmalCd}
AND FBC.BBSCTT_INNB = #{bbscttInnb})FBC
WHERE 1=1
AND !(FBC.USE_AT = 'N' AND FBC.CM_ANSW_CNT = 0)
) FB
WHERE
(@ROWNUM:=0)=0
) PV
WHERE 1=1
ORDER BY PV.CM_INNB DESC
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!--대댓글 목록 조회-->
<select id="selectBOCmAnswListInqire" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT FBC.*
,DATE_FORMAT(FBC.A_REGIST_DT,'%Y-%m-%d. %H:%i')REGIST_DT
,CONCAT(SUBSTRING(FBC.REGUSR_ID, 1, 4), '***')MASKING_REGUSR_ID
FROM(SELECT FBC.CM_INNB
,FBC.BBSCTT_INNB
,FBC.SOPMAL_CD
,FBC.CN
,FBC.REGIST_DT A_REGIST_DT
,FBC.PARNTS_CM_INNB
,FBC.SECRET_BBSCTT_AT
,FBC.USE_AT
,FBC.REGUSR_DV_CD
,FBC.IP
,FBC.DEPTH
,FBC.REGUSR
,FBC.REGUSR_ID
,CASE WHEN FBC.REGUSR_DV_CD = '02' THEN '관리자' ELSE FBC.REGUSR_NM END REGUSR_NM
,CASE
WHEN DATE_ADD(FBC.REGIST_DT, INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY) > SYSDATE() THEN 'Y'
ELSE 'N'
END NEW_AT
FROM GC_INTRANET_BOARDCOMMENT FBC
INNER JOIN GC_INTRANET_BOARDDATA FB
ON FBC.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBC.SOPMAL_CD = FB.SOPMAL_CD
INNER JOIN GC_INTRANET_BOARDMANAGER FBM
ON FB.BBS_ID = FBM.BBS_ID
AND FBM.SOPMAL_CD = FBM.SOPMAL_CD
WHERE 1=1
AND FBC.DEPTH = 1
AND FBC.USE_AT = 'Y'
AND FBC.SOPMAL_CD = #{sopmalCd}
AND FBM.SOPMAL_CD = #{sopmalCd}
AND FBC.PARNTS_CM_INNB IN
<foreach collection="cmInnbArr" item="cmInnbArr" open="(" close=")" separator=",">
#{cmInnbArr}
</foreach>
AND FBC.BBSCTT_INNB = #{bbscttInnb}
)FBC
</select>
<!--댓글 수정,삭제 가능 조회 (수정,삭제시 여부 판단 후 수정, 삭제)-->
<select id="selectCmUpdtDelPosibleAt" resultType="java.lang.Boolean">
SELECT CASE
WHEN COUNT(1) > 0 THEN 'Y'
ELSE 'Y'
END
FROM GC_INTRANET_BOARDCOMMENT
WHERE REGUSR = #{regusr}
AND BBSCTT_INNB = #{bbscttInnb}
</select>
</mapper>

View File

@@ -0,0 +1 @@
<?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.main.mapper.BOMainMapper"></mapper>

View File

@@ -0,0 +1,482 @@
<?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.mbr.mapper.BOItrntMbrMapper">
<sql id = "mbrSrchFrom">
FROM GC_MEMBER GM
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchOtherMbr, 'Y')">
LEFT JOIN GC_EXTRL_MEMBER EM /* 타 매장회원 포함 */
</when>
<otherwise>
INNER JOIN GC_EXTRL_MEMBER EM /* 자기 매장만 */
</otherwise>
</choose>
ON GM.MBR_INNB = EM.MBR_INNB
AND GM.MBR_DV_CD = EM.MBR_DV_CD
AND EM.EXTRL_INTRLCK_DV_CD = '03'
INNER JOIN GC_MEMBER_SITE GMS
ON GM.MBR_INNB = GMS.MBR_INNB
AND GM.MBR_DV_CD = GMS.MBR_DV_CD
AND GMS.SOPMAL_CD = #{sopmalCd}
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GMS.MBR_INNB = GMGM.MBR_INNB
AND GMS.MBR_DV_CD = GMGM.MBR_DV_CD
AND GMS.SOPMAL_CD = GMGM.SOPMAL_CD
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchGrad)"> /* 특정 등급 */
AND GMGM.MBR_GRAD_INNB = #{srchGrad}
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMarktRecptnAgreAt)">
LEFT JOIN GC_MARKETING_AGREE GMA -- 마케팅 수신여부 동의 체크 안할때는 JOIN 안함
ON GMS.MBR_INNB = GMA.MBR_INNB
AND GMS.MBR_DV_CD = GMA.MBR_DV_CD
AND GMS.SOPMAL_CD = GMA.SOPMAL_CD -- SOPMALL 기준 검색
AND GMA.MARKT_RECPTN_AGRE_AT = #{srchMarktRecptnAgreAt} -- 마케팅 수신여부 동의 체크 할때는 필수
</if>
LEFT JOIN LATERAL ( SELECT FMI.MBR_INNB , FMI.MBR_DV_CD ,
SUM( FMI.BLCE ) - SUM( IFNULL(FMI.LOSS,0) ) AS MILEAGE
FROM GC_MILEAGE FMI
WHERE 1 = 1
AND FMI.MBR_INNB = GM.MBR_INNB
AND FMI.MBR_DV_CD = GM.MBR_DV_CD
AND FMI.BLCE > 0
AND FMI.USE_POSBL_END_DT >= DATE_FORMAT(CURDATE(), '%Y-%m-%d')
AND FMI.MLG_ACCML_DV_CD IN ('add', 'up')
AND FMI.CANCL_AT = 'N'
) GMI
ON GM.MBR_INNB = GMI.MBR_INNB
AND GM.MBR_DV_CD = GMI.MBR_DV_CD
LEFT JOIN LATERAL ( SELECT O.MBR_INNB, O.MBR_DV_CD
, SUM(O.RL_SETLE_AMT) - SUM(IFNULL(GOR.REFUND_AMT, 0)) AS RL_SETLE_AMT
, COUNT(O.ORDR_INNB) ORDR_CNT
FROM GC_ORDER O
LEFT JOIN LATERAL(SELECT GOR2.ORDR_INNB, GOR2.SOPMAL_CD, SUM(GOR2.REFUND_AMT) REFUND_AMT
FROM GC_ORDER_REFUND GOR2
WHERE 1 = 1
AND GOR2.USE_AT = 'Y'
AND GOR2.REFUND_PROCS_STTUS_CD IN ('02','03') -- 추가됨...01 신청단계는 계산안해야함
AND O.ORDR_INNB = GOR2.ORDR_INNB
AND O.SOPMAL_CD = GOR2.SOPMAL_CD
GROUP BY GOR2.ORDR_INNB, GOR2.SOPMAL_CD
) GOR
ON O.ORDR_INNB = GOR.ORDR_INNB
AND O.SOPMAL_CD = GOR.SOPMAL_CD
WHERE 1 = 1
AND (O.ORDR_INNB, O.SOPMAL_CD) IN ( SELECT DISTINCT GOI.ORDR_INNB, GOI.SOPMAL_CD
FROM GC_ORDER_ITEM GOI
INNER JOIN GC_ORDER O1
ON GOI.ORDR_INNB = O1.ORDR_INNB
AND GOI.SOPMAL_CD = O1.SOPMAL_CD
WHERE 1 = 1
AND GOI.GOODS_KND_CD = '01'
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrGoodsNm)">
AND GOI.GOODS_NM LIKE CONCAT('%',IFNULL(#{stdrGoodsNm},''),'%')
</if>
AND O1.SOPMAL_CD = O.SOPMAL_CD
AND O1.MBR_INNB = O.MBR_INNB
AND O1.MBR_DV_CD = O.MBR_DV_CD
)
AND O.SOPMAL_CD = #{sopmalCd}
AND O.USE_AT = 'Y'
AND O.ORDR_STTUS_CD BETWEEN '25' AND '75'
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrStrtPurchsPd)">
AND O.ORDR_RCEPT_DT <![CDATA[>=]]> IFNULL(#{stdrStrtPurchsPd}, '1999-01-01')
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrEndPurchsPd)">
AND O.ORDR_RCEPT_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{stdrEndPurchsPd},INTERVAL 1 DAY), SYSDATE())
</if>
AND O.MBR_INNB = GM.MBR_INNB
AND O.MBR_DV_CD = GM.MBR_DV_CD
GROUP BY O.MBR_INNB, O.MBR_DV_CD
) GO2
ON GM.MBR_INNB = GO2.MBR_INNB
AND GM.MBR_DV_CD = GO2.MBR_DV_CD
LEFT JOIN LATERAL ( SELECT O.MBR_INNB, O.MBR_DV_CD
, SUM(O.RL_SETLE_AMT) - SUM(IFNULL(GOR.REFUND_AMT, 0)) AS RL_SETLE_AMT
, COUNT(O.ORDR_INNB) ORDR_CNT
FROM GC_ORDER O
LEFT JOIN LATERAL(SELECT GOR2.ORDR_INNB, GOR2.SOPMAL_CD, SUM(GOR2.REFUND_AMT) REFUND_AMT
FROM GC_ORDER_REFUND GOR2
WHERE 1 = 1
AND GOR2.USE_AT = 'Y'
AND GOR2.REFUND_PROCS_STTUS_CD IN ('02','03') -- 추가됨...01 신청단계는 계산안해야함
AND O.ORDR_INNB = GOR2.ORDR_INNB
AND O.SOPMAL_CD = GOR2.SOPMAL_CD
GROUP BY GOR2.ORDR_INNB, GOR2.SOPMAL_CD
) GOR
ON O.ORDR_INNB = GOR.ORDR_INNB
AND O.SOPMAL_CD = GOR.SOPMAL_CD
WHERE 1 = 1
AND (O.ORDR_INNB, O.SOPMAL_CD) IN ( SELECT DISTINCT GOI.ORDR_INNB, GOI.SOPMAL_CD
FROM GC_ORDER_ITEM GOI
INNER JOIN GC_ORDER O1
ON GOI.ORDR_INNB = O1.ORDR_INNB
AND GOI.SOPMAL_CD = O1.SOPMAL_CD
WHERE 1 = 1
AND GOI.GOODS_KND_CD = '01'
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprGoodsNm)">
AND GOI.GOODS_NM LIKE CONCAT('%',IFNULL(#{cmprGoodsNm},''),'%')
</if>
AND O1.SOPMAL_CD = O.SOPMAL_CD
AND O1.MBR_INNB = O.MBR_INNB
AND O1.MBR_DV_CD = O.MBR_DV_CD
)
AND O.SOPMAL_CD = #{sopmalCd}
AND O.USE_AT = 'Y'
AND O.ORDR_STTUS_CD BETWEEN '25' AND '75'
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprStrtPurchsPd)">
AND O.ORDR_RCEPT_DT <![CDATA[>=]]> IFNULL(#{cmprStrtPurchsPd}, '1999-01-01')
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprEndPurchsPd)">
AND O.ORDR_RCEPT_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{cmprEndPurchsPd},INTERVAL 1 DAY), SYSDATE())
</if>
AND O.MBR_INNB = GM.MBR_INNB
AND O.MBR_DV_CD = GM.MBR_DV_CD
GROUP BY O.MBR_INNB, O.MBR_DV_CD
) GO3
ON GM.MBR_INNB = GO3.MBR_INNB
AND GM.MBR_DV_CD = GO3.MBR_DV_CD
</sql>
<sql id="mbrSrchWhere">
WHERE 1 = 1
AND GM.USE_AT = 'Y'
AND GM.MBR_DV_CD = 'GC'
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKeyword)">
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbrNm')">
AND GM.MBR_NM = #{srchKeyword}
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbrId')">
AND GM.MBR_ID = #{srchKeyword}
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'email')">
AND GM.EMAIL = (SELECT HEX(AES_ENCRYPT(#{srchKeyword} , #{secretKey})))
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbtlnb')">
AND GM.MBTLNB = (SELECT HEX(AES_ENCRYPT(REPLACE(#{srchKeyword},'-',''), #{secretKey})))
</when>
</choose>
</if>
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchOtherMbr, 'Y')">
AND EM.EXTRL_INTRLCK_DV_CD = '03' /* POS 회원이고(타매장 회원 체크 아닐때 필수) */
AND EM.STR_INNB = #{strInnb} /* 내매장이고 (타매장 회원 체크 아닐때 필수) */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtRegistDt)">
AND GM.REGIST_DT <![CDATA[>=]]> IFNULL(#{srchStrtRegistDt}, '1999-01-01') /* 가입일 시작 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndRegistDt)">
AND GM.REGIST_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{srchEndRegistDt},INTERVAL 1 DAY), SYSDATE()) /* 가입일 종료 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtLastPurchsDt)">
AND GMS.LAST_PURCHS_DT <![CDATA[>=]]> IFNULL(#{srchStrtLastPurchsDt}, '1999-01-01') /* 최종구매일 시작 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndLastPurchsDt)">
AND GMS.LAST_PURCHS_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{srchEndLastPurchsDt},INTERVAL 1 DAY), SYSDATE()) /* 최종구매일 종료 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrStrtPurchsAmt)">
AND IFNULL(GO2.RL_SETLE_AMT,0) <![CDATA[>=]]> IFNULL(#{stdrStrtPurchsAmt}, 0) /* 기준 구매금액 시작 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrEndPurchsAmt)">
AND IFNULL(GO2.RL_SETLE_AMT,0) <![CDATA[<=]]> IFNULL(#{stdrEndPurchsAmt}, 9999999999) /* 기준 구매금액 종료 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrStrtPurchsCnt)">
AND IFNULL(GO2.ORDR_CNT,0) <![CDATA[>=]]> IFNULL(#{stdrStrtPurchsCnt}, 0) /* 기준 구매횟수 시작 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrEndPurchsCnt)">
AND IFNULL(GO2.ORDR_CNT,0) <![CDATA[<=]]> IFNULL(#{stdrEndPurchsCnt}, 9999999) /* 기준 구매횟수 종료 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprStrtPurchsAmt)">
AND IFNULL(GO3.RL_SETLE_AMT,0) <![CDATA[>=]]> IFNULL(#{cmprStrtPurchsAmt}, 0) /* 비교 구매금액 시작 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprEndPurchsAmt)">
AND IFNULL(GO3.RL_SETLE_AMT,0) <![CDATA[<=]]> IFNULL(#{cmprEndPurchsAmt}, 9999999999) /* 비교 구매금액 종료 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprStrtPurchsAmt)">
AND IFNULL(GO3.ORDR_CNT,0) <![CDATA[>=]]> IFNULL(#{cmprStrtPurchsAmt}, 0) /* 비교 구매횟수 시작 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprEndPurchsAmt)">
AND IFNULL(GO3.ORDR_CNT,0) <![CDATA[<=]]> IFNULL(#{cmprEndPurchsAmt}, 9999999) /* 비교 구매횟수 종료 */
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSex)"> /* 성별 */
AND GM.SEX = #{srchSex}
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtBrthYear)"> /* 생년 시작 */
AND GM.BRTH_DE <![CDATA[>=]]> DATE_FORMAT(CONCAT(IFNULL(#{srchStrtBrthYear}, '1999'),'0101'),'%Y0101')
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndBrthYear)"> /* 생년 종료 */
AND GM.BRTH_DE <![CDATA[<=]]> DATE_FORMAT(CONCAT(IFNULL(#{srchEndBrthYear}, '9999'),'1231'),'%Y1231')
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtBrthMonth)"> /* 출생 월 시작*/
AND SUBSTRING(GM.BRTH_DE,5,2) <![CDATA[>=]]> #{srchStrtBrthMonth}
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndBrthMonth)"> /* 출생 윌 종료 */
AND SUBSTRING(GM.BRTH_DE,5,2) <![CDATA[<=]]> #{srchEndBrthMonth}
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtMlg)"> /* 마일리지 시작 */
AND GMI.MILEAGE <![CDATA[>=]]> #{srchStrtMlg}
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndMlg)"> /* 마일리지 종료 */
AND GMI.MILEAGE <![CDATA[<=]]> #{srchEndMlg}
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMarktRecptnAgreAt)"> /* 마케팅 수신여부 동의 */
AND GMA.MARKT_RECPTN_AGRE_AT = #{srchMarktRecptnAgreAt}
</if>
</sql>
<!--매장별 회원건수조회-->
<select id="selectBOItrntMbrCnt" resultType="int">
SELECT COUNT(1)
<include refid="mbrSrchFrom"/>
<include refid="mbrSrchWhere"/>
</select>
<!--매장별 회원리스트조회-->
<select id="selectBOItrntMbrList" resultType="DataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED ) AS RNUM
,TB.*
FROM (
SELECT (SELECT TENTCPN_NM FROM GC_STORE GS WHERE GS.STR_INNB = EM.STR_INNB) TENTCPN_NM
, GM.MBR_INNB
, GM.MBR_DV_CD
, REPLACE(GM.MBR_ID,SUBSTRING(GM.MBR_ID,4,5),'*****') MBR_ID
, GM.MBR_NM
, GM.JOIN_MTH_CD
, CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) AS MBTLNB
, FN_GET_MEMBER_GRAD_NAME(GMGM.SOPMAL_CD,GMGM.MBR_DV_CD,GMGM.MBR_INNB) MBR_GRAD_NM
, DATE_FORMAT(GM.REGIST_DT, '%Y-%m-%d %H:%i:%s') REGIST_DT
, DATE_FORMAT( GMS.LAST_PURCHS_DT, '%Y-%m-%d %H:%i:%s') LAST_PURCHS_DT
, GMS.TOT_ORDR_AMT
, IFNULL(GMI.MILEAGE,0) AS MILEAGE
, IFNULL((SELECT FORMAT(IFNULL(BLCE, 0), 0) AS BLCE
FROM GC_CASH GC
WHERE 1 = 1
AND GC.MBR_DV_CD = GM.MBR_DV_CD
AND GC.MBR_INNB = GM.MBR_INNB
AND GC.USE_AT = 'Y'
ORDER BY CASH_INNB DESC
LIMIT 1),0) AS MBR_CASH_AMT /*회원 CASH(충전형마일리지) 금액*/
<include refid="mbrSrchFrom"/>
<include refid="mbrSrchWhere"/>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orderCnd)">
ORDER BY
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'recent')">
GM.REGIST_DT DESC
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'mlgUp')">
GMI.MILEAGE DESC
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'mlgDn')">
GMI.MILEAGE ASC
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'amtUp')">
IFNULL(GMS.TOT_ORDR_AMT,0) DESC
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'amtDn')">
IFNULL(GMS.TOT_ORDR_AMT,0) ASC
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'cntUp')">
IFNULL(GMS.TOT_ORDR_CNT,0) DESC
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'cntDn')">
IFNULL(GMS.TOT_ORDR_CNT,0) ASC
</when>
</choose>
</if>
)TB
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!--매장별 회원리스트조회-->
<select id="selectBOItrntsmsMbrList" resultType="DataMap">
SELECT GM.MBR_INNB
, GM.MBR_DV_CD
, GM.MBR_NM AS RECPNT_NM
, CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) AS SNDNG_MBTLNB
, CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) AS SNDNG_INFO
<include refid="mbrSrchFrom"/>
<include refid="mbrSrchWhere"/>
</select>
<!-- ************************************************************************************************************
상담 서비스 시작
************************************************************************************************************-->
<!-- 상담 목록 조회 WHERE 절 -->
<sql id="cnsltListInqireWhere">
<![CDATA[
WHERE 1=1
AND CNSLT.MBR_DV_CD = #{mbrDvCd} AND CNSLT.MBR_INNB = #{mbrInnb}
]]>
<!-- 상담내용 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchCnsltCn)">
AND CNSLT.CNSLT_CN LIKE CONCAT('%', #{srchCnsltCn}, '%')
</if>
<!-- 등록일 OR 처리일-->
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'cnstlDt')">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
<![CDATA[
AND CNSLT.REGIST_DT >= #{srchStartDate} ' 00:00:00'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
<![CDATA[
AND CNSLT.REGIST_DT <= #{srchEndDate} ' 23:59:59'
]]>
</if>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'procsDt')">
<![CDATA[
AND CNSLT.PROCS_DT IS NOT NULL
]]>
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchEndDate)">
<![CDATA[
AND CNSLT.PROCS_DT BETWEEN #{srchStartDate} ' 00:00:00' AND SYSDATE()
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchStartDate)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
<![CDATA[
AND CNSLT.PROCS_DT < #{srchEndDate} ' 23:59:59'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
<![CDATA[
AND CNSLT.PROCS_DT BETWEEN #{srchStartDate} ' 00:00:00' AND #{srchEndDate} ' 23:59:59'
]]>
</when>
</choose>
</when>
</choose>
<!-- 처리 상태 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchProcsSttusCd)">
<![CDATA[
AND CNSLT.PROCS_STTUS IN
]]>
<foreach collection="srchProcsSttusCd" item="srchProcsSttusCd" open="(" close=")" separator=",">
#{srchProcsSttusCd}
</foreach>
</if>
</sql>
<!--상담 목록 건수-->
<select id="selectBOCnsltListCnt" resultType="Integer">
SELECT COUNT(1)
FROM GC_STORE_COUNSEL CNSLT
<include refid = "cnsltListInqireWhere"/>
</select>
<!--상담 목록 조회-->
<select id="selectBOCnsltListInqire" resultType="DataMap">
SELECT *
FROM (SELECT CAST(@ROWNUM := @ROWNUM + 1 AS UNSIGNED) AS RNUM
, TB.*
FROM (SELECT STR_CNSLT_DTLS_INNB,
REGUSRNM,
FN_GET_COMMCODE_NAME('COUNSEL_PROCS_STTUS', PROCS_STTUS) AS PROCS_STTUS_CD,
PROCS_STTUS,
DATE_FORMAT(PROCS_DE_CTY,'%Y-%m-%d %H:%i:%s') PROCS_DE_CTY,
CNSLT_CN,
DATE_FORMAT(REGIST_DT,'%Y-%m-%d %H:%i:%s')REGIST_DT
FROM GC_STORE_COUNSEL CNSLT
<include refid = "cnsltListInqireWhere"/>) TB
WHERE (@rownum := 0) = 0) PV
WHERE 1 = 1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!--상담 상세 조회-->
<select id="selectBOCnsltDtlUpdtInqirePopup" resultType="DataMap">
/* 상담번호, 상담자, 처리여부, 상담내용 */
SELECT STR_CNSLT_DTLS_INNB,
REGUSRNM,
FN_GET_COMMCODE_NAME('PROCS_STTUS', PROCS_STTUS) AS PROCS_STTUS_CD,
CNSLT_CN
FROM GC_STORE_COUNSEL
WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb}
</select>
<!--상담 등록-->
<insert id="insertBOCnsltRegist">
<selectKey order="BEFORE" keyProperty="strCnsltDtlsInnb" resultType="String">
<![CDATA[
SELECT IFNULL(MAX(STR_CNSLT_DTLS_INNB), 0)+1
FROM GC_STORE_COUNSEL
]]>
</selectKey>
INSERT INTO GC_STORE_COUNSEL
(STR_CNSLT_DTLS_INNB,
STR_INNB,
MNGR_INNB,
MBR_INNB,
MBR_DV_CD,
CNSLT_CN,
PROCS_STTUS,
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttus, '03')">
PROCS_DE_CTY,
</if>
REGUSR,
REGUSRNM,
REGIST_DT,
UPDUSR,
UPDT_DT)
VALUES (
#{strCnsltDtlsInnb},
#{strInnb},
#{mngrInnb},
#{mbrInnb},
#{mbrDvCd},
#{cnsltCn},
#{procsSttus},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttus, '03')">
NOW()
</if>
#{regusr},
#{regusrnm},
NOW(),
#{updusr},
NOW());
</insert>
<!--상담 수정-->
<update id="updateBOCnsltUpdt">
/* 처리여부, 내용*/
UPDATE GC_STORE_COUNSEL
SET
CNSLT_CN = #{cnsltCn},
PROCS_STTUS = #{procsSttus},
UPDUSR = #{updusr},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttus, '03')">
<![CDATA[
PROCS_DE_CTY = NOW(),
]]>
</if>
UPDT_DT = NOW()
WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb}
</update>
<!--상담 삭제-->
<delete id="deleteBOCnsltDel">
DELETE
FROM GC_STORE_COUNSEL
WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb}
</delete>
<!-- 매장명 조회 -->
<select id="selectBoStrNm"
resultType="dataMap">
SELECT
*
FROM GC_STORE
WHERE 1=1
AND POS_CD_DV_VAL = #{posCdDvVal}
AND POS_CD_PASSIV_INPUT_VAL = #{posCdPassiveInputVal}
</select>
</mapper>

View File

@@ -0,0 +1,168 @@
<?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.mngr.mapper.BOItrntMngrMapper">
<!-- 관리자 목록 조회 -->
<select id="selectBOItrntMngrList">
SELECT
A.*
FROM
GC_STORE A
WHERE 1=1
AND A.TENTCPN_ID !='base' -- 입점사 아이디
AND A.MNGR_GROUP = #{strInnb} -- 관리자 그룹
OR A.STR_INNB = #{strInnb} -- 고유번호
ORDER BY STR_INNB DESC
LIMIT #{pageIndex}, #{recordCountPerPage}
</select>
<!-- 페이징처리를 위한 관리자 목록 총 개수 -->
<select id="selectBOItrntMngrListCnt">
SELECT
count(*)
FROM
GC_STORE A
WHERE 1=1
AND A.TENTCPN_ID !='base' -- 입점사 아이디
AND A.MNGR_GROUP = #{strInnb} -- 관리자 그룹
OR A.STR_INNB = #{strInnb} -- 고유번호
</select>
<!-- 관리자 등록 -->
<insert id="insertBOItrntMngrRegist">
<selectKey keyProperty="strInnb" resultType="String" order="BEFORE">
SELECT IFNULL(MAX(STR_INNB), 0) + 1
FROM GC_STORE
</selectKey>
INSERT INTO GC_STORE(
STR_INNB
,TENTCPN_ID
,TENTCPN_NM -- 입점사명
, TENTCPN_PASSWORD
, REPRSNT_MNGR_AT -- 대표관리자 여부
<if test="accesLmttIp != null and accesLmttIp != '' ">
,ACCES_LMTT_IP -- 접근제한 IP
</if>
, MNGR_AUTHOR -- 관리자 권한
, REGIST_DT -- 등록일
)
VALUES(
#{strInnb}
, #{tentcpnId}
, #{tentcpnNm}
, #{tentcpnPassword}
, #{reprsntMngrAt}
<if test="accesLmttIp != null and accesLmttIp != '' ">
, #{accesLmttIp}
</if>
, #{mngrAuthor}
, now())
</insert>
<!-- 관리자 상세 화면 조회-->
<select id="selectBOItrntMngrDtlFrom">
SELECT STR_INNB -- 고유번호
, DATE_FORMAT(LAST_LOGIN_DT, '%Y-%m-%d %H:%i') as lastLoginDt -- 최종로그인일시
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d %H:%i') as registDt -- 등록일시
, REPRSNT_MNGR_AT -- 대표관리자여부
, TENTCPN_ID -- 입점사 아이디
, TENTCPN_NM -- 입점사명
, MNGR_AUTHOR -- 관리자 권한
FROM GC_STORE
WHERE STR_INNB = #{strInnb} -- 고유번호
</select>
<!-- 관리자 수정 -->
<update id="updateBOItrntMngrUpdt">
UPDATE GC_STORE
SET
TENTCPN_NM = #{tentcpnNm} -- 입점사명
<if test="tentcpnPassword != null and tentcpnPassword != '' ">
,TENTCPN_PASSWORD = #{tentcpnPassword} -- 변경할 비밀번호
, PASSWORD_CHNG_DE = now() -- 비밀번호 변경일
</if>
, UPDT_DT = now() -- 수정일시
WHERE
STR_INNB = #{strInnb} -- 고유번호
</update>
<select id="selectBOItrntMngr">
select p.*
,c.charge -- 수수료
,c.FEE_TY -- 수수료 정산 타입
,d.*
, p.STR_INNB as strInnb -- 매장고유번호
, g.pgroup_name -- 등급명칭
, g.pgroup_icon -- 기본아이콘
from GC_STORE as p
left join fm_intranet_charge as c on (p.STR_INNB = c.provider_seq and c.link=1)
left join fm_intranet_shipping as d on p.STR_INNB = d.provider_seq
left join fm_intranet_group as g on p.STR_INNB = g.pgroup_seq
where p.STR_INNB IN(#{strInnb})
</select>
<!-- 관리자 입점사 상세 화면 조회-->
<select id="selectBOItrntMngrTentcpnDtlForm">
select
DATE_FORMAT(A.REGIST_DT, '%Y-%m-%d %H:%i') as registDt -- 최초 입점일
,DATE_FORMAT(A.LAST_LOGIN_DT, '%Y-%m-%d %H:%i') as lastLoginDt -- 최근 접속일
,DATE_FORMAT(A.UPDT_DT, '%Y-%m-%d %H:%i') as updtDt -- 최근 변경(정상/종료)일
,A.TENT_GROUP -- 구분
,A.TENTCPN_NM -- 매장(업체)명
,A.TENTCPN_ID -- 매장 ID
,A.MNGR_AUTHOR -- 관리자 권한
,B.*
,C.pgroup_name -- 등급명칭
,C.pgroup_icon -- 기본아이콘
from GC_STORE A
left join GC_INTRANET_CHARGE B -- 공급사 정산율
on A.STR_INNB = B.provider_seq
and B.link =1
left join GC_INTRANET_GROUP C -- 입점사 등급 정보
on A.STR_INNB = C.pgroup_seq
where
A.STR_INNB = #{strInnb}; -- 고유번호
</select>
<!-- 비밀번호 변경 이력 -->
<insert id="insertBOItrntMngrPwdHistory">
<selectKey keyProperty="historySeq" resultType="String" order="BEFORE">
SELECT IFNULL(MAX(HISTORY_SEQ), 0) + 1
FROM GC_INTRANET_PWD_HISTORY
</selectKey>
insert into GC_INTRANET_PWD_HISTORY (
HISTORY_SEQ
, PROVIDER_SEQ -- 관리자 고유번호
, PWD -- 비밀번호
, REGIST_DATE -- 등록일
)
value(
#{historySeq}
, #{strInnb}
, #{tentcpnPassword}
, now()
)
</insert>
<!-- 관리자 삭제 -->
<delete id="deleteBOItrntMngrDel">
DELETE
FROM GC_STORE
WHERE
STR_INNB IN (${strInnb}) -- 고유번호
</delete>
<!-- 관리자 아이디 중복 확인-->
<select id="selectBOItrntMngrIdChk">
SELECT
count(*)
FROM GC_STORE
WHERE TENTCPN_ID = #{tentcpnId} -- 입점사 아이디
</select>
</mapper>

View File

@@ -0,0 +1,889 @@
<?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.ntcn.mssage.mapper.BOItrntMssageMapper">
<sql id="SmsSndngListWhere">
WHERE 1=1
<!-- 등록자 구분 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRegusrDv)">
<![CDATA[
AND SMS.REGUSR_DV = #{srchRegusrDv}
]]>
</if>
<!-- 매장번호 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrInnb)">
<![CDATA[
AND SMS.STR_INNB = #{srchStrInnb}
]]>
</if>
<!-- SMS 고유번호 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSmsInnb)">
<![CDATA[
AND SMS.SMS_INNB = #{srchSmsInnb}
]]>
</if>
<!-- &lt;!&ndash; 발송번호 &ndash;&gt;-->
<!-- <if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngNb)">-->
<!-- <![CDATA[-->
<!-- AND CAST(AES_DECRYPT(UNHEX(SMS.SNDNG_NB) , #{secretKey}) AS CHAR(50)) LIKE CONCAT('%', #{srchSndngNb}, '%')-->
<!-- ]]>-->
<!-- </if>-->
<!-- 쇼핑몰코드 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
<![CDATA[
AND SMS.SOPMAL_CD = #{sopmalCd}
]]>
</if>
<!-- 검색어 처리 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'cn')">
<![CDATA[
AND (
SMS.CN LIKE CONCAT('%', #{srchStr}, '%')
)
]]>
</when>
<!-- <when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'recpntNb')">-->
<!-- <![CDATA[-->
<!-- AND CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) LIKE CONCAT('%', #{srchStr}, '%')-->
<!-- ]]>-->
<!-- </when>-->
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'sndngNb')">
<![CDATA[
AND SMS.SNDNG_NB LIKE CONCAT('%', #{srchStr}, '%')
]]>
</when>
<!-- <when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'cstmrIdnb')">-->
<!-- <![CDATA[-->
<!-- AND SMSTO.CSTMR_IDNB LIKE CONCAT('%', #{srchStr}, '%')-->
<!-- ]]>-->
<!-- </when>-->
</choose>
</if>
<!-- 발송일 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'sndngDt')">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT BETWEEN #{srchStrtSndngDt} ' 00:00:00' AND #{srchEndSndngDt} ' 23:59:59'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT >= #{srchStrtSndngDt} ' 00:00:00'
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT <= #{srchEndSndngDt} ' 00:00:00'
]]>
</when>
</choose>
</if>
<!-- 등록일 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'registDt')">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.REGIST_DT BETWEEN #{srchStrtSndngDt} ' 00:00:00' AND #{srchEndSndngDt} ' 23:59:59'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strtSndngDt)">
<![CDATA[
AND SMS.REGIST_DT >= #{srchStrtSndngDt} ' 00:00:00'
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.REGIST_DT <= #{srchEndSndngDt} ' 00:00:00'
]]>
</when>
</choose>
</if>
</sql>
<!-- sms 발송 관리 목록 조회 WHERE 절 -->
<sql id = "SmsSndngDtlsListWhere">
WHERE 1=1
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrInnb)">
<![CDATA[
AND SMS.STR_INNB = #{srchStrInnb}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSmsInnb)">
<![CDATA[
AND SMS.SMS_INNB = #{srchSmsInnb}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSmsToInnb)">
<![CDATA[
AND SMSTO.SMS_TO_INNB = #{srchSmsToInnb}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRecptnNb)">
<![CDATA[
AND CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , #{secretKey}) AS CHAR(50)) LIKE CONCAT('%', #{srchRecptnNb}, '%')
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
<![CDATA[
AND SMS.SOPMAL_CD = #{sopmalCd}
AND SMSTO.SOPMAL_CD = #{sopmalCd}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'cn')">
<![CDATA[
AND (
SMS.CN LIKE CONCAT('%', #{srchStr}, '%')
OR SMSTO.SUBST_DATA LIKE CONCAT('%', #{srchStr}, '%')
)
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'recpntNb')">
<![CDATA[
AND CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) LIKE CONCAT('%', #{srchStr}, '%')
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'sndngNb')">
<![CDATA[
AND SMS.SNDNG_NB LIKE CONCAT('%', #{srchStr}, '%')
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'cstmrIdnb')">
<![CDATA[
AND SMSTO.CSTMR_IDNB LIKE CONCAT('%', #{srchStr}, '%')
]]>
</when>
</choose>
</if>
<!-- 발송일 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'sndngDt')">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT BETWEEN #{srchStrtSndngDt} ' 00:00:00' AND #{srchEndSndngDt} ' 23:59:59'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT >= #{srchStrtSndngDt} ' 00:00:00'
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT <= #{srchEndSndngDt} ' 00:00:00'
]]>
</when>
</choose>
</if>
<!-- 등록일 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'registDt')">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.REGIST_DT BETWEEN #{srchStrtSndngDt} ' 00:00:00' AND #{srchEndSndngDt} ' 23:59:59'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strtSndngDt)">
<![CDATA[
AND SMS.REGIST_DT >= #{srchStrtSndngDt} ' 00:00:00'
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.REGIST_DT <= #{srchEndSndngDt} ' 00:00:00'
]]>
</when>
</choose>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchDv)">
<![CDATA[
AND SMSTO.DV IN
]]>
<foreach collection="srchDv" item="dv" open="(" separator="," close=")">
<![CDATA[
#{dv}
]]>
</foreach>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSttus)">
<![CDATA[
AND SMSTO.STTUS IN
]]>
<foreach collection="srchSttus" item="sttus" open="(" separator="," close=")">
<![CDATA[
#{sttus}
]]>
</foreach>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngNb)">
<![CDATA[
AND SMS.SNDNG_NB = #{sndngNb}
AND SMSTO.RECPTN_NB = #{recptnNb}
]]>
</if>
<!-- 등록자 구분 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRegusrDv)">
<![CDATA[
AND SMS.REGUSR_DV = #{srchRegusrDv}
]]>
</if>
</sql>
<!--포스 회원 가입 문자 등록 -->
<insert id="insertPosMbrSend"
useGeneratedKeys="true" keyProperty="smsInnb">
INSERT INTO GC_SEND
(
SOPMAL_CD -- 쇼핑몰 코드
, CRP_CD -- 법인 코드
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
, CHR_STTUS -- 메세지 상태, 초기 입력시 'REG' 고정
, RESVE_DT -- 예약시간, 예약시간이 있을 경우 등록
, SNDNG_DT -- GC_SMS 등록 시간 현재 NOW()
, SNDNG_IDNB -- 슈어엠 SEQNO 번호, 슈어엠 등록후 나중에 업데이트
, CN -- 메세지 내용, 템플릿 있을 경우 템플릿 입력
, SNDNG_NB -- 발송번호, 쇼핑몰 자동발송번호 GC_SHOP.SMS_ATMC_SNDNG_DSPTCH_NB
, DV -- 문자타입구분, 내용 길이 확인하여 SMS, LMS, 알림톡인 경우 AT
, SEND_TYPE_CD -- 발송유형구분코드
, MALL_LIST -- 쇼핑몰 리스트 (smartstore, mall..)
, START_DT -- 시작일
, END_DT -- 종료일
, TRGTER_CNT -- 대상수
, BADN_CNT -- 상태 BAD 수 -- 상태 수는 SMS_TO 까지 입력 후 나중에 update함
, WAIT_CNT -- 상태 WAIT 수
, TRNSMIS_CNT -- 상태 TRNSMIS 수
, FAILR_CNT -- 상태 FAILR 수
, SUCCES_CNT -- 상태 SUCCES 수
, AGRE_CNT -- 수신동의수
, STL_IDNB -- 정산 식별번호
, SMS_NM -- 슈어엠일 경우 'surem' 고정
, REGUSR_NM -- 등록자명
, REGUSR -- 등록자 고유번호
, REGIST_DT -- 등록일 현재 NOW()
)
<![CDATA[
SELECT
S.REPRSNT_BRAND
, S.MANAGE_CPR
, '04'
, 'REG'
, NULL
, NOW()
, 0
, SF.SMS_CN
, SHOP.SMS_ATMC_SNDNG_DSPTCH_NB
, NULL
, 'POS'
, 'mall'
, CURDATE()
, CURDATE()
, 1
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 'surem'
, S.TENTCPN_NM
, S.STR_INNB
, NOW()
FROM GC_STORE S
INNER JOIN GC_SMS_FORM SF
ON S.REPRSNT_BRAND = SF.SOPMAL_CD
AND SF.FORM_DV_CD = 'FORM_DV_MBR'
AND SF.FORM_DTL_DV_CD = '08' -- 비회원
AND SF.USE_AT = 'Y'
INNER JOIN GC_MESSAGE_SNDNG MS
ON S.REPRSNT_BRAND = MS.SOPMAL_CD
AND SF.SMS_SNDNG_FORM_INNB = MS.SMS_SNDNG_FORM_INNB
AND MS.USE_AT = 'Y'
INNER JOIN GC_SHOP SHOP
ON S.REPRSNT_BRAND = SHOP.SOPMAL_CD
WHERE 1=1
AND S.STR_INNB = #{strInnb}
]]>
</insert>
<!-- 포스 회원 가입문자 대상자 등록 -->
<insert id="insertPosMbrSendTo"
keyProperty="smsToInnb"
useGeneratedKeys="true">
INSERT INTO GC_SEND_TO (
SMS_INNB
, CODE
, SEND_CD
, SEND_TYPE_CD
, CRP_CD
, SOPMAL_CD
, DV
, STTUS
, SNDNG_IDNB
, SNDNG_DT
, RSLT_CD
, RECPTN_NB
, CSTMR_IDNB
, CSTMR_NM
, MALL
, ADRES
, SUBST_DATA
)
<![CDATA[
SELECT
SEND.SMS_INNB
, NULL
, NULL
, SEND.SEND_TYPE_CD
, SEND.CRP_CD
, SEND.SOPMAL_CD
, CASE WHEN LENGTH(CONVERT(REPLACE(SEND.CN, '{mbrjoin_short_url}'
, IFNULL(CONCAT(GS.MBL_DOMN_ADRES
, '/sopmal/mbr/selectPosJoinAgreeTermsForm?storeCode=', #{storeCode}), ''))
USING 'EUCKR')) <=90
THEN 'SMS' ELSE 'LMS' END DV
, SEND.CHR_STTUS
, 0
, NOW()
, NULL
, HEX(AES_ENCRYPT(#{recptnNb}, #{secretKey})) AS RECPTN_NB
, NULL
, #{cstmrNm}
, SEND.MALL_LIST
, NULL
, CONCAT('{"mbrjoin_short_url"',':', '"', IFNULL(CONCAT(GS.MBL_DOMN_ADRES
, '/sopmal/mbr/selectPosJoinAgreeTermsForm'), ''), '"'
,',"storeCode"',':','"', IFNULL(#{storeCode},'') ,'"'
,',"sex"',':','"', IFNULL(#{sex},'') ,'"'
,',"birthYear"',':','"', IFNULL(#{birthYear},'') ,'"'
,',"birthMonth"',':','"', IFNULL(#{birthMonth},'') ,'"'
,'}' ) SUBST_DATA
FROM GC_SEND SEND
INNER JOIN GC_SHOP GS
ON GS.SOPMAL_CD = SEND.SOPMAL_CD
WHERE 1=1
AND SEND.SMS_INNB = #{smsInnb}
]]>
</insert>
<update id="updateSendToCode">
UPDATE GC_SEND_TO GST
SET GST.CODE = #{code}
WHERE 1=1
AND GST.SMS_TO_INNB = #{smsToInnb}
</update>
<!-- 슈어 발송 대상자 조회 -->
<select id="selectSendTrgt" resultType="dataMap">
SELECT
GS.SMS_INNB
, GS.SOPMAL_CD
, GS.SNDNG_NB
, GS.CN
, GS.REGUSR_DV
, GS.REGUSR
, GS.RESVE_DT
, GS.SNDNG_DT
, GS.SNDNG_IDNB
, CAST(AES_DECRYPT(UNHEX(GST.RECPTN_NB), #{secretKey}) AS CHAR(50)) AS RECPTN_NB
, GST.CSTMR_NM
, GST.DV
, GST.SUBST_DATA
, GST.CODE
, GST.SMS_TO_INNB
FROM GC_SEND GS
INNER JOIN GC_SEND_TO GST
ON GS.SOPMAL_CD = GST.SOPMAL_CD
AND GS.SMS_INNB = GST.SMS_INNB
WHERE 1=1
AND GS.SMS_INNB = #{smsInnb}
</select>
<!-- 인트라넷 문자 조회 총 수 조회 -->
<select id="selectBOItrntPassiveMssageSndngTotCnt" resultType="java.lang.Integer">
SELECT
COUNT(*)
FROM GC_SMS SMS
<include refid="SmsSndngListWhere"/>
</select>
<!-- 문자 목록 조회 -->
<select id="selectItrntMssagePassivSndngListInqire"
resultType="dataMap">
SELECT
ROW_NUMBER() OVER (ORDER BY SMS.SNDNG_DT ASC) AS RNUM
, SMS.SNDNG_NB
, DATE_FORMAT(SMS.REGIST_DT,'%Y-%m-%d %H:%i:%S')AS REGIST_DT
, DATE_FORMAT(SMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S')AS SNDNG_DT
, SMS.HEAD
, SMS.CN
, SMS.TAIL
, SMS.SMS_INNB
, SMS.SUCCES_CNT
, SMS.FAILR_CNT
, SMS.CHR_STTUS
, SMS.SOPMAL_CD AS SOPMAL_CD
, SMS.STR_INNB
, SMS.DV
FROM GC_SMS SMS
<include refid="SmsSndngListWhere"/>
ORDER BY RNUM DESC
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 매장 문자 결과 조회 -->
<select id="selectBOItrntMssageResultSttusCnt" resultType="dataMap">
SELECT
COUNT(CASE WHEN SMSTO.STTUS = 'OK' THEN 1 END) AS OKCNT
, COUNT(CASE WHEN SMSTO.STTUS = 'FAIL' THEN 1 END) AS FAILCNT
FROM GC_SMS SMS
INNER JOIN GC_SMS_TO SMSTO
ON SMSTO.SOPMAL_CD = SMS.SOPMAL_CD
AND SMSTO.SMS_INNB = SMS.SMS_INNB
<include refid="SmsSndngDtlsListWhere"/>
</select>
<select id="selectBOItrntMssageDtlInfo"
parameterType="com.wb.domainserver.domain.itrnt.ntcn.mssage.vo.BOItrntMssageSrchVO"
resultType="dataMap">
SELECT
SMS.SNDNG_NB
, SMSTO.DV
, DATE_FORMAT(SMS.REGIST_DT,'%Y-%m-%d %H:%i:%S')AS REGIST_DT
, DATE_FORMAT(SMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S')AS SNDNG_DT
, SMSTO.RSLT_CD
, CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , #{secretKey}) AS CHAR(50)) AS RECPTN_NB
, SMS.HEAD
, SMS.CN
, SMS.TAIL
, SMS.SMS_INNB
, SMSTO.SMS_TO_INNB
, SMSTO.STTUS
, SMS.TRGTER_CNT
, SMS.BADN_CNT
, SMS.WAIT_CNT
, SMS.TRNSMIS_CNT
, SMS.SUCCES_CNT
, SMS.FAILR_CNT
, SMS.CHR_STTUS
, SMSTO.SUBST_DATA
, SMSTO.CSTMR_NM
FROM GC_SMS_TO SMSTO
INNER JOIN GC_SMS SMS
ON SMSTO.SMS_INNB = SMS.SMS_INNB
AND SMSTO.SOPMAL_CD = SMS.SOPMAL_CD
<include refid="SmsSndngDtlsListWhere"/>
</select>
<!-- 매장정보 조회 -->
<select id="selectBOStoreInfoInqire" resultType="dataMap">
SELECT
STORE.*
, SHOP.*
FROM GC_STORE STORE
INNER JOIN GC_SHOP SHOP
ON STORE.REPRSNT_BRAND = SHOP.SOPMAL_CD
WHERE 1=1
AND STORE.STR_INNB = #{strInnb}
</select>
<!-- 메세지 등록 -->
<insert id="insertBOItrntMssageSndng" keyProperty="smsInnb"
useGeneratedKeys="true">
INSERT INTO GC_SMS (
REGUSR_DV
, STR_INNB
, STR_NM
, STR_DV
, CHR_STTUS
, RESVE_DT
, SNDNG_DT
, SNDNG_IDNB
, HEAD
, CN
, TAIL
, SOPMAL_CD
, SNDNG_NB
, DV
, TRGTER_CNT
, BADN_CNT
, WAIT_CNT
, TRNSMIS_CNT
, FAILR_CNT
, SUCCES_CNT
, STL_IDNB
, SMS_NM
, REGUSR_NM
, REGUSR
, REGIST_DT
)
VALUES (
#{regusrDv}
, #{strInnb}
, #{strNm}
, #{strDv}
, #{chrSttus}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(resveDt)">
, #{resveDt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(resveDt)">
, NULL
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngDt)">
, #{sndngDt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(sndngDt)">
, NOW()
</if>
, #{sndngIdnb}
, #{head}
, #{cn}
, #{tail}
, #{sopmalCd}
, #{sndngNb}
, #{dv}
, #{trgterCnt}
, #{badnCnt}
, #{waitCnt}
, #{trnsmisCnt}
, #{failrCnt}
, #{succesCnt}
, 0 -- 정산식별번호 0 초기
, #{smsNm}
, #{regusrNm}
, #{regusr}
, NOW()
)
</insert>
<!-- 메세지 대상자 등록 -->
<insert id="insertBOItrntMssageToDtls"
keyProperty="smsToInnb"
useGeneratedKeys="true">
INSERT INTO GC_SMS_TO (
SMS_INNB
, SOPMAL_CD
, DV
, STTUS
, SNDNG_IDNB
, SNDNG_DT
, RSLT_CD
, RECPTN_NB
, CSTMR_IDNB
, CSTMR_NM
, SUBST_WRD1
, SUBST_WRD2
, SUBST_WRD3
, SUBST_WRD4
, SUBST_WRD5
, SUBST_DATA
)
VALUES
<foreach collection="list" item="mssage" index="index" separator=",">
(
#{mssage.smsInnb}
, #{mssage.sopmalCd}
, #{mssage.dv}
, #{mssage.sttus}
, #{mssage.sndngIdnb}
, #{mssage.sndngDt}
, #{mssage.rsltCd}
, HEX(AES_ENCRYPT( #{mssage.recptnNb} , #{mssage.secretKey}))
, #{mssage.cstmrIdnb}
, #{mssage.cstmrNm}
, #{mssage.substWrd1}
, #{mssage.substWrd2}
, #{mssage.substWrd3}
, #{mssage.substWrd4}
, #{mssage.substWrd5}
, #{mssage.substData}
)
</foreach>
</insert>
<update id="updateBOItrntMssageCntUpdt"
parameterType="com.wb.domainserver.domain.itrnt.ntcn.mssage.vo.BOItrntMssageVO">
UPDATE
GC_SMS S
SET
TRGTER_CNT = IFNULL((
SELECT COUNT(1) FROM GC_SMS_TO WHERE SMS_INNB = S.SMS_INNB AND SOPMAL_CD = S.SOPMAL_CD), 0),
BADN_CNT = IFNULL((
SELECT COUNT(1) FROM GC_SMS_TO WHERE SMS_INNB = S.SMS_INNB AND SOPMAL_CD = S.SOPMAL_CD AND STTUS = 'BAD'), 0),
WAIT_CNT = IFNULL((
SELECT COUNT(1) FROM GC_SMS_TO WHERE SMS_INNB = S.SMS_INNB AND SOPMAL_CD = S.SOPMAL_CD AND STTUS = 'WAIT'), 0),
TRNSMIS_CNT = IFNULL((
SELECT COUNT(1) FROM GC_SMS_TO WHERE SMS_INNB = S.SMS_INNB AND SOPMAL_CD = S.SOPMAL_CD AND STTUS IN ('SEND', 'FAIL', 'OK')), 0),
FAILR_CNT = IFNULL((
SELECT COUNT(1) FROM GC_SMS_TO WHERE SMS_INNB = S.SMS_INNB AND SOPMAL_CD = S.SOPMAL_CD AND STTUS = 'FAIL'), 0),
SUCCES_CNT = IFNULL((
SELECT COUNT(1) FROM GC_SMS_TO WHERE SMS_INNB = S.SMS_INNB AND SOPMAL_CD = S.SOPMAL_CD AND STTUS = 'OK'), 0)
WHERE 1=1
AND S.SMS_INNB = #{smsInnb}
AND S.SOPMAL_CD = #{sopmalCd}
</update>
<select id="selectBOItrntMssageListInqireByInnb"
parameterType="dataMap"
resultType="dataMap">
SELECT
SMS.SNDNG_NB
, SMSTO.DV
,DATE_FORMAT(SMS.REGIST_DT,'%Y-%m-%d %H:%i:%S')AS REGIST_DT
, DATE_FORMAT(SMSTO.SNDNG_DT ,'%Y-%m-%d %H:%i:%S')AS SNDNG_DT
, CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , #{secretKey}) AS CHAR(50)) AS RECPTN_NB
, SMS.HEAD
, SMS.CN
, SMS.TAIL
, SMS.SMS_INNB
, SMS.SOPMAL_CD
, SMSTO.SMS_TO_INNB
, SMSTO.STTUS
, SMS.SUCCES_CNT
, SMS.FAILR_CNT
, SMS.CHR_STTUS
, SMS.RESVE_DT
, SMS.REGUSR
, SMS.REGUSR_NM
, SMS.REGUSR_DV
, SF.SMS_FILE_INNB
, SF.FIL_COURS
, CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , #{secretKey}) AS CHAR(50)) AS PHONE
, SMSTO.SUBST_DATA
FROM GC_SMS SMS
INNER JOIN GC_SMS_TO SMSTO
ON SMSTO.SOPMAL_CD = SMS.SOPMAL_CD
AND SMSTO.SMS_INNB = SMS.SMS_INNB
LEFT JOIN GC_SMS_FILE SF
ON SF.SOPMAL_CD = SMS.SOPMAL_CD
AND SF.SMS_INNB = SMS.SMS_INNB
WHERE 1=1
AND SMS.SMS_INNB = #{smsInnb}
AND SMS.CHR_STTUS = 'REG'
</select>
<!-- 파임목록 조회 -->
<select id="selectBOItrntMssagePassivSndngImgPopupForm"
resultType="dataMap">
SELECT
F_SEQ
, F_NAME_ORG
, F_COURSE
, F_NAME
FROM
GC_INTRANET_SMS_FILE
WHERE 1=1
AND PROVIDER_SEQ = #{providerSeq}
</select>
<!-- 파일 등록 -->
<insert id="insertBOIntrntSndngImg"
parameterType="com.wb.domainserver.domain.itrnt.ntcn.mssage.vo.BOItrntMssageFileVO">
<selectKey order="BEFORE" keyProperty="fSeq" resultType="java.math.BigInteger">
<![CDATA[
SELECT IFNULL(MAX(F_SEQ), 0)+1
FROM GC_INTRANET_SMS_FILE
]]>
</selectKey>
INSERT INTO GC_INTRANET_SMS_FILE
(
F_SEQ
, PROVIDER_SEQ
, F_IDX
, F_NAME_ORG
, F_NAME
, F_SIZE
, F_WIDTH
, F_HEIGHT
, F_TYPE
, F_COURSE
, F_REGDATE
)
VALUES
(
#{fSeq}
, #{providerSeq}
, #{fIdx}
, #{fNameOrg}
, #{fName}
, #{fSize}
, #{fWidth}
, #{fHeight}
, #{fType}
, #{fCourse}
, NOW()
)
</insert>
<!-- 자주쓰는 메세지 조회 -->
<select id="selectBORegistMssagePopup" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
SMS_ALBUM_INNB
, SOPMAL_CD
, MSG
, CATEGORY
FROM GC_SMS_ALBUM
WHERE 1=1
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
<![CDATA[
AND SOPMAL_CD = #{sopmalCd}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(regusr)">
<![CDATA[
AND REGUSR = #{regusr}
]]>
</if>
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(msg)">
<![CDATA[
AND MSG LIKE CONCAT('%', #{msg}, '%')
]]>
</when>
<otherwise>
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(category)">
<![CDATA[
AND CATEGORY = #{category}
]]>
</when>
<otherwise>
AND CATEGORY = '공통'
</otherwise>
</choose>
</otherwise>
</choose>
</select>
<!--자주쓰는 메시지 저장 -->
<insert id = "insertBOMssageAditRegist"
parameterType="com.wb.domainserver.domain.itrnt.ntcn.mssage.vo.BOItrntMssageAlbumVO">
<selectKey order="BEFORE" keyProperty="smsAlbumInnb" resultType="java.math.BigInteger">
<![CDATA[
SELECT IFNULL(MAX(SMS_ALBUM_INNB), 0)+1
FROM GC_SMS_ALBUM
]]>
</selectKey>
INSERT INTO GC_SMS_ALBUM (
SMS_ALBUM_INNB
, SOPMAL_CD
, CATEGORY
, MSG
, REGUSR
)
VALUES (
#{smsAlbumInnb}
, #{sopmalCd}
, #{category}
, #{msg}
, #{regusr}
)
</insert>
<insert id="insertBOMssageAtchmnfilImg"
parameterType="com.wb.domainserver.domain.itrnt.ntcn.mssage.vo.BOItrntMssageVO">
<selectKey order="BEFORE" keyProperty="smsFileInnb" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(SMS_FILE_INNB), 0)+1
FROM GC_SMS_FILE
]]>
</selectKey>
INSERT INTO GC_SMS_FILE (
SMS_FILE_INNB
, SMS_INNB
, SOPMAL_CD
, ATCH_ORDR
, STR_INNB
, FIL_COURS
, ORGINL_FIL_NM
, SYS_FIL_NM
, FIL_MG
, FIL_TY
)
VALUES (
#{smsFileInnb}
, #{smsInnb}
, #{sopmalCd}
, #{atchOrdr}
, #{strInnb}
, #{filCours}
, #{orginlFilNm}
, #{sysFilNm}
, #{filMg}
, #{filTy}
)
</insert>
<!-- 자주쓰는 메시지 수정 -->
<update id="updateBOMssageAditUpdt">
UPDATE
GC_SMS_ALBUM
SET
MSG = #{msg}
WHERE 1=1
AND SMS_ALBUM_INNB = #{smsAlbumInnb}
AND REGUSR = #{regusr}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 자주쓰는 메시지 삭제 -->
<delete id="deleteBOMssageAdit">
DELETE
FROM
GC_SMS_ALBUM
WHERE 1=1
AND SMS_ALBUM_INNB = #{smsAlbumInnb}
AND REGUSR = #{regusr}
AND SOPMAL_CD = #{sopmalCd}
</delete>
<!-- 자주쓰는 카테고리 삭제 -->
<delete id="deleteBOMssageAditCtgy">
DELETE
FROM
GC_SMS_ALBUM
WHERE 1=1
AND CATEGORY = #{category}
</delete>
<!-- 자주쓰는 메시지 카테고리 조회 -->
<select id="selectBOAlbumCtgy" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
CATEGORY
FROM
GC_SMS_ALBUM
WHERE 1=1
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
<![CDATA[
AND SOPMAL_CD = #{sopmalCd}
]]>
</if>
<![CDATA[
AND CATEGORY <> ''
GROUP BY
CATEGORY
ORDER BY
CATEGORY ASC
]]>
</select>
<!-- 첨부 파일 조회(파일번호로 조회) -->
<select id="selectBOMssagePassivSndngImgByFseq" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
F_SEQ
, PROVIDER_SEQ
, F_IDX
, F_NAME_ORG
, F_NAME
, F_SIZE
, F_TYPE
, F_COURSE
, F_REGDATE
FROM
GC_INTRANET_SMS_FILE
WHERE 1=1
AND F_SEQ = #{fSeq}
</select>
<!-- 매장 정보 조회 -->
<select id="selectBOItrntMssageStrList" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
GS.STR_INNB
, GS.TENTCPN_ID
, GS.TENTCPN_NM
FROM GC_STORE GS
WHERE 1=1
AND GS.REPRSNT_BRAND = #{sopmalCd}
AND GS.TENTCPN_ID != 'base'
AND GS.MRHST_AT = 'Y'
AND GS.REPRSNT_MNGR_AT = 'Y'
ORDER BY GS.STR_INNB DESC
</select>
</mapper>

View File

@@ -0,0 +1,23 @@
<?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.ntcn.stl.mapper.BOItrntStlMssageMapper">
<select id="selectBOItrntStoreList"
resultType="dataMap">
SELECT
GS.STR_INNB
, GS.TENTCPN_ID
, GS.TENTCPN_NM
FROM GC_STORE GS
WHERE 1=1
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">-->
<!-- AND GS.REPRSNT_BRAND = #{sopmalCd}-->
<!-- </if>-->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strInnb)">
AND GS.STR_INNB = #{strInnb}
</if>
AND GS.TENTCPN_ID != 'base'
AND GS.MRHST_AT = 'Y'
AND GS.REPRSNT_MNGR_AT = 'Y'
ORDER BY GS.STR_INNB DESC
</select>
</mapper>

View File

@@ -0,0 +1,44 @@
<?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.sel.mapper.BOItrntSelMapper">
<!-- 판매 분석 통계 -->
<!-- 판매분석 조회 -->
<select id="selectBOItrntSel" parameterType="com.wb.domainserver.domain.itrnt.sel.vo.BOItrntSelVO"
resultType="dataMap">
SELECT
T2.GOODS_SEQ,
T2.GOODS_NAME,
T2.IMAGE,
T1.ORI_PRICE,
SUM(T1.ORI_PRICE * T1.STEP75) AS ORI_PRICE_SUM,
SUM(T1.ORG_PRICE * T1.STEP75) AS ORG_PRICE_SUM,
SUM(T1.UNIT_ENURI * T1.STEP75) AS ENURI,
SUM(T1.UNIT_EMONEY * T1.STEP75) AS EMONEY,
SUM(T1.REFUND_EA * T1.ORG_PRICE) AS REFUND_PRICE,
SUM(T1.REFUND_EA) AS REFUND_EA,
SUM(T1.STEP75) AS SELL_EA
FROM GC_ORDER_ITEM_OPTION AS T1
LEFT JOIN GC_ORDER_ITEM AS T2
ON T1.ITEM_SEQ = T2.ITEM_SEQ AND T1.ORDER_SEQ = T2.ORDER_SEQ
LEFT JOIN GC_ORDER_POSINFO AS T3
ON T1.ORDER_SEQ = T3.ORDER_SEQ
WHERE 1=1
AND T3.STORE_SEQ > 1
AND T2.GOODS_SEQ > 0
AND T1.ORG_PRICE > 0
AND T3.PDATE >= #{sdate}
AND #{edate} > TD.PDATE
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND T3.STORE_SEQ = #{providerSeq}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dataType)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEqual(main)">
<![CDATA[
LIMIT 5
]]>
</if>
</if>
</select>
</mapper>

View File

@@ -0,0 +1,411 @@
<?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.selng.mapper.BOItrntSelngMapper">
<!-- 매출 통계 -->
<!-- 일별 매출분석 -->
<select id="selectBOItrntDailySelng" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
T2.STATS_YEAR,
T2.STATS_MONTH,
T2.STATS_DAY,
WEEK(T2.DEPOSIT_DATE,1) AS WEEKS,
HOUR(T2.DEPOSIT_DATE) AS HOUR,
SUM(T2.SETTLEPRICE_SUM) AS SETTLEPRICE_SUM,
SUM(T2.ENURI_SUM) AS ENURI_SUM,
SUM(T2.EMONEY_USE_SUM) AS EMONEY_USE_SUM,
SUM(T2.COUNT_SUM) AS COUNT_SUM,
SUM(T2.OPTION_ORI_PRICE_SUM) AS OPTION_ORI_PRICE_SUM,
SUM(T2.OPTION_COUPON_SALE_SUM) AS OPTION_COUPON_SALE_SUM,
SUM(T2.OPTION_MOBILE_SALE_SUM) AS OPTION_MOBILE_SALE_SUM,
SUM(T2.OPTION_PROMOTION_CODE_SALE_SUM) AS OPTION_PROMOTION_CODE_SALE_SUM,
SUM(T2.OPTION_MEMBER_SALE_SUM) AS OPTION_MEMBER_SALE_SUM,
SUM(T2.SUBOPTION_MEMBER_SALE_SUM) AS SUBOPTION_MEMBER_SALE_SUM,
SUM(T2.OPTION_REFERER_SALE_SUM) AS OPTION_REFERER_SALE_SUM,
SUM(T2.GOODS_SHIPPING_COST_SUM) AS GOODS_SHIPPING_COST_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM) AS OPTION_SUPPLY_PRICE_SUM,
COUNT(DISTINCT(T1.ORDER_SEQ)) AS MONTH_COUNT_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM_KRW) AS OPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM) AS SUBOPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM_KRW) AS SUBOPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM_KRW) AS SUBOPTION_SUPPLY_PRICE_SUM_KRW,
T2.SITETYPE,
SUM(T2.M_SETTLEPRICE) AS M_SETTLEPRICE,
SUM(T2.P_SETTLEPRICE) AS P_SETTLEPRICE,
SUM(T2.M_SHIPPING_COST) AS M_SHIPPING_COST,
SUM(T2.P_SHIPPING_COST) AS P_SHIPPING_COST,
SUM(T2.M_ENURI_SUM) AS M_ENURI_SUM,
SUM(T2.P_ENURI_SUM) AS P_ENURI_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM) AS OPTION_COMMISSION_PRICE_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM_KRW) AS OPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM) AS SUBOPTION_COMMISSION_PRICE_SUM,
SUM(T2.NPAY_POINT_USE_SUM) AS NPAY_POINT_USE_SUM,
SUM(T2.OPTION_NPAY_SALE_NPAY_SUM) AS OPTION_NPAY_SALE_NPAY_SUM,
SUM(T2.OPTION_NPAY_SALE_SELLER_SUM) AS OPTION_NPAY_SALE_SELLER_SUM,
SUM(T2.M_GOODS_SHIPPING_COST_SUM) AS M_GOODS_SHIPPING_COST_SUM,
SUM(T2.P_GOODS_SHIPPING_COST_SUM) AS P_GOODS_SHIPPING_COST_SUM
FROM GC_ORDER_POSINFO T1
LEFT JOIN GC_ACCUMUL_SALES_MDSTATS T2
ON T1.ORDER_SEQ = T2.ORDER_SEQ
WHERE 1=1
AND T2.STATS_YEAR = #{year}
AND T2.STATS_MONTH = #{month}
AND T1.STORE_SEQ > 1
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND T1.STORE_SEQ = #{providerSeq}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(siteType)">
<![CDATA[
AND T2.SITETYPE IN (#{sitetype})
]]>
</if>
GROUP BY T2.STATS_DAY
ORDER BY T2.DEPOSIT_DATE ASC
</select>
<!-- 주별 매출분석 -->
<select id="selectBOItrntWklySelng" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
T2.STATS_YEAR,
T2.STATS_MONTH,
T2.STATS_DAY,
WEEK(T2.DEPOSIT_DATE,1) AS WEEKS,
HOUR(T2.DEPOSIT_DATE) AS HOUR,
SUM(T2.SETTLEPRICE_SUM) AS SETTLEPRICE_SUM,
SUM(T2.ENURI_SUM) AS ENURI_SUM,
SUM(T2.EMONEY_USE_SUM) AS EMONEY_USE_SUM,
SUM(T2.COUNT_SUM) AS COUNT_SUM,
SUM(T2.OPTION_ORI_PRICE_SUM) AS OPTION_ORI_PRICE_SUM,
SUM(T2.OPTION_COUPON_SALE_SUM) AS OPTION_COUPON_SALE_SUM,
SUM(T2.OPTION_MOBILE_SALE_SUM) AS OPTION_MOBILE_SALE_SUM,
SUM(T2.OPTION_PROMOTION_CODE_SALE_SUM) AS OPTION_PROMOTION_CODE_SALE_SUM,
SUM(T2.OPTION_MEMBER_SALE_SUM) AS OPTION_MEMBER_SALE_SUM,
SUM(T2.SUBOPTION_MEMBER_SALE_SUM) AS SUBOPTION_MEMBER_SALE_SUM,
SUM(T2.OPTION_REFERER_SALE_SUM) AS OPTION_REFERER_SALE_SUM,
SUM(T2.GOODS_SHIPPING_COST_SUM) AS GOODS_SHIPPING_COST_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM) AS OPTION_SUPPLY_PRICE_SUM,
COUNT(DISTINCT(T1.ORDER_SEQ)) AS MONTH_COUNT_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM_KRW) AS OPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM) AS SUBOPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM_KRW) AS SUBOPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM_KRW) AS SUBOPTION_SUPPLY_PRICE_SUM_KRW,
T2.SITETYPE,
SUM(T2.M_SETTLEPRICE) AS M_SETTLEPRICE,
SUM(T2.P_SETTLEPRICE) AS P_SETTLEPRICE,
SUM(T2.M_SHIPPING_COST) AS M_SHIPPING_COST,
SUM(T2.P_SHIPPING_COST) AS P_SHIPPING_COST,
SUM(T2.M_ENURI_SUM) AS M_ENURI_SUM,
SUM(T2.P_ENURI_SUM) AS P_ENURI_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM) AS OPTION_COMMISSION_PRICE_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM_KRW) AS OPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM) AS SUBOPTION_COMMISSION_PRICE_SUM,
SUM(T2.NPAY_POINT_USE_SUM) AS NPAY_POINT_USE_SUM,
SUM(T2.OPTION_NPAY_SALE_NPAY_SUM) AS OPTION_NPAY_SALE_NPAY_SUM,
SUM(T2.OPTION_NPAY_SALE_SELLER_SUM) AS OPTION_NPAY_SALE_SELLER_SUM,
SUM(T2.M_GOODS_SHIPPING_COST_SUM) AS M_GOODS_SHIPPING_COST_SUM,
SUM(T2.P_GOODS_SHIPPING_COST_SUM) AS P_GOODS_SHIPPING_COST_SUM
FROM GC_ORDER_POSINFO T1
LEFT JOIN GC_ACCUMUL_SALES_MDSTATS T2
ON T1.ORDER_SEQ = T2.ORDER_SEQ
WHERE 1=1
AND T2.STATS_YEAR = #{year}
AND T1.STORE_SEQ > 1
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND T1.STORE_SEQ = #{providerSeq}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(siteType)">
<![CDATA[
AND T2.SITETYPE IN (#{sitetype})
]]>
</if>
GROUP BY YEAR(T2.DEPOSIT_DATE), WEEK(T2.DEPOSIT_DATE,1)
ORDER BY T2.DEPOSIT_DATE ASC
</select>
<!-- 월별 매출분석 -->
<select id="selectBOItrntMnthlySelng" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
T2.STATS_YEAR,
T2.STATS_MONTH,
T2.STATS_DAY,
WEEK(T2.DEPOSIT_DATE,1) AS WEEKS,
HOUR(T2.DEPOSIT_DATE) AS HOUR,
SUM(T2.SETTLEPRICE_SUM) AS SETTLEPRICE_SUM,
SUM(T2.ENURI_SUM) AS ENURI_SUM,
SUM(T2.EMONEY_USE_SUM) AS EMONEY_USE_SUM,
SUM(T2.COUNT_SUM) AS COUNT_SUM,
SUM(T2.OPTION_ORI_PRICE_SUM) AS OPTION_ORI_PRICE_SUM,
SUM(T2.OPTION_COUPON_SALE_SUM) AS OPTION_COUPON_SALE_SUM,
SUM(T2.OPTION_MOBILE_SALE_SUM) AS OPTION_MOBILE_SALE_SUM,
SUM(T2.OPTION_PROMOTION_CODE_SALE_SUM) AS OPTION_PROMOTION_CODE_SALE_SUM,
SUM(T2.OPTION_MEMBER_SALE_SUM) AS OPTION_MEMBER_SALE_SUM,
SUM(T2.SUBOPTION_MEMBER_SALE_SUM) AS SUBOPTION_MEMBER_SALE_SUM,
SUM(T2.OPTION_REFERER_SALE_SUM) AS OPTION_REFERER_SALE_SUM,
SUM(T2.GOODS_SHIPPING_COST_SUM) AS GOODS_SHIPPING_COST_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM) AS OPTION_SUPPLY_PRICE_SUM,
COUNT(DISTINCT(T1.ORDER_SEQ)) AS MONTH_COUNT_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM_KRW) AS OPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM) AS SUBOPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM_KRW) AS SUBOPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM_KRW) AS SUBOPTION_SUPPLY_PRICE_SUM_KRW,
T2.SITETYPE,
SUM(T2.M_SETTLEPRICE) AS M_SETTLEPRICE,
SUM(T2.P_SETTLEPRICE) AS P_SETTLEPRICE,
SUM(T2.M_SHIPPING_COST) AS M_SHIPPING_COST,
SUM(T2.P_SHIPPING_COST) AS P_SHIPPING_COST,
SUM(T2.M_ENURI_SUM) AS M_ENURI_SUM,
SUM(T2.P_ENURI_SUM) AS P_ENURI_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM) AS OPTION_COMMISSION_PRICE_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM_KRW) AS OPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM) AS SUBOPTION_COMMISSION_PRICE_SUM,
SUM(T2.NPAY_POINT_USE_SUM) AS NPAY_POINT_USE_SUM,
SUM(T2.OPTION_NPAY_SALE_NPAY_SUM) AS OPTION_NPAY_SALE_NPAY_SUM,
SUM(T2.OPTION_NPAY_SALE_SELLER_SUM) AS OPTION_NPAY_SALE_SELLER_SUM,
SUM(T2.M_GOODS_SHIPPING_COST_SUM) AS M_GOODS_SHIPPING_COST_SUM,
SUM(T2.P_GOODS_SHIPPING_COST_SUM) AS P_GOODS_SHIPPING_COST_SUM
FROM GC_ORDER_POSINFO T1
LEFT JOIN GC_ACCUMUL_SALES_MDSTATS T2
ON T1.ORDER_SEQ = T2.ORDER_SEQ
WHERE 1=1
AND t2.stats_year = #{year}
AND T1.STORE_SEQ > 1
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND T1.STORE_SEQ = #{providerSeq}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(siteType)">
<![CDATA[
AND T2.SITETYPE IN (#{sitetype})
]]>
</if>
GROUP BY T2.STATS_MONTH
ORDER BY T2.DEPOSIT_DATE DESC
</select>
<!-- 일별 구매 수량 -->
<select id="selectBOItrntDailyGoodsEa" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
DAY(T2.DEPOSIT_DATE) AS STATS_DAY,SUM(STEP75) AS CNT
FROM GC_ORDER_ITEM_OPTION T1
LEFT JOIN GC_ORDER T2
ON T1.ORDER_SEQ = T2.ORDER_SEQ
LEFT JOIN GC_ORDER_POSINFO T3
ON T1.ORDER_SEQ = T3.ORDER_SEQ
WHERE 1=1
AND T3.STORE_SEQ > 1
AND T3.PDATE LIKE CONCAT(#{year}, '-', #{month})
GROUP BY
DAY(T2.DEPOSIT_DATE)
</select>
<!-- 일별 환불 금액 -->
<select id="selectBOItrntDailyRefund" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
T2.STATS_YEAR,
T2.STATS_MONTH,
T2.STATS_DAY,
WEEK(T4.REFUND_DATE, 1) AS WEEKS,
HOUR(T4.REFUND_DATE) AS HOUR,
SUM(T2.REFUND_PRICE_SUM) AS REFUND_PRICE_SUM,
SUM(T2.REFUND_EMONEY_SUM) AS REFUND_EMONEY_SUM,
SUM(T2.REFUND_CASH_SUM) AS REFUND_CASH_SUM,
SUM(T2.REFUND_COUNT_SUM) AS REFUND_COUNT_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM) AS OPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM) AS SUBOPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM_KRW) AS SUBOPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM_KRW) AS SUBOPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.OPTION_SUPPLY_PRICE_SUM_KRW) AS OPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.CANCEL_PRICE_SUM) AS CANCEL_PRICE_SUM,
SUM(T2.CANCEL_COUNT_SUM) AS CANCEL_COUNT_SUM,
SUM(T2.RETURN_PRICE_SUM) AS RETURN_PRICE_SUM,
SUM(T2.RETURN_COUNT_SUM) AS RETURN_COUNT_SUM,
T4.REFUND_DATE,
T2.SITETYPE,
T2.REFUND_TYPE,
T2.REFUND_CODE,
SUM(T2.M_REFUND_PRICE) AS M_REFUND_PRICE,
SUM(T2.P_REFUND_PRICE) AS P_REFUND_PRICE,
SUM(T2.OPTION_COMMISSION_PRICE_SUM) AS OPTION_COMMISSION_PRICE_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM_KRW) AS OPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM) AS SUBOPTION_COMMISSION_PRICE_SUM,
FROM GC_ORDER_POSINFO T1
LEFT JOIN GC_ACCUMUL_SALES_REFUND T2
ON T1.ORDER_SEQ = T2.ORDER_SEQ
LEFT JOIN GC_ORDER_REFUND T4
ON T2.REFUND_CODE = T4.REFUND_CODE
WHERE 1=1
AND T1.STORE_SEQ > 1
AND T2.STATS_YEAR = #{year}
AND T2.STATS_MONTH = #{month}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND T1.STORE_SEQ = #{providerSeq}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(siteType)">
<![CDATA[
AND T2.SITETYPE IN (#{sitetype})
]]>
</if>
GROUP BY T2.STATS_DAY
ORDER BY T4.REFUND_DATE ASC
</select>
<!-- 주별 환불 금액 -->
<select id="selectBOItrntWklyRefund" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
T2.STATS_YEAR,
T2.STATS_MONTH,
T2.STATS_DAY,
WEEK(T4.REFUND_DATE, 1) AS WEEKS,
HOUR(T4.REFUND_DATE) AS HOUR,
SUM(T2.REFUND_PRICE_SUM) AS REFUND_PRICE_SUM,
SUM(T2.REFUND_EMONEY_SUM) AS REFUND_EMONEY_SUM,
SUM(T2.REFUND_CASH_SUM) AS REFUND_CASH_SUM,
SUM(T2.REFUND_COUNT_SUM) AS REFUND_COUNT_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM) AS OPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM) AS SUBOPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM_KRW) AS SUBOPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM_KRW) AS SUBOPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.OPTION_SUPPLY_PRICE_SUM_KRW) AS OPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.CANCEL_PRICE_SUM) AS CANCEL_PRICE_SUM,
SUM(T2.CANCEL_COUNT_SUM) AS CANCEL_COUNT_SUM,
SUM(T2.RETURN_PRICE_SUM) AS RETURN_PRICE_SUM,
SUM(T2.RETURN_COUNT_SUM) AS RETURN_COUNT_SUM,
T4.REFUND_DATE,
T2.SITETYPE,
T2.REFUND_TYPE,
T2.REFUND_CODE,
SUM(T2.M_REFUND_PRICE) AS M_REFUND_PRICE,
SUM(T2.P_REFUND_PRICE) AS P_REFUND_PRICE,
SUM(T2.OPTION_COMMISSION_PRICE_SUM) AS OPTION_COMMISSION_PRICE_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM_KRW) AS OPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM) AS SUBOPTION_COMMISSION_PRICE_SUM,
FROM GC_ORDER_POSINFO T1
LEFT JOIN GC_ACCUMUL_SALES_REFUND T2
ON T1.ORDER_SEQ = T2.ORDER_SEQ
LEFT JOIN GC_ORDER_REFUND T4
ON T2.REFUND_CODE = T4.REFUND_CODE
WHERE 1=1
AND T1.STORE_SEQ > 1
AND YEAR(T4.REFUND_DATE) = #{year}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND t1.store_seq = #{providerSeq}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(siteType)">
<![CDATA[
AND T2.SITETYPE IN (#{sitetype})
]]>
</if>
GROUP BY YEAR(T4.REFUND_DATE), WEEK(T4.REFUND_DATE,1)
ORDER BY T4.REFUND_DATE ASC
</select>
<!-- 월별 환불 금액 -->
<select id="selectBOItrntMnthlyRefund" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
T2.STATS_YEAR,
T2.STATS_MONTH,
T2.STATS_DAY,
WEEK(T4.REFUND_DATE, 1) AS WEEKS,
HOUR(T4.REFUND_DATE) AS HOUR,
SUM(T2.REFUND_PRICE_SUM) AS REFUND_PRICE_SUM,
SUM(T2.REFUND_EMONEY_SUM) AS REFUND_EMONEY_SUM,
SUM(T2.REFUND_CASH_SUM) AS REFUND_CASH_SUM,
SUM(T2.REFUND_COUNT_SUM) AS REFUND_COUNT_SUM,
SUM(T2.OPTION_SUPPLY_PRICE_SUM) AS OPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM) AS SUBOPTION_SUPPLY_PRICE_SUM,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM_KRW) AS SUBOPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_SUPPLY_PRICE_SUM_KRW) AS SUBOPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.OPTION_SUPPLY_PRICE_SUM_KRW) AS OPTION_SUPPLY_PRICE_SUM_KRW,
SUM(T2.CANCEL_PRICE_SUM) AS CANCEL_PRICE_SUM,
SUM(T2.CANCEL_COUNT_SUM) AS CANCEL_COUNT_SUM,
SUM(T2.RETURN_PRICE_SUM) AS RETURN_PRICE_SUM,
SUM(T2.RETURN_COUNT_SUM) AS RETURN_COUNT_SUM,
T4.REFUND_DATE,
T2.SITETYPE,
T2.REFUND_TYPE,
T2.REFUND_CODE,
SUM(T2.M_REFUND_PRICE) AS M_REFUND_PRICE,
SUM(T2.P_REFUND_PRICE) AS P_REFUND_PRICE,
SUM(T2.OPTION_COMMISSION_PRICE_SUM) AS OPTION_COMMISSION_PRICE_SUM,
SUM(T2.OPTION_COMMISSION_PRICE_SUM_KRW) AS OPTION_COMMISSION_PRICE_SUM_KRW,
SUM(T2.SUBOPTION_COMMISSION_PRICE_SUM) AS SUBOPTION_COMMISSION_PRICE_SUM,
FROM GC_ORDER_POSINFO T1
LEFT JOIN GC_ACCUMUL_SALES_REFUND T2
ON T1.ORDER_SEQ = T2.ORDER_SEQ
LEFT JOIN GC_ORDER_REFUND T4
ON T2.REFUND_CODE = T4.REFUND_CODE
WHERE 1=1
AND T1.STORE_SEQ > 1
AND T2.STATS_YEAR = #{year}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND T1.STORE_SEQ = #{providerSeq}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(siteType)">
<![CDATA[
AND T2.SITETYPE IN (#{sitetype})
]]>
</if>
GROUP BY T2.STATS_MONTH
ORDER BY T4.REFUND_DATE ASC
</select>
<!-- 입점사별 통계 -->
<select id="selectBOItrntStrSelng" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
I.GOODS_NAME, I.GOODS_SEQ,
SUM( IFNULL(IO.EA,0) ) AS EA_SUM,
SUM( (IFNULL(IO.PRICE,0) * IFNULL(IO.EA,0)) + (IFNULL(ISUBO.PRICE,0) * IFNULL(ISUBO.EA,0)) ) AS PRICE_SUM,
SUM( IFNULL(IO.COUPON_SALE,0) + ( IFNULL(IO.MEMBER_SALE,0) * IFNULL(IO.EA,0) ) + IFNULL(IO.FBLIKE_SALE,0) + IFNULL(IO.MOBILE_SALE,0) + IFNULL(IO.PROMOTION_CODE_SALE,0) + IFNULL(IO.REFERER_SALE,0) ) AS SALE_SUM
FROM GC_ORDER_ITEM_OPTION AS IO
LEFT JOIN GC_ORDER_ITEM_SUBOPTION AS ISUBO
ON IO.ORDER_SEQ=ISUBO.ORDER_SEQ
AND IO.ITEM_SEQ=ISUBO.ITEM_SEQ
AND IO.ITEM_OPTION_SEQ=ISUBO.ITEM_OPTION_SEQ
LEFT JOIN GC_ORDER_ITEM AS I
ON I.ITEM_SEQ=IO.ITEM_SEQ
WHERE 1=1
AND IO.ORDER_SEQ IN (
SELECT ORDER_SEQ
FROM GC_ORDER
WHERE DEPOSIT_DATE BETWEEN '#{sdate} 00:00:00' AND '#{edate} 23:59:59 '
AND DEPOSIT_YN = 'Y'
AND SITETYPE IN (#{sitetype})
AND STEP BETWEEN '15' AND '85'
)
GROUP BY i.goods_seq
</select>
<!-- 반품 환불 조회 -->
<select id="selectBOItrntRefund" parameterType="com.wb.domainserver.domain.itrnt.selng.vo.BOItrntSelngVO"
resultType="dataMap">
SELECT
RP.PROVIDER_SEQ,
SUM(IFNULL(RP.REFUND_PRICE,0)) AS REFUND_PRICE
FROM GC_ORDER_REFUND_PROVIDER AS RP, GC_ORDER_REFUND AS R
WHERE 1=1
AND RP.REFUND_CODE = R.REFUND_CODE
AND R.STATUS = 'COMPLETE'
AND R.REFUND_DATE BETWEEN '#{sdate}' AND '#{edate}'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(providerSeq)">
<![CDATA[
AND RP.PROVIDER_SEQ = #{providerSeq}
AND I.PROVIDER_SEQ = #{providerSeq}
]]>
</if>
GROUP BY RP.PROVIDER_SEQ
</select>
</mapper>

View File

@@ -0,0 +1,89 @@
<?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.stock.mapper.BOItrntStockMapper">
<!--매장 정보 조회-->
<select id="selectBOStrInfo" resultType="com.wb.domainserver.domain.itrnt.stock.vo.BOItrntStockVO">
SELECT POS_CD_DV_VAL AS GOODS_POS_HDQRTRS_CD,
POS_CD_PASSIV_INPUT_VAL AS STR_POS_CD,
#{tentGroup} AS TENT_GROUP
FROM GC_STORE
WHERE STR_INNB = #{strInnb}
</select>
<!--상품 분류 조회-->
<select id="selectBOGoodsItm" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT GOODS_POS_HDQRTRS_CD,
GRP_CD,
GRP_CD_1,
GRP_CD_2,
GRP_CD_3,
GRP_NM
FROM GC_POS_GRP
WHERE GOODS_POS_HDQRTRS_CD = #{srchGoodsPosHdqrtrsCd}
ORDER BY GRP_CD
</select>
<!--재고 조회-->
<select id="selectBOStockList" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
GOODS_IDNTFC_CD,
STR_IDNTFC_CD,
GOODS_CL_CD,
IFNULL(INVNTRY_QY,0) AS INVNTRY_QY,
IFNULL(SLE_QY,0) AS SLE_QY,
IFNULL(PD_AVRG_QY,0) AS PD_AVRG_QY
FROM
GC_POS_STOCK GPS
WHERE
GPS.YM = DATE_FORMAT(DATE_SUB(NOW() , INTERVAL 1 DAY),'%Y%m')
AND GPS.GOODS_POS_HDQRTRS_CD = #{srchGoodsPosHdqrtrsCd}
ORDER BY
GPS.GOODS_CL_CD,GPS.GOODS_NM
</select>
<!--상품 목록-->
<select id="selectBOGoodsList" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
DISTINCT
GPS.GOODS_IDNTFC_CD,
GPS.GOODS_POS_HDQRTRS_CD,
GPS.GOODS_POS_CD ,
GPS.GOODS_NM,
GPS.GOODS_BRCD,
GPS.GOODS_CL_CD,
SUBSTRING(GPS.GOODS_CL_CD,1,3) AS GRP_CD_1,
SUBSTRING(GPS.GOODS_CL_CD,4,3) AS GRP_CD_2,
SUBSTRING(GPS.GOODS_CL_CD,7,3) AS GRP_CD_3,
(SELECT GA.GRP_NM FROM GC_POS_GRP GA WHERE GPS.GOODS_POS_HDQRTRS_CD = GA.GOODS_POS_HDQRTRS_CD AND GA.GRP_CD= CONCAT(SUBSTRING(GPS.GOODS_CL_CD,1,3),'000000'))AS GRP_CD_NM_1,
(SELECT GA.GRP_NM FROM GC_POS_GRP GA WHERE GPS.GOODS_POS_HDQRTRS_CD = GA.GOODS_POS_HDQRTRS_CD AND GA.GRP_CD= CONCAT(SUBSTRING(GPS.GOODS_CL_CD,1,3),SUBSTRING(GPS.GOODS_CL_CD,4,3),'000'))AS GRP_CD_NM_2,
(SELECT GA.GRP_NM FROM GC_POS_GRP GA WHERE GPS.GOODS_POS_HDQRTRS_CD = GA.GOODS_POS_HDQRTRS_CD AND GA.GRP_CD= CONCAT(SUBSTRING(GPS.GOODS_CL_CD,1,3),SUBSTRING(GPS.GOODS_CL_CD,4,3),SUBSTRING(GPS.GOODS_CL_CD,7,3)))AS GRP_CD_NM_3
FROM
GC_POS_STOCK GPS
WHERE
GPS.YM = DATE_FORMAT(DATE_SUB(NOW() , INTERVAL 1 DAY),'%Y%m')
AND GPS.GOODS_POS_HDQRTRS_CD = #{srchGoodsPosHdqrtrsCd}
ORDER BY
GPS.GOODS_CL_CD,GPS.GOODS_NM
</select>
<!--매장 목록 조회-->
<select id="selectBOStrList" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
DISTINCT
IF(STR_POS_HDQRTRS_CD = #{srchGoodsPosHdqrtrsCd} AND STR_POS_CD = #{srchStrPosCd},1,2) AS IS_MY, -- 본인매장인지
STR_POS_HDQRTRS_CD,
STR_POS_CD,
STR_IDNTFC_CD,
REPLACE(REPLACE(STR_NM,'뉴트리코어 ',''),'참다한홍삼 ','') AS STR_NM
FROM
GC_POS_STOCK
WHERE
YM = DATE_FORMAT(DATE_SUB(NOW() , INTERVAL 1 DAY),'%Y%m')
AND GOODS_POS_HDQRTRS_CD = #{srchGoodsPosHdqrtrsCd}
ORDER BY
IS_MY,
STR_NM
</select>
</mapper>

View File

@@ -0,0 +1,225 @@
<?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.str.mapper.BOItrntStrMapper">
<!-- 매장 > 매장 목록 조회 > where -->
<sql id="selectBOStrListWhere">
<![CDATA[
WHERE 1=1
AND ST.TENT_STTUS = '02'
AND ST.MRHST_AT = 'Y'
AND ST.SITE_EXPSR_AT = 'Y'
AND IFNULl(ST.REPRSNT_BRAND, '') != ''
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
AND ST.TRTMNT_BRAND LIKE CONCAT('%',#{sopmalCd},'%')
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(reprsntBrand)">
AND ST.REPRSNT_BRAND = #{reprsntBrand}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKeyword)">
<![CDATA[
AND ST.STR_NM LIKE CONCAT('%', #{srchKeyword},'%')
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchCtyDo)">
<![CDATA[
AND ST.CTY_DO = (
SELECT
GCD.CD_NM
FROM GC_CODE_GROUP GRP
INNER JOIN GC_CODE GCD ON GCD.GROUP_CD = GRP.GROUP_CD
WHERE 1=1
AND GRP.GROUP_CD = 'SIDO'
AND GCD.CD = #{srchCtyDo}
)
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchCtyGunGu)">
<![CDATA[
AND ST.CTY_GUN_GU LIKE CONCAT('%', #{srchCtyGunGu},'%')
]]>
</if>
</sql>
<!-- 매장 > 매장 목록 조회 > from -->
<sql id="selectBOStrListFrom">
<![CDATA[
FROM
GC_STORE ST
INNER JOIN
(
SELECT
CTY_DO
FROM
GC_STORE
GROUP BY
CTY_DO
) AS CTY
ON
ST.CTY_DO = CTY.CTY_DO
]]>
</sql>
<!-- 매장 > 매장 목록 조회 -->
<select id = "selectBOStrListCnt"
parameterType="com.wb.domainserver.domain.itrnt.str.vo.BOItrntStrVO"
resultType = "java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
]]>
<include refid = "selectBOStrListFrom"/>
<include refid = "selectBOStrListWhere"/>
</select>
<!-- 매장 > 매장 목록 조회 -->
<select id = "selectBOStrListInqire"
parameterType="com.wb.domainserver.domain.itrnt.str.vo.BOItrntStrVO"
resultType = "dataMap">
<![CDATA[
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,TB.*
FROM (
SELECT
ST.STR_INNB,
ST.TENTCPN_ID,
ST.TENTCPN_NM,
ST.STR_NM,
ST.TENT_GROUP,
ST.TENT_STTUS,
ST.STR_CD,
ST.CTY_DO,
ST.CTY_GUN_GU,
ST.STR_ADRES_DV,
ST.STR_ZIP,
ST.STR_ADRES,
ST.STR_RNM_ADRES,
ST.STR_DTL_ADRES,
ST.STR_TELNB,
ST.REPRSNT_BRAND
]]>
<include refid = "selectBOStrListFrom"/>
<include refid = "selectBOStrListWhere"/>
<![CDATA[
ORDER BY FIELD(ST.CTY_DO, '제주특별자치도', '부산광역시', '울산광역시', '대구광역시', '광주광역시', '세종', '충청남도', '충청북도', '대전광역시', '강원도', '인천광역시', '경기도', '서울특별시') DESC
, ST.CTY_GUN_GU
) TB
WHERE (@rownum:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 매장 > 매장 목록 조회 시/도 별 그룹 -->
<select id = "selectBOStrListCtyGroup"
parameterType="com.wb.domainserver.domain.itrnt.str.vo.BOItrntStrVO"
resultType = "com.wb.domainserver.domain.itrnt.str.vo.BOItrntStrVO">
<![CDATA[
SELECT
CTY_DO,
COUNT(STR_INNB) AS STR_COUNT
FROM GC_STORE
WHERE CTY_DO IS NOT NULL
AND TRTMNT_BRAND LIKE CONCAT('%',#{sopmalCd},'%')
AND TENT_STTUS = '02' -- 개점
AND SITE_EXPSR_AT = 'Y'
AND MRHST_AT = 'Y'
AND IFNULl(REPRSNT_BRAND, '') != ''
GROUP BY CTY_DO
ORDER BY FIELD(CTY_DO, '제주특별자치도', '부산광역시', '울산광역시', '대구광역시', '광주광역시', '세종', '충청남도', '충청북도', '대전광역시', '강원도', '인천광역시', '경기도', '서울특별시') DESC;
]]>
</select>
<!-- 매장 > 매장 목록 조회 군/구 별 그룹 -->
<select id = "selectBOStrListGunGuGroup"
parameterType="com.wb.domainserver.domain.itrnt.str.vo.BOItrntStrVO"
resultType = "dataMap">
<![CDATA[
SELECT
CASE
WHEN SUBSTR(ST.CTY_DO,1,2) = '서울' THEN 1
WHEN SUBSTR(ST.CTY_DO,1,2) = '경기' THEN 2
WHEN SUBSTR(ST.CTY_DO,1,2) = '인천' THEN 3
WHEN SUBSTR(ST.CTY_DO,1,2) = '강원' THEN 4
WHEN SUBSTR(ST.CTY_DO,1,2) = '대전' THEN 5
WHEN SUBSTR(ST.CTY_DO,1,4) = '충청북도' THEN 6
WHEN SUBSTR(ST.CTY_DO,1,4) = '충청남도' THEN 7
WHEN SUBSTR(ST.CTY_DO,1,2) = '광주' THEN 8
WHEN SUBSTR(ST.CTY_DO,1,4) = '전라북도' THEN 9
WHEN SUBSTR(ST.CTY_DO,1,4) = '전라남도' THEN 10
WHEN SUBSTR(ST.CTY_DO,1,2) = '대구' THEN 11
WHEN SUBSTR(ST.CTY_DO,1,2) = '울산' THEN 12
WHEN SUBSTR(ST.CTY_DO,1,2) = '부산' THEN 13
WHEN SUBSTR(ST.CTY_DO,1,2) = '경북' THEN 14
WHEN SUBSTR(ST.CTY_DO,1,2) = '경남' THEN 15
WHEN SUBSTR(ST.CTY_DO,1,2) = '제주' THEN 16
ELSE 99
END AS CTY_DO_IDX,
ST.STR_INNB,
ST.CTY_DO,
ST.CTY_GUN_GU,
ST.STR_NM
FROM GC_STORE ST
INNER JOIN (
SELECT CTY_DO,
COUNT(STR_INNB) AS STR_COUNT
FROM GC_STORE
GROUP BY CTY_DO ) AS GROUP_COUNT
ON ST.CTY_DO = GROUP_COUNT.CTY_DO
WHERE TRTMNT_BRAND LIKE CONCAT('%',#{sopmalCd},'%')
AND TENT_STTUS = '02' -- 개점
AND SITE_EXPSR_AT = 'Y'
AND MRHST_AT = 'Y'
AND IFNULl(REPRSNT_BRAND, '') != ''
ORDER BY CTY_DO_IDX, STR_NM
]]>
</select>
<!-- 매장 > 매장 상세 조회 -->
<select id = "selectBOStrDtlInqire"
parameterType="com.wb.domainserver.domain.itrnt.str.vo.BOItrntStrVO"
resultType = "dataMap">
<![CDATA[
SELECT
STR_INNB
,STR_NM
,HVOF_DE
,HVOF_DE_ADIT
,CASE WHEN BSN_TME ='||||' THEN NULL ELSE BSN_TME END AS BSN_TME -- 빈값일 경우 |||| 으로 저장되는 부분있어 수정
,DATE_FORMAT(OPBIZ_DE, '%Y-%m-%d') AS OPBIZ_DE
,FN_GET_SOPMAL_NAME(#{sopmalCd}) AS SOPMAL_NM
,FN_GET_SOPMAL_NAME(REPRSNT_BRAND) AS REPRSNT_BRAND_NM
,REPRSNT_BRAND
,STR_TELNB
,STR_OPER_DV
,CTY_DO
,CTY_GUN_GU
,STR_ADRES_DV
,STR_ZIP
,STR_ADRES
,STR_RNM_ADRES
,STR_DTL_ADRES
,STR_REPRSNT_IMG
,STR_DTL_IMG
,CONCAT(STR_REPRSNT_IMG,'|',STR_DTL_IMG) AS STR_IMG
,LA
,LO
FROM
GC_STORE
WHERE 1=1
AND STR_INNB = #{strInnb}
AND TENT_STTUS = '02' -- 개점
AND SITE_EXPSR_AT = 'Y'
AND MRHST_AT = 'Y'
AND IFNULL(REPRSNT_BRAND, '') != ''
]]>
</select>
</mapper>