Files
sake_batch/src/main/resources/mybatis/xml/mapper/sure/SureMapper.xml
2025-12-18 10:04:46 +09:00

710 lines
14 KiB
XML

<?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.mapper.sure.SureMapper">
<!-- 수정 대상 조회(슈어엠) -->
<select id="selectMsgSureCorrList"
resultType="dataMap">
<![CDATA[
SELECT
SEQNO
, ETC2
, ETC3
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 = #{smsInnb}
AND ETC3 = #{smsToInnb}
AND ETC5 = #{sopmalCd}
]]>
</select>
<!-- 수정 대상 조회(슈어엠) -->
<select id="selectMssageSureSttusInqire"
resultType="dataMap">
<![CDATA[
SELECT
TB.STTUS
, TB.ERRCODE
, TB.SNDNG_IDNB
, TB.BIZTYPE
, TB.DV
, TB.FILE
, TB.ETC2
, TB.ETC3
, TB.ETC5
FROM
(
SELECT
(
IF(RESULT = '0' OR RESULT = '1', 'WAIT',
IF(RESULT = 'R' AND (REQTIME > DATE_ADD(NOW(), INTERVAL 5 MINUTE) AND REQTIME > '00000000000000'), 'WAIT',
IF(RESULT = 'R' AND (DATE_ADD(NOW(), INTERVAL 5 MINUTE) >= REQTIME AND REQTIME > '00000000000000'), 'SEND',
IF(RESULT = 'Y', 'SEND',
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
)
)
)
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
, ETC2
, ETC3
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 = #{smsInnb}
AND ETC3 = #{smsToInnb}
AND ETC5 = #{sopmalCd}
UNION ALL
SELECT
(
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
, ETC2
, ETC3
, ETC5
FROM
]]>
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(yyyyMM)">
SUREData_log_${yyyyMM}
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(yyyyMM)">
SUREData_log
</when>
</choose>
<![CDATA[
WHERE 1=1
AND ETC2 = #{smsInnb}
AND ETC3 = #{smsToInnb}
AND ETC5 = #{sopmalCd}
) TB
]]>
</select>
<!-- 발송내역 수정 -->
<update id="updateMssageStatusUpdt">
<foreach collection="list" item="data" index="index" separator=",">
UPDATE
GC_SMS_TO
SET
STTUS = #{data.sttus},
RSLT_CD #{data.errorcode}
WHERE 1=1
AND SMS_INNB = #{data.smsInnb}
AND SNDNG_IDNB = #{data.sndngIdnb}
AND SMS_TO_INNB = #{data.smsToInnb}
</foreach>
</update>
<!-- ##############################################################################################
메시지 공통 START
################################################################################################# -->
<!-- SMS 슈어엠테이블 등록 -->
<insert id="insertMssageNtcnSureRegist">
<selectKey order="BEFORE" keyProperty="seqno" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(SEQNO), 0)+1
FROM SUREData
]]>
</selectKey>
INSERT INTO SUREData (
SEQNO
, INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC5
, AGENT_FLAG
)
VALUES
<foreach collection="list" item="surem" index="index" separator=",">
(
#{seqno} + #{index}
, DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{surem.usercode}
, #{surem.deptcode}
, #{surem.biztype}
, #{surem.yellowidKey}
, #{surem.reqname}
, #{surem.reqphone}
, #{surem.callphone}
, #{surem.subject}
, #{surem.msg}
, #{surem.reqtime}
, #{surem.senttime}
, #{surem.recvtime}
, #{surem.result}
, #{surem.kind}
, #{surem.fkcontent}
, #{surem.retry}
, #{surem.resend}
, #{surem.templatecode}
, #{surem.retext}
, #{surem.btnType01}
, #{surem.btnNm01}
, #{surem.btn01url01}
, #{surem.btn01url02}
, #{surem.btnType02}
, #{surem.btnNm02}
, #{surem.btn02url01}
, #{surem.btn02url02}
, #{surem.btnType03}
, #{surem.btnNm03}
, #{surem.btn03url01}
, #{surem.btn03url02}
, #{surem.btnType04}
, #{surem.btnNm04}
, #{surem.btn04url01}
, #{surem.btn04url02}
, #{surem.btnType05}
, #{surem.btnNm05}
, #{surem.btn05url01}
, #{surem.btn05url02}
, #{surem.etc1}
, #{surem.etc2}
, #{surem.etc5}
, #{surem.agentFlag}
)
</foreach>
</insert>
<!-- SMS 슈어엠테이블 로그 등록 -->
<insert id="insertMssageNtcnSureLogRegist">
<selectKey order="BEFORE" keyProperty="seqno" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(SEQNO), 0)+1
FROM SUREData_log
]]>
</selectKey>
INSERT INTO SUREData_log (
SEQNO
, INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC5
, AGENT_FLAG
)
VALUES
<foreach collection="list" item="surem" index="index" separator=",">
(
#{seqno} + #{index}
, DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{surem.usercode}
, #{surem.deptcode}
, #{surem.biztype}
, #{surem.yellowidKey}
, #{surem.reqname}
, #{surem.reqphone}
, #{surem.callphone}
, #{surem.subject}
, #{surem.msg}
, #{surem.reqtime}
, #{surem.senttime}
, #{surem.recvtime}
, #{surem.result}
, #{surem.kind}
, #{surem.fkcontent}
, #{surem.retry}
, #{surem.resend}
, #{surem.templatecode}
, #{surem.retext}
, #{surem.btnType01}
, #{surem.btnNm01}
, #{surem.btn01url01}
, #{surem.btn01url02}
, #{surem.btnType02}
, #{surem.btnNm02}
, #{surem.btn02url01}
, #{surem.btn02url02}
, #{surem.btnType03}
, #{surem.btnNm03}
, #{surem.btn03url01}
, #{surem.btn03url02}
, #{surem.btnType04}
, #{surem.btnNm04}
, #{surem.btn04url01}
, #{surem.btn04url02}
, #{surem.btnType05}
, #{surem.btnNm05}
, #{surem.btn05url01}
, #{surem.btn05url02}
, #{surem.etc1}
, #{surem.etc2}
, #{surem.etc5}
, #{surem.agentFlag}
)
</foreach>
</insert>
<!-- 슈어테이블 대상 수 조회 -->
<select id="selectMssageSureSeqNo"
resultType="dataMap">
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 IN
<foreach item="item" index="index" collection="smsInnbList"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 대상수 수정 대상 조회 -->
<select id="selectSureCntList"
resultType="dataMap">
<![CDATA[
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC3
, ETC5
, INTIME
FROM
SUREData
WHERE 1=1
AND SEQNO IN
]]>
<foreach item="item" index="index" collection="seqSumList"
open="(" separator="," close=")">
#{item.seqno}
</foreach>
</select>
<!-- 대상수 수정 대상 조회 -->
<select id="selectSureCntList2" parameterType="java.util.List"
resultType="dataMap">
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC3
, ETC5
, INTIME
FROM
SUREData
WHERE 1=1
AND ETC2 IN
<foreach item="item" index="index" collection="smsList"
open="(" separator="," close=")">
#{item.smsInnb}
</foreach>
ORDER BY ETC2, ETC5, SEQNO ASC
</select>
<select id="selectSureUpdtList"
resultType="dataMap">
<![CDATA[
SELECT
MAX(SEQNO) AS SEQNO
, ETC2
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 IN
]]>
<foreach item="item" index="index" collection="smsList"
open="(" separator="," close=")">
#{item.smsInnb}
</foreach>
GROUP BY ETC2, ETC5
</select>
<!-- 슈어테이블 대상 수 조회 -->
<select id="selectMssageSureBySeqno"
resultType="dataMap">
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC5
FROM
SUREData
WHERE 1=1
AND SEQNO IN
<foreach item="item" index="index" collection="smsInnbList"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 슈어엠 발송상태 갱신 -->
<select id="selectMssageSureSttusInqireLog">
SELECT
TB.STTUS
, TB.ERRCODE
, TB.SNDNG_IDNB
, TB.BIZTYPE
, TB.DV
, TB.FILE
FROM
(
SELECT
(
IF(RESULT = '0' OR RESULT = '1', 'WAIT',
IF(RESULT = 'R' AND (
REQTIME > DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 5 MINUTE), '%Y%m%d%H%i%s')
AND REQTIME > '00000000000000'
), 'WAIT',
IF(RESULT = 'R' AND (
DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 5 MINUTE), '%Y%m%d%H%i%s') >= REQTIME
AND REQTIME > '00000000000000'
), 'SEND',
IF(RESULT = 'Y', 'SEND',
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
)
)
)
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, ETC2 AS SMS_INNB
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
FROM
SUREData
WHERE
SEQNO IN
<foreach item="item" index="index" collection="syncUpdtToList" open="(" separator="," close=")">
#{item.sndngIdnb}
</foreach>
UNION ALL
SELECT
(
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, ETC2 AS SMS_INNB
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
FROM
SUREData_log_${logDate}
WHERE
SEQNO IN
<foreach item="item" index="index" collection="syncUpdtToList" open="(" separator="," close=")">
#{item.sndngIdnb}
</foreach>
) TB
</select>
<!-- SMS 슈어엠테이블 등록 -->
<insert id="insertMssageSureRegistOld"
useGeneratedKeys="true" keyProperty="seqno">
<![CDATA[
INSERT INTO SUREData (
INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC3
, ETC4
, ETC5
, AGENT_FLAG
)
]]>
VALUES
<foreach collection="list" item="surem" index="index" separator=",">
(
DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{surem.usercode}
, #{surem.deptcode}
, #{surem.biztype}
, #{surem.yellowidKey}
, #{surem.reqname}
, #{surem.reqphone}
, #{surem.callphone}
, #{surem.subject}
, #{surem.msg}
, #{surem.reqtime}
, #{surem.senttime}
, #{surem.recvtime}
, #{surem.result}
, #{surem.kind}
, #{surem.fkcontent}
, #{surem.retry}
, #{surem.resend}
, #{surem.templatecode}
, #{surem.retext}
, #{surem.btnType01}
, #{surem.btnNm01}
, #{surem.btn01url01}
, #{surem.btn01url02}
, #{surem.btnType02}
, #{surem.btnNm02}
, #{surem.btn02url01}
, #{surem.btn02url02}
, #{surem.btnType03}
, #{surem.btnNm03}
, #{surem.btn03url01}
, #{surem.btn03url02}
, #{surem.btnType04}
, #{surem.btnNm04}
, #{surem.btn04url01}
, #{surem.btn04url02}
, #{surem.btnType05}
, #{surem.btnNm05}
, #{surem.btn05url01}
, #{surem.btn05url02}
, #{surem.etc1}
, #{surem.etc2}
, #{surem.etc3}
, #{surem.etc4}
, #{surem.etc5}
, #{surem.agentFlag}
)
</foreach>
</insert>
<!-- SMS 슈어엠테이블 등록 -->
<insert id="insertMssageSureRegist"
useGeneratedKeys="true" keyProperty="seqno">
<![CDATA[
INSERT INTO SUREData (
INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC3
, ETC4
, ETC5
, AGENT_FLAG
)
]]>
VALUES
(
DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{usercode}
, #{deptcode}
, #{biztype}
, #{yellowidKey}
, #{reqname}
, #{reqphone}
, #{callphone}
, #{subject}
, #{msg}
, #{reqtime}
, #{senttime}
, #{recvtime}
, #{result}
, #{kind}
, #{fkcontent}
, #{retry}
, #{resend}
, #{templatecode}
, #{retext}
, #{btnType01}
, #{btnNm01}
, #{btn01url01}
, #{btn01url02}
, #{btnType02}
, #{btnNm02}
, #{btn02url01}
, #{btn02url02}
, #{btnType03}
, #{btnNm03}
, #{btn03url01}
, #{btn03url02}
, #{btnType04}
, #{btnNm04}
, #{btn04url01}
, #{btn04url02}
, #{btnType05}
, #{btnNm05}
, #{btn05url01}
, #{btn05url02}
, #{etc1}
, #{etc2}
, #{etc3}
, #{etc4}
, #{etc5}
, #{agentFlag}
)
</insert>
</mapper>