merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,353 @@
|
||||
<?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.atmcsndng.mapper.BOAtmcSndngMapper">
|
||||
<!-- sms 발송 관리 목록 조회 FROM 절 -->
|
||||
<sql id = "SmsSndngDtlsListFrom">
|
||||
FROM GC_SMS_TO SMSTO
|
||||
INNER JOIN GC_SMS SMS
|
||||
ON SMSTO.SMS_INNB = SMS.SMS_INNB
|
||||
AND SMSTO.SOPMAL_CD = SMS.SOPMAL_CD
|
||||
</sql>
|
||||
|
||||
<!-- sms 발송 관리 목록 조회 WHERE 절 -->
|
||||
<sql id = "SmsSndngDtlsListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<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(srchSopmalCd)">
|
||||
<![CDATA[
|
||||
AND SMS.SOPMAL_CD = #{srchSopmalCd}
|
||||
AND SMSTO.SOPMAL_CD = #{srchSopmalCd}
|
||||
]]>
|
||||
</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) , '1df5be2f7e90ae36') AS CHAR(50)) = REPLACE(#{srchRecptnNb},'-','')
|
||||
]]>
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
|
||||
<choose>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchNbDv, 'recpntNb')">
|
||||
<![CDATA[
|
||||
AND CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) LIKE CONCAT('%', REPLACE(#{srchStr},'-',''), '%')
|
||||
]]>
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchNbDv, 'sndngNb')">
|
||||
<![CDATA[
|
||||
AND SMS.SNDNG_NB LIKE CONCAT('%', #{srchStr}, '%')
|
||||
]]>
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchNbDv, 'cstmrIdnb')">
|
||||
<![CDATA[
|
||||
AND SMSTO.CSTMR_IDNB LIKE CONCAT('%', #{srchStr}, '%')
|
||||
]]>
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchNbDv, 'cn')">
|
||||
<![CDATA[
|
||||
AND (
|
||||
SMS.CN LIKE CONCAT('%', #{srchStr}, '%')
|
||||
OR SMSTO.SUBST_DATA 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)">
|
||||
<![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>
|
||||
<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>
|
||||
</choose>
|
||||
</if>
|
||||
<!-- 등록일 -->
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'registDt')">
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)">
|
||||
<![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>
|
||||
<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>
|
||||
</choose>
|
||||
</if>
|
||||
<choose>
|
||||
<when 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>
|
||||
</when>
|
||||
<otherwise>
|
||||
AND SMSTO.DV != 'AT'
|
||||
AND SMSTO.DV != 'AI'
|
||||
</otherwise>
|
||||
</choose>
|
||||
<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(srchRegusrDv)">
|
||||
<![CDATA[
|
||||
AND SMS.REGUSR_DV = #{srchRegusrDv}
|
||||
]]>
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngNb)">
|
||||
<![CDATA[
|
||||
AND SMS.SNDNG_NB = #{sndngNb}
|
||||
AND SMSTO.RECPTN_NB = REPLACE(#{recptnNb},'-','')
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 자동 발송 관리 목록 -->
|
||||
<select id="selectBOAtmcSndngManageListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM GC_MESSAGE_SNDNG SNDNG
|
||||
JOIN (
|
||||
SELECT GROUPCODE.CD_NM AS GROUP_CD_NM, CODE.GROUP_CD, CODE.CD, CODE.CD_NM
|
||||
FROM (
|
||||
SELECT CD, CD_NM, USE_AT
|
||||
FROM GC_CODE
|
||||
WHERE GROUP_CD LIKE 'FORM_DV%'
|
||||
) GROUPCODE
|
||||
JOIN GC_CODE CODE
|
||||
ON REPLACE(CODE.GROUP_CD, #{formDvCd}, '') = GROUPCODE.CD
|
||||
AND CODE.USE_AT = 'Y'
|
||||
) CODE
|
||||
ON CODE.GROUP_CD = SNDNG.FORM_DV_CD
|
||||
AND CODE.CD = SNDNG.FORM_DTL_DV_CD
|
||||
WHERE SNDNG.SOPMAL_CD = #{sopmalCd}
|
||||
AND SNDNG.EXPSR_AT = 'Y'
|
||||
AND SNDNG.MNGR_DV = #{mngrDv}
|
||||
ORDER BY SNDNG.FORM_DV_CD, SNDNG.FORM_DTL_DV_CD
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 자동 발송 관리 수정 -->
|
||||
<update id="updateBOAtmcSndngManageUpdt" parameterType="com.wb.domainserver.domain.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_MESSAGE_SNDNG
|
||||
SET
|
||||
USE_AT = #{dto.useAt}
|
||||
, EMAIL_USE_AT = #{dto.emailUseAt}
|
||||
, SMS_USE_AT = #{dto.smsUseAt}
|
||||
, NTCNTALK_USE_AT = #{dto.ntcntalkUseAt}
|
||||
, MARKT_AT = #{dto.marktAt}
|
||||
, SNDNG_STDR_DE = #{dto.sndngStdrDe}
|
||||
, SNDNG_STDR_TME = #{dto.sndngStdrTme}
|
||||
, UPDUSR = #{dto.updusr}
|
||||
, UPDT_DT = SYSDATE()
|
||||
WHERE SOPMAL_CD = #{dto.sopmalCd}
|
||||
AND FORM_DV_CD = #{dto.formDvCd}
|
||||
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 이메일 템플릿 사용여부 수정 -->
|
||||
<update id="updateBOEmailTmplatUseAt" parameterType="com.wb.domainserver.domain.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL_FORM
|
||||
SET
|
||||
USE_AT = #{dto.emailUseAt}
|
||||
WHERE SOPMAL_CD = #{dto.sopmalCd}
|
||||
AND FORM_DV_CD = #{dto.formDvCd}
|
||||
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 메시지 템플릿 사용여부 수정 -->
|
||||
<update id="updateBOMssageTmplatUseAt" parameterType="com.wb.domainserver.domain.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_SMS_FORM
|
||||
SET
|
||||
USE_AT = #{dto.smsUseAt}
|
||||
WHERE SOPMAL_CD = #{dto.sopmalCd}
|
||||
AND FORM_DV_CD = #{dto.formDvCd}
|
||||
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 알림톡 템플릿 사용여부 수정 -->
|
||||
<update id="updateBOKakaoTmplatUseAt" parameterType="com.wb.domainserver.domain.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_KAKAO_FORM
|
||||
SET
|
||||
USE_AT = #{dto.ntcntalkUseAt}
|
||||
WHERE SOPMAL_CD = #{dto.sopmalCd}
|
||||
AND FORM_DV_CD = #{dto.formDvCd}
|
||||
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
<!-- sms 발송 목록 조회 -->
|
||||
<select id = "selectBOSmsSndngDtlsListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (ORDER BY SMS.SNDNG_DT, SMSTO.SMS_TO_INNB ASC) AS RNUM,
|
||||
SMS.SNDNG_NB,
|
||||
SMSTO.DV,
|
||||
DATE_FORMAT(SMS.REGIST_DT,'%Y-%m-%d %H:%i:%S') AS REGIST_DT,
|
||||
CASE
|
||||
WHEN SMS.RESVE_DT IS NULL THEN DATE_FORMAT(SMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S')
|
||||
ELSE DATE_FORMAT(SMS.RESVE_DT, '%Y-%m-%d %H:%i:%S')
|
||||
END AS SNDNG_DT, -- 예약날짜가 있을경우 예약날짜로 발송시간 표출
|
||||
CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) AS RECPTN_NB,
|
||||
SMS.CN AS CN,
|
||||
SMS.SMS_INNB,
|
||||
SMSTO.SMS_TO_INNB,
|
||||
SMSTO.STTUS,
|
||||
SMS.SUCCES_CNT,
|
||||
SMS.FAILR_CNT,
|
||||
SMS.CHR_STTUS,
|
||||
SMS.SOPMAL_CD ,
|
||||
SMSTO.RSLT_SJ,
|
||||
SMSTO.SUBST_DATA,
|
||||
SHOP.SOPMAL_NM
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
INNER JOIN GC_SHOP SHOP
|
||||
ON SMS.SOPMAL_CD = SHOP.SOPMAL_CD
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
<![CDATA[
|
||||
-- ) TB
|
||||
ORDER BY RNUM DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 상세 조회 -->
|
||||
<select id = "selectBOSmsSndngDtlInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
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,
|
||||
CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) AS RECPTN_NB,
|
||||
SMS.CN AS CN,
|
||||
SMS.SMS_INNB,
|
||||
SMSTO.SMS_TO_INNB,
|
||||
SMSTO.STTUS,
|
||||
SMS.SUCCES_CNT,
|
||||
SMS.FAILR_CNT,
|
||||
SMS.CHR_STTUS,
|
||||
SMSTO.RSLT_SJ,
|
||||
SMSTO.SUBST_DATA
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 관리 건수 조회 -->
|
||||
<select id = "selectBOSmsSndngDtlsListTotCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="Integer">
|
||||
<![CDATA[
|
||||
SELECT COUNT(1)
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 관리 발신 목록 성공 건수 -->
|
||||
<select id = "selectBOSmsSndngresultOkCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(SMSTO.STTUS) OKCNT
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
<![CDATA[
|
||||
AND SMSTO.STTUS IN ('OK')
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 관리 발신 목록 실패 건수 -->
|
||||
<select id = "selectBOSmsSndngresultFailCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(SMSTO.STTUS) FAILCNT
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
<![CDATA[
|
||||
AND SMSTO.STTUS IN ('FAIL')
|
||||
]]>
|
||||
</select>
|
||||
<!-- 자동발송 가능 시간 조회 -->
|
||||
<select id="selectBOShopAtmcSndngTme">
|
||||
SELECT
|
||||
LEFT(SMS_ATMC_SNDNG_LMTT_BGNTME, 2) AS SMS_ATMC_SNDNG_LMTT_BGNTME
|
||||
, LEFT(SMS_ATMC_SNDNG_LMTT_ENDTME, 2) AS SMS_ATMC_SNDNG_LMTT_ENDTME
|
||||
FROM GC_SHOP
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,99 @@
|
||||
<?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.email.mapper.BOEmailMapper">
|
||||
<!-- 이메일 발송내역 등록 -->
|
||||
<insert id="insertBOEmailSndngDtls"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.email.vo.BOEmailVO"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="emailSndngInnb">
|
||||
INSERT INTO GC_EMAIL (
|
||||
SOPMAL_CD
|
||||
, SNDNG_LC
|
||||
, SJ
|
||||
, CN
|
||||
, SNDR_EMAIL
|
||||
, RECPTN_RJCT_URL
|
||||
, REGUSR_DV
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
)
|
||||
VALUES (
|
||||
#{sopmalCd}
|
||||
, #{sndngLc}
|
||||
, #{sj}
|
||||
, #{cn}
|
||||
, HEX(AES_ENCRYPT(#{sndrEmail}, #{secretKey}))
|
||||
, #{recptnRjctUrl}
|
||||
, #{regusrDv}
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 이메일 발송대상 등록 -->
|
||||
<insert id="insertBOEmailSndngTo"
|
||||
parameterType="java.util.List"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="trgetSnb">
|
||||
INSERT INTO GC_EMAIL_TO (
|
||||
EMAIL_SNDNG_INNB
|
||||
, MBR_INNB
|
||||
, RECPNT_EMAIL
|
||||
, RECPNT_NM
|
||||
, STTUS
|
||||
, SNDNG_DT
|
||||
, RSLT_CD
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="list" item="dto" separator=",">
|
||||
(
|
||||
#{dto.emailSndngInnb}
|
||||
, #{dto.mbrInnb}
|
||||
, HEX(AES_ENCRYPT(#{dto.recpntEmail}, #{dto.secretKey}))
|
||||
, #{dto.recpntNm}
|
||||
, #{dto.sttus}
|
||||
, #{dto.sndngDt}
|
||||
, #{dto.rsltCd}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 이메일 발송대상 순번 조회 -->
|
||||
<select id = "selectBOEmailSndngTrgetSnb"
|
||||
parameterType="java.lang.Integer"
|
||||
resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT TRGET_SNB
|
||||
FROM GC_EMAIL_TO
|
||||
WHERE EMAIL_SNDNG_INNB = #{emailSndngInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 발신자명(쇼핑몰 이름) 조회 -->
|
||||
<select id = "selectBOEmailSopmalNm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.email.vo.BOEmailVO"
|
||||
resultType="java.lang.String">
|
||||
<![CDATA[
|
||||
SELECT SOPMAL_NM
|
||||
FROM GC_SHOP
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 발송여부 업데이트 -->
|
||||
<update id="updateBOEmailSndng"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.email.vo.BOEmailVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL_TO
|
||||
SET
|
||||
STTUS = #{dto.sttus}
|
||||
, SNDNG_DT = SYSDATE()
|
||||
, RSLT_CD = #{dto.rsltCd}
|
||||
WHERE EMAIL_SNDNG_INNB = #{dto.emailSndngInnb}
|
||||
AND TRGET_SNB = #{dto.trgetSnb}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,509 @@
|
||||
<?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.tmplt.mapper.BOTmpltMapper">
|
||||
|
||||
<!-- 이메일 템플릿 조회 조건 -->
|
||||
<sql id="tmpltEmailListInqireWhere">
|
||||
<![CDATA[
|
||||
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(formDvCd)">
|
||||
<![CDATA[
|
||||
AND FORM_DV_CD = #{formDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
|
||||
<![CDATA[
|
||||
AND FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 메시지 템플릿 조회 조건 -->
|
||||
<sql id="tmpltMssageListInqireWhere">
|
||||
<![CDATA[
|
||||
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(formDvCd)">
|
||||
<![CDATA[
|
||||
AND FORM_DV_CD = #{formDvCd}
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 알림톡 템플릿 조회 조건 -->
|
||||
<sql id="tmpltNtcntalkListInqireWhere">
|
||||
<![CDATA[
|
||||
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(formDvCd)">
|
||||
<![CDATA[
|
||||
AND FORM_DV_CD = #{formDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
|
||||
<![CDATA[
|
||||
AND FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 공통코드 -->
|
||||
<!-- 그룹코드, 양식구분 조회 -->
|
||||
<select id="selectBOTmplatGroupCd"
|
||||
parameterType="java.lang.String"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM GC_CODE
|
||||
WHERE 1 = 1
|
||||
AND GROUP_CD LIKE #{param}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 자동발송 발신주소 조회 -->
|
||||
<select id="selectBOEmailAtmcSndngDsptchAdres"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
resultType="String">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
EMAIL_ATMC_SNDNG_DSPTCH_ADRES
|
||||
FROM GC_SHOP
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 템플릿 -->
|
||||
<!-- 이메일 템플릿 조회 -->
|
||||
<select id="selectBOEmailAtmcSndngTmplatInqireForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
EMAIL_SNDNG_FORM_INNB
|
||||
, SOPMAL_CD
|
||||
, FORM_DV_CD
|
||||
, FORM_DTL_DV_CD
|
||||
, EMAIL_SJ
|
||||
FROM GC_EMAIL_FORM
|
||||
]]>
|
||||
<include refid = "tmpltEmailListInqireWhere"/>
|
||||
<![CDATA[
|
||||
ORDER BY FORM_DTL_DV_CD;
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 템플릿 단건 조회 -->
|
||||
<select id="selectBOEmailAtmcSndngTmplatOneInqireForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
EMAIL_SNDNG_FORM_INNB
|
||||
, SOPMAL_CD
|
||||
, EMAIL_SJ
|
||||
, EMAIL_CN
|
||||
FROM GC_EMAIL_FORM
|
||||
]]>
|
||||
<include refid = "tmpltEmailListInqireWhere"/>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 이메일 템플릿 등록(사용안함) -->
|
||||
<insert id="insertBOEmailTmplat"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(EMAIL_SNDNG_FORM_INNB), 0)+1
|
||||
FROM GC_EMAIL_FORM
|
||||
]]>
|
||||
</selectKey>
|
||||
INSERT INTO GC_EMAIL_FORM (
|
||||
EMAIL_SNDNG_FORM_INNB
|
||||
, SOPMAL_CD
|
||||
, EMAIL_FORM_DV
|
||||
, EMAIL_SJ
|
||||
, EMAIL_CN
|
||||
, USE_AT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{popupInnb}
|
||||
, #{popupNm}
|
||||
, #{popupExpsrBgnDt}
|
||||
, #{popupExpsrEndDt}
|
||||
, #{cnncUrl}
|
||||
, #{popupMgWth}
|
||||
, 'Y'
|
||||
, #{regusr}
|
||||
, NOW()
|
||||
, #{updusr}
|
||||
, NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 이메일 템플릿 수정 -->
|
||||
<update id="updateBOEmailTmplat" parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL_FORM
|
||||
SET
|
||||
EMAIL_SJ = #{emailSj}
|
||||
, EMAIL_CN = #{emailCn}
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = SYSDATE()
|
||||
]]>
|
||||
<include refid = "tmpltEmailListInqireWhere"/>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 메시지 템플릿 -->
|
||||
<!-- 메시지(SMS) 템플릿 조회 -->
|
||||
<select id="selectBOMssageAtmcSndngTmplatInqireForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
FORM.SMS_SNDNG_FORM_INNB
|
||||
, FORM.FORM_DV_CD
|
||||
, FORM.FORM_DTL_DV_CD
|
||||
, CODE.CD_NM
|
||||
, FORM.SMS_CN
|
||||
FROM GC_SMS_FORM FORM
|
||||
INNER JOIN GC_MESSAGE_SNDNG GMS
|
||||
ON FORM.FORM_DV_CD = GMS.FORM_DV_CD
|
||||
AND FORM.FORM_DTL_DV_CD = GMS.FORM_DTL_DV_CD
|
||||
AND FORM.SOPMAL_CD = GMS.SOPMAL_CD
|
||||
AND GMS.EXPSR_AT = 'Y'
|
||||
AND GMS.MNGR_DV = '01'
|
||||
JOIN GC_CODE CODE
|
||||
ON FORM.FORM_DV_CD = CODE.GROUP_CD
|
||||
AND FORM.FORM_DTL_DV_CD = CODE.CD
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
<![CDATA[
|
||||
AND GMS.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DV_CD = #{formDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<![CDATA[
|
||||
ORDER BY GMS.FORM_DTL_DV_CD;
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 메시지 템플릿 등록(사용안함) -->
|
||||
<insert id="insertBOMssageTmplat"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(SMS_SNDNG_FORM_INNB), 0)+1
|
||||
FROM GC_SMS_FORM
|
||||
]]>
|
||||
</selectKey>
|
||||
INSERT INTO GC_SMS_FORM (
|
||||
SMS_SNDNG_FORM_INNB
|
||||
, SOPMAL_CD
|
||||
, FORM_DV
|
||||
, SMS_CN
|
||||
, USE_AT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{popupInnb}
|
||||
, #{popupNm}
|
||||
, #{popupExpsrBgnDt}
|
||||
, #{popupExpsrEndDt}
|
||||
, 'Y'
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
, #{updusr}
|
||||
, SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 메시지 템플릿 수정 -->
|
||||
<update id="updateBOMssageTmplat" parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_SMS_FORM
|
||||
SET
|
||||
SMS_CN = #{dto.smsCn}
|
||||
, UPDUSR = #{dto.updusr}
|
||||
, UPDT_DT = SYSDATE()
|
||||
WHERE SOPMAL_CD = #{dto.sopmalCd}
|
||||
AND FORM_DV_CD = #{dto.formDvCd}
|
||||
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 알림톡 템플릿 조회 -->
|
||||
<select id="selectBONtcntalkAtmcSndngTmplatInqireForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
FORM.NTCNTALK_SNDNG_FORM_INNB
|
||||
, FORM.FORM_DV_CD
|
||||
, FORM.FORM_DTL_DV_CD
|
||||
, CODE.CD_NM
|
||||
, FORM.MSG
|
||||
, FORM.SMS_RPLC_AT
|
||||
, FORM.SMS_CN
|
||||
FROM GC_KAKAO_FORM FORM
|
||||
INNER JOIN GC_MESSAGE_SNDNG GMS
|
||||
ON FORM.FORM_DV_CD = GMS.FORM_DV_CD
|
||||
AND FORM.FORM_DTL_DV_CD = GMS.FORM_DTL_DV_CD
|
||||
AND FORM.SOPMAL_CD = GMS.SOPMAL_CD
|
||||
AND GMS.EXPSR_AT = 'Y'
|
||||
AND GMS.MNGR_DV = '01'
|
||||
JOIN GC_CODE CODE
|
||||
ON FORM.FORM_DV_CD = CODE.GROUP_CD
|
||||
AND FORM.FORM_DTL_DV_CD = CODE.CD
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
<![CDATA[
|
||||
AND GMS.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DV_CD = #{formDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<![CDATA[
|
||||
ORDER BY GMS.FORM_DTL_DV_CD;
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 알림톡 템플릿 조회_팝업 -->
|
||||
<select id="selectBONtcntalkAtmcSndngTmplatUpdtPopupForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE.CD_NM
|
||||
, FORM.MSG
|
||||
, FORM.BTN_TYPE_01
|
||||
, FORM.BTN_NM_01
|
||||
, FORM.BTN_01_URL_01
|
||||
, FORM.BTN_01_URL_02
|
||||
, FORM.BTN_TYPE_02
|
||||
, FORM.BTN_NM_02
|
||||
, FORM.BTN_02_URL_01
|
||||
, FORM.BTN_02_URL_02
|
||||
, FORM.BTN_TYPE_03
|
||||
, FORM.BTN_NM_03
|
||||
, FORM.BTN_03_URL_01
|
||||
, FORM.BTN_03_URL_02
|
||||
, FORM.BTN_TYPE_04
|
||||
, FORM.BTN_NM_04
|
||||
, FORM.BTN_04_URL_01
|
||||
, FORM.BTN_04_URL_02
|
||||
, FORM.BTN_TYPE_05
|
||||
, FORM.BTN_NM_05
|
||||
, FORM.BTN_05_URL_01
|
||||
, FORM.BTN_05_URL_02
|
||||
, FORM.SMS_RPLC_AT
|
||||
, FORM.SMS_CN
|
||||
FROM GC_KAKAO_FORM FORM
|
||||
JOIN GC_CODE CODE
|
||||
ON FORM.FORM_DV_CD = CODE.GROUP_CD
|
||||
AND FORM.FORM_DTL_DV_CD = CODE.CD
|
||||
]]>
|
||||
<include refid = "tmpltNtcntalkListInqireWhere"/>
|
||||
</select>
|
||||
|
||||
<!-- 알림톡 템플릿 등록(사용안함) -->
|
||||
<insert id="insertBOKakaoForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(NTCNTALK_SNDNG_FORM_INNB), 0)+1
|
||||
FROM GC_KAKAO_FORM
|
||||
]]>
|
||||
</selectKey>
|
||||
INSERT INTO GC_KAKAO_FORM (
|
||||
NTCNTALK_SNDNG_FORM_INNB
|
||||
, SOPMAL_CD
|
||||
, KAKAO_CD
|
||||
, FORM_DV
|
||||
, SMS_RPLC_AT
|
||||
, SMS_RPLC_CN
|
||||
, USE_AT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{popupInnb}
|
||||
, #{popupNm}
|
||||
, #{popupExpsrBgnDt}
|
||||
, #{popupExpsrEndDt}
|
||||
, 'Y'
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
, #{updusr}
|
||||
, SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 알림톡 템플릿 등록_버튼(사용안함) -->
|
||||
<insert id="insertBOKakaoFormButton"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(NTCNTALK_SNDNG_FORM_INNB), 0)+1
|
||||
FROM GC_KAKAO_FORM_BUTTON
|
||||
]]>
|
||||
</selectKey>
|
||||
INSERT INTO GC_KAKAO_FORM_BUTTON (
|
||||
NTCNTALK_SNDNG_FORM_INNB
|
||||
, BUTTON_INNB
|
||||
, BUTTON_NM
|
||||
, BUTTON_URL
|
||||
, USE_AT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{popupInnb}
|
||||
, #{popupNm}
|
||||
, #{popupExpsrBgnDt}
|
||||
, #{popupExpsrEndDt}
|
||||
, 'Y'
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
, #{updusr}
|
||||
, SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 알림톡 템플릿 수정 -->
|
||||
<update id="updateBOKakaoForm" parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_KAKAO_FORM
|
||||
SET
|
||||
MSG = #{dto.msg}
|
||||
, SMS_CN = #{dto.smsCn}
|
||||
, SMS_RPLC_AT = #{dto.smsRplcAt}
|
||||
, UPDUSR = #{dto.updusr}
|
||||
, UPDT_DT = SYSDATE()
|
||||
WHERE FORM_DV_CD = #{dto.formDvCd}
|
||||
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 알림톡 템플릿 수정_팝업 -->
|
||||
<update id="updateBOKakaoFormPopup" parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_KAKAO_FORM
|
||||
SET
|
||||
MSG = #{msg}
|
||||
, BTN_TYPE_01 = #{btnType01}
|
||||
, BTN_NM_01 = #{btnNm01}
|
||||
, BTN_01_URL_01 = #{btn01Url01}
|
||||
, BTN_01_URL_02 = #{btn01Url02}
|
||||
, BTN_TYPE_02 = #{btnType02}
|
||||
, BTN_NM_02 = #{btnNm02}
|
||||
, BTN_02_URL_01 = #{btn02Url01}
|
||||
, BTN_02_URL_02 = #{btn02Url02}
|
||||
, BTN_TYPE_03 = #{btnType03}
|
||||
, BTN_NM_03 = #{btnNm03}
|
||||
, BTN_03_URL_01 = #{btn03Url01}
|
||||
, BTN_03_URL_02 = #{btn03Url02}
|
||||
, BTN_TYPE_04 = #{btnType04}
|
||||
, BTN_NM_04 = #{btnNm04}
|
||||
, BTN_04_URL_01 = #{btn04Url01}
|
||||
, BTN_04_URL_02 = #{btn04Url02}
|
||||
, BTN_TYPE_05 = #{btnType05}
|
||||
, BTN_NM_05 = #{btnNm05}
|
||||
, BTN_05_URL_01 = #{btn05Url01}
|
||||
, BTN_05_URL_02 = #{btn05Url02}
|
||||
, SMS_RPLC_AT = #{smsRplcAt}
|
||||
, SMS_CN = #{smsCn}
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = SYSDATE()
|
||||
WHERE FORM_DV_CD = #{formDvCd}
|
||||
AND FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
<!-- 템플릿 사용 그룹 조회 -->
|
||||
<select id="selectBOTmplatGroup"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
*
|
||||
FROM GC_CODE GC
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
SUBSTRING_INDEX(GMS.FORM_DV_CD, '_', 2) AS GROUP_CD
|
||||
, SUBSTRING_INDEX(GMS.FORM_DV_CD, '_', -1) AS CD
|
||||
FROM GC_MESSAGE_SNDNG GMS
|
||||
WHERE GMS.SOPMAL_CD = #{sopmalCd}
|
||||
AND GMS.EXPSR_AT = 'Y'
|
||||
AND GMS.MNGR_DV = '01'
|
||||
GROUP BY GMS.FORM_DV_CD
|
||||
) TB
|
||||
ON GC.GROUP_CD = TB.GROUP_CD
|
||||
AND GC.CD = TB.CD
|
||||
]]>
|
||||
</select>
|
||||
<!-- 템플릿 사용 그룹별 폼 조회 -->
|
||||
<select id="selectBOTmplatFormGroup"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
*
|
||||
FROM GC_CODE GC
|
||||
INNER JOIN GC_MESSAGE_SNDNG GMS
|
||||
ON GC.GROUP_CD = GMS.FORM_DV_CD
|
||||
AND GC.CD = GMS.FORM_DTL_DV_CD
|
||||
WHERE 1=1
|
||||
AND GMS.SOPMAL_CD = #{sopmalCd}
|
||||
AND GMS.EXPSR_AT = 'Y'
|
||||
AND GMS.MNGR_DV = '01'
|
||||
]]>
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user