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,512 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.mapper.BOLgqyMssageMapper">
<!-- 대량 발송 관리 목록 조회 WHERE 절 -->
<sql id="MssageLgqySndngDtlsListWhere">
WHERE 1=1
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSmsLgqySndngInnb)">
<![CDATA[
AND LGQYSMS.SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchBrandCd)">
<![CDATA[
AND LGQYSMS.BRAND_CD = #{srchBrandCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
<![CDATA[
AND LGQYSMS.SOPMAL_CD = #{srchSopmalCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngCn)">
<![CDATA[
AND LGQYSMS.SNDNG_CN LIKE CONCAT('%', #{srchSndngCn}, '%')
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtRegistDt)">
<![CDATA[
AND DATE_FORMAT(LGQYSMS.REGIST_DT ,'%Y-%m-%d') >= #{srchStrtRegistDt}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndRegistDt)">
<![CDATA[
AND DATE_FORMAT(LGQYSMS.REGIST_DT ,'%Y-%m-%d') <= #{srchEndRegistDt}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngSttus)">
<![CDATA[
AND LGQYSMS.SNDNG_STTUS = #{srchSndngSttus}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngReqstDt)">
<![CDATA[
AND LGQYSMS.SNDNG_REQST_DT = #{srchSndngReqstDt}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngDvCd)">
<![CDATA[
AND LGQYSMS.SNDNG_DV_CD = #{srchSndngDvCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchSndngDvCd)">
<![CDATA[
AND LGQYSMS.SNDNG_DV_CD <> '02' -- 소멸예정 마일리지 제외
]]>
</if>
</sql>
<!-- 대량메시지 쇼핑몰 정보 조회 -->
<select id="selectBOShopInfoInqire" resultType="DataMap">
SELECT *
FROM GC_SHOP
WHERE 1 = 1
AND SOPMAL_CD = #{srchSopmalCd}
</select>
<!-- 쇼핑몰 리스트 조회 -->
<select id="selectBOShopListInqire" resultType="DataMap">
SELECT SOPMAL_CD,
SOPMAL_NM
FROM GC_SHOP
WHERE 1 = 1
AND OPER_AT = 'Y'
</select>
<!--대량 메시지 발송 관리 건수 조회 -->
<select id="selectBOMssageLgqySndngListTotCnt"
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
resultType="Integer">
SELECT
COUNT(1)
FROM GC_LGQY_SMS LGQYSMS
<include refid="MssageLgqySndngDtlsListWhere"/>
</select>
<!--대량 메시지 발송 내역 조회 -->
<select id="selectBOMssageLgqySndngListInqire"
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
resultType="dataMap">
SELECT
*
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
, TB.*
FROM (
SELECT
LGQYSMS.SMS_LGQY_SNDNG_INNB,
FN_GET_SOPMAL_NAME(LGQYSMS.SOPMAL_CD) AS BRAND_CD,
LGQYSMS.SOPMAL_CD,
LGQYSMS.SNDNG_SJ,
DATE_FORMAT(LGQYSMS.REGIST_DT,'%Y-%m-%d %H:%i:%S') AS REGIST_DT,
DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_REQST_DT,
DATE_FORMAT(LGQYSMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_DT,
CONCAT(LEFT(LGQYSMS.SNDNG_CN, 30),'...') SNDNG_CN,
LGQYSMS.ALL_CNT,
LGQYSMS.SUCCES_CNT,
LGQYSMS.SNDNG_STTUS,
LGQYSMS.SNDNG_PROCS_DV_CD
FROM GC_LGQY_SMS LGQYSMS
<include refid="MssageLgqySndngDtlsListWhere"/>
) TB
WHERE (@ROWNUM:=0)=0
) PV
ORDER BY RNUM DESC
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 대량 메시지 상세 조회 -->
<select id="selectBOMssageLgqySndngDtlInqire"
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
resultType="dataMap">
SELECT
LGQYSMS.SMS_LGQY_SNDNG_INNB
, LGQYSMS.SOPMAL_CD
, LGQYSMS.BRAND_CD
, LGQYSMS.SNDNG_SJ
, LGQYSMS.SNDNG_CN
, LGQYSMS.LINK_URL1
, LGQYSMS.LINK_URL2
, LGQYSMS.LINK_URL3
, LGQYSMS.SNDNG_CND_PARAM
, LGQYSMS.SNDNG_TRGET_QRY
, DATE_FORMAT(LGQYSMS.REGIST_DT,'%Y-%m-%d %H:%i:%S') AS REGIST_DT
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_REQST_DT
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%Y-%m-%d') AS SNDNG_REQST
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%H') AS SNDNG_REQST_HOUR
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%i') AS SNDNG_REQST_MINUTE
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%S') AS SNDNG_REQST_SEC
, DATE_FORMAT(LGQYSMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_DT
, LGQYSMS.SNDNG_CN
, LGQYSMS.ALL_CNT
, LGQYSMS.SUCCES_CNT
, LGQYSMS.SNDNG_STTUS
, LGQYSMS.REQUSR_NM
, LGQYSMS.SNDNG_DV_CD
, LGQYSMS.FIL_COURS
, LGQYSMS.ORGINL_FIL_NM
, LGQYSMS.SYS_FIL_NM
, LGQYSMS.LANDING_TY
, LGQYSMS.LANDING_USE_AT
, LGQYSMS.LANDING_POSITION
, LGQYSMS.RECPNT_DV
, (SELECT REPLACE(MBL_DOMN_ADRES, 'http://', '') FROM GC_SHOP SHOP WHERE SHOP.SOPMAL_CD = LGQYSMS.SOPMAL_CD) AS URL
, FN_GET_COMMCODE_NAME('SNDNG_DV', LGQYSMS.SNDNG_DV_CD) AS SNDNG_DV_CD_NM
FROM GC_LGQY_SMS LGQYSMS
WHERE LGQYSMS.SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
</select>
<!-- 대량 메시지 대상 조회 -->
<select id="selectBOMssageLgqySndngToInqire"
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageSrchVO"
resultType="dataMap">
SELECT SMS_LGQY_SNDNG_INNB
, LGQY_SNDNG_TRGET_INNB
, MNGR_INNB
, CAST(AES_DECRYPT(UNHEX(MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS MBTLNB
, NM
, MBR_ID
, STTUS
, SUBST_CHR_1
, SUBST_CHR_2
, SUBST_CHR_3
, SUBST_CHR_4
, SUBST_CHR_5
FROM GC_LGQY_SMS_TO LGQYSMSTO
WHERE 1 = 1
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
</select>
<!-- 대량 메시지 발송내역 등록 -->
<insert id="insertBOMssageLgqySndngRegist"
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageVO"
keyProperty="smsLgqySndngInnb" useGeneratedKeys="true">
INSERT INTO GC_LGQY_SMS (
SOPMAL_CD
, BRAND_CD
, SNDNG_SJ
, SNDNG_CN
, SNDNG_PROCS_DV_CD
, SNDNG_CND_PARAM
, SNDNG_TRGET_QRY
, RECPNT_DV
, CALL_PGE_USE_AT
, LINK_URL1
, LINK_URL2
, LINK_URL3
, SNDNG_REQST_DT
, SNDNG_DT
, ALL_CNT
, SUCCES_CNT
, SNDNG_STTUS
, LANDING_USE_AT
, REQUSR_NM
, REGUSR
, REGIST_DT
, SNDNG_DV_CD
, UPDUSR
, UPDT_DT
)
VALUES (
#{sopmalCd}
, #{brandCd}
, #{sndngSj}
, #{sndngCn}
, '00'
, #{sndngCndParam}
, #{sndngTrgetQry}
, #{recpntDv}
, #{callPgeUseAt}
, #{linkUrl1}
, #{linkUrl2}
, #{linkUrl3}
, #{sndngReqstDt}
, #{sndngDt}
, #{allCnt}
, #{succesCnt}
, 'SAVE'
, #{landingUseAt}
, #{requsrNm}
, #{regusr}
, NOW()
, #{sndngDvCd}
, #{regusr}
, NOW()
)
</insert>
<!-- 대량 메시지 발송대상 등록 -->
<insert id="insertBOMssageLgqySndngToRegist"
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageVO">
INSERT INTO GC_LGQY_SMS_TO (
SMS_LGQY_SNDNG_INNB
, MNGR_INNB
, MBTLNB
, NM
, MBR_ID
, CHOISE_DT
, STTUS
, MEMO
, SUBST_CHR_1
, SUBST_CHR_2
, SUBST_CHR_3
, SUBST_CHR_4
, SUBST_CHR_5
, LINK_AT
, REGUSR
, REGIST_DT
)
VALUES
<foreach collection="list" item="lgqyTo" index="index" separator=",">
(
#{lgqyTo.smsLgqySndngInnb}
, #{lgqyTo.mngrInnb}
, HEX(AES_ENCRYPT( #{lgqyTo.mbtlnb} , #{lgqyTo.secretKey}))
, #{lgqyTo.nm}
, #{lgqyTo.mbrId}
, #{lgqyTo.choiseDt}
, #{lgqyTo.sttus}
, #{lgqyTo.memo}
, #{lgqyTo.substChr1}
, #{lgqyTo.substChr2}
, #{lgqyTo.substChr3}
, #{lgqyTo.substChr4}
, #{lgqyTo.substChr5}
, #{lgqyTo.linkAt}
, #{lgqyTo.regusr}
, NOW()
)
</foreach>
</insert>
<!-- 상태 변경-->
<update id="updateBOMssageLgqySttusUpdate">
UPDATE
GC_LGQY_SMS GLS
SET
SNDNG_PROCS_DV_CD = #{sndngProcsDvCd}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngSttus)">
,SNDNG_STTUS = #{sndngSttus}
</if>
WHERE 1=1
AND SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 대량 메시지 상세 - 발송요청현황 확인 -->
<select id="selectBOMssageLgqySndngReqInqire"
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageSrchVO"
resultType="dataMap">
SELECT SNDNG_REQST_DT
, BRAND_CD
, SNDNG_STTUS
, SNDNG_DV_CD
FROM GC_LGQY_SMS
WHERE 1 = 1
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
</select>
<!--수정 가능 여부 체크-->
<update id="updateBOMssageLgqySmsUpdt">
UPDATE
GC_LGQY_SMS
SET SNDNG_SJ = #{sndngSj}
, SNDNG_CN = #{sndngCn}
, LINK_URL1 = #{linkUrl1}
, LINK_URL2 = #{linkUrl2}
, LINK_URL3 = #{linkUrl3}
, SNDNG_REQST_DT = #{sndngReqstDt}
, UPDUSR = #{updusr}
, UPDT_DT = NOW()
, SNDNG_DV_CD = #{sndngDvCd}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
, ORGINL_FIL_NM = #{orginlFilNm}
, SYS_FIL_NM = #{sysFilNm}
, FIL_MG = #{filMg}
, FIL_TY = #{filTy}
, FIL_COURS = #{filCours}
, LANDING_TY = 1/*#{landingTy}*/
</if>
, LANDING_USE_AT = #{landingUseAt}
, LANDING_POSITION = #{landingPosition}
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngTrgetQry)">
, SNDNG_TRGET_QRY = #{sndngTrgetQry}
</if>
, SNDNG_CND_PARAM = #{sndngCndParam}
, BRAND_CD = #{brandCd}
<if test="(@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngDvCd, '04') and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngSttus, 'SAVE'))
or(@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngDvCd, '03') and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngSttus, 'REG'))">
,ALL_CNT = #{allCnt}
</if>
WHERE 1 = 1
AND SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
</update>
<!-- lgqy_sms 수정-->
<select id="selectBOMssageLgqySndngUpdtAt" resultType="String"> /*처리 중이거나 요청, 완료상태는 수정 못함*/
SELECT CASE
WHEN SNDNG_PROCS_DV_CD IN ('P', '02') THEN 'N'
ELSE 'Y'
END AS UPDT_AT
FROM GC_LGQY_SMS
WHERE SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
AND SOPMAL_CD = #{sopmalCd}
</select>
<!-- 대상 삭제 -->
<delete id="deleteBoMssageLgqySmsToDelete">
DELETE
FROM GC_LGQY_SMS_TO
WHERE SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
</delete>
<!-- 클릭 수 통계 -->
<select id="selectBOMssageLgqyClickStat" resultType="dataMap">
SELECT COUNT(*) AS TOT_CNT
, COUNT(DISTINCT GLSTL.LGQY_SNDNG_TRGET_INNB) AS CLICK_CNT
, IFNULL(COUNT(DISTINCT GLSTL.LGQY_SNDNG_TRGET_INNB)
/ NULLIF((SELECT GLM.SUCCES_CNT
FROM GC_LGQY_SMS GLM
WHERE GLM.SMS_LGQY_SNDNG_INNB = GLSTL.SMS_LGQY_SNDNG_INNB), 0) * 100,
0) AS CLICK_RATE
FROM GC_LGQY_SMS_TO_LINK GLSTL
WHERE 1 = 1
AND GLSTL.SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
</select>
<!-- url 별 클릭 수 통계 -->
<select id="selectBOMssageLgqyUrlClickStat"
resultType="dataMap">
SELECT SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) AS URL1_CNT1
, ROUND(SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL1_CNT1_RT
, SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) AS URL1_CNT2
, ROUND(SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL1_CNT2_RT
, SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) AS URL1_CNT3
, ROUND(SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL1_CNT3_RT
, SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) AS URL2_CNT1
, ROUND(SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL2_CNT1_RT
, SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) AS URL2_CNT2
, ROUND(SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL2_CNT2_RT
, SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) AS URL2_CNT3
, ROUND(SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL2_CNT3_RT
, SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) AS URL3_CNT1
, ROUND(SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL3_CNT1_RT
, SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) AS URL3_CNT2
, ROUND(SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL3_CNT2_RT
, SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) AS URL3_CNT3
, ROUND(SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) / COUNT(*), 2) *
100 AS URL3_CNT3_RT
FROM (SELECT COUNT(*) CNT
, GLSTL.LINK_NB AS LINK_NB
FROM GC_LGQY_SMS_TO_LINK GLSTL
WHERE 1 = 1
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
GROUP BY LGQY_SNDNG_TRGET_INNB, LINK_NB) A
</select>
<!-- 시간별 클릭 통계 -->
<select id="selectBOMssageLgqyClickStatList"
resultType="dataMap"
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageSrchVO">
SELECT DATE_FORMAT(REGIST_DT, '%Y-%m-%d') DAY
, CONCAT(DATE_FORMAT(REGIST_DT, '%H:'), LPAD(FLOOR(MINUTE(REGIST_DT) / 10) * 10, 2, '0')) AS HOUR
, SUM(IF(LINK_NB = 1, IF(LGQY_SNDNG_TRGET_INNB IS NOT NULL, 1, 0), 0)) CNT1
, SUM(IF(LINK_NB = 2, IF(LGQY_SNDNG_TRGET_INNB IS NOT NULL, 1, 0), 0)) CNT2
, SUM(IF(LINK_NB = 3, IF(LGQY_SNDNG_TRGET_INNB IS NOT NULL, 1, 0), 0)) CNT3
, SUM(IF(LINK_NB = 3, IF(ETC = 'r', 1, 0), 0)) R_CNT1
, SUM(IF(LINK_NB = 3, IF(ETC = 'r', 1, 0), 0)) R_CNT2
, SUM(IF(LINK_NB = 3, IF(ETC = 'r', 1, 0), 0)) R_CNT3
, COUNT(DISTINCT LGQY_SNDNG_TRGET_INNB) P_CNT
FROM GC_LGQY_SMS_TO_LINK
WHERE 1 = 1
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
GROUP BY DAY, HOUR
</select>
<!-- 출생년도별 클릭 통계 -->
<select id="selectBOMssageLgqySndngBirthStat" resultType="dataMap">
<![CDATA[
SELECT A.BIRTH
, A.SEX
, SUM(A.CNT) PCNT
FROM (SELECT CASE
WHEN LEFT(M.BRTH_DE, 4) > YEAR(NOW()) THEN 'none'
WHEN LEFT(M.BRTH_DE, 4) <= '1900' THEN 'none'
ELSE LEFT(M.BRTH_DE, 4)
END BIRTH,
IF(M.SEX = '', 'none', M.SEX) SEX,
COUNT(1) CNT
FROM GC_MEMBER M
WHERE M.MBTLNB IN (SELECT CAST(AES_DECRYPT(UNHEX(MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS MBTLNB
FROM GC_LGQY_SMS_TO
WHERE 1 = 1
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb})
AND M.SEX <> 'none'
AND M.SEX > ''
GROUP BY M.BRTH_DE, M.SEX
ORDER BY LEFT(M.BRTH_DE, 4) DESC) A
WHERE 1 = 1
AND A.BIRTH <> 'none'
AND A.SEX <> 'none'
GROUP BY A.BIRTH, A.SEX
]]>
</select>
<!-- 클릭자 중 구매자수 통계 -->
<select id="selectBOMssageLgqySndngOrdrStat" resultType="dataMap">
SELECT IF(O.DIFF > 0, O.DIFF * 3, O.DIFF) DIFF,
O.CNT
FROM (SELECT FLOOR(DIFF / 3) DIFF
, COUNT(MOBILE) CNT
FROM (
SELECT
CAST(AES_DECRYPT(UNHEX(FO.ORDRR_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS MOBILE
, TIMESTAMPDIFF(HOUR, #{sndngDt}, FO.ORDR_RCEPT_DT) DIFF
FROM GC_ORDER FO
LEFT JOIN GC_ORDER_ITEM FOI
ON FOI.ORDR_INNB = FO.ORDR_INNB
LEFT JOIN GC_ORDER_ITEM_OPTION FOIO
ON FOIO.ORDR_INNB = FO.ORDR_INNB
WHERE 1 = 1
AND FOIO.ORDR_STTUS_CD BETWEEN 25 AND 75
AND FO.MBR_INNB > 0
AND FO.ORDR_RCEPT_DT BETWEEN #{sndngDt} AND DATE_ADD(#{sndngDt}, INTERVAL +7 DAY)
AND FO.mbtlnb IN (HEX(AES_ENCRYPT(#{mbtlnb}), #{secretKey}))
)
GROUP BY FLOOR(DIFF / 3)
) O
</select>
<!-- 대량 메시지 달력 조회 -->
<select id="selectBOMssageLgqySndngReqstCldr"
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
resultType="dataMap">
SELECT
LGQYSMS.SMS_LGQY_SNDNG_INNB,
LGQYSMS.SNDNG_REQST_DT,
FN_GET_SOPMAL_NAME(LGQYSMS.SOPMAL_CD) AS BRAND_NM
FROM
GC_LGQY_SMS LGQYSMS
WHERE 1=1
AND LGQYSMS.SNDNG_REQST_DT BETWEEN #{srchStrtRegistDt} ' 00:00:00' AND #{srchEndRegistDt} ' 23:59:59'
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngSttus)">
AND SNDNG_STTUS = #{srchSndngSttus}
</when>
<otherwise>
AND SNDNG_STTUS IN ('S','I','Y','SAVE','REG','END')
</otherwise>
</choose>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
AND SOPMAL_CD = #{srchSopmalCd}
</if>
ORDER BY LGQYSMS.SNDNG_REQST_DT DESC
</select>
</mapper>