<?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="kr.xit.biz.ktgbs.mapper.IBizKtGbsMapper">

    <update id="updateRlaybsnmKtBcInfo" parameterType="kr.xit.biz.ens.model.cmm.CmmEnsRlaybsnmDTO">
        /** ens-kt-oracle-mapper|updateRlaybsnmKtBcInfo-kt BC token 정보 갱신|julim */
        UPDATE tb_ens_rlaybsnm_manage
           SET kt_scope = #{ktScope},
        <choose>
            <when test="profile eq 'prod'">
               kt_prod_access_token = #{ktAccessToken},
               kt_prod_token_expires_in = #{ktTokenExpiresIn},
               kt_prod_token_jti = #{ktTokenJti},
            </when>
            <otherwise>
               kt_dev_access_token = #{ktAccessToken},
               kt_dev_token_expires_in = #{ktTokenExpiresIn},
               kt_dev_token_jti = #{ktTokenJti},
            </otherwise>
        </choose>
               updt_dt = sysdate,
               updusr = 'api-biz'
         WHERE signgu_code = #{signguCode}
           AND ffnlg_code = #{ffnlgCode}
    </update>

    <update id="updateRlaybsnmKtGbsInfo" parameterType="kr.xit.biz.ens.model.cmm.CmmEnsRlaybsnmDTO">
        /** ens-kt-oracle-mapper|updateRlaybsnmKtGbsInfo-kt GIBIS token 정보 갱신|julim */
        UPDATE tb_ens_rlaybsnm_manage
        SET
        <choose>
            <when test="profile eq 'prod'">
                kt_prod_access_token = #{ktAccessToken},
            </when>
            <otherwise>
                kt_dev_access_token = #{ktAccessToken},
            </otherwise>
        </choose>
        updt_dt = sysdate,
        updusr = 'api-biz'
        WHERE signgu_code = #{signguCode}
        AND ffnlg_code = #{ffnlgCode}
    </update>

    <update id="updateKtGbsDtl" parameterType="kr.xit.biz.ens.model.ktgbs.KtGbsDTO$MsgRsltReqsData">
        /** ens-kt-oracle-mapper|updateKtGbsDtl-kt GIBIS 메세지 수신결과 상세 반영|julim  */
        UPDATE tb_ens_kt_gbs
           SET mms_sndg_rslt_sqno = #{mmsSndgRsltSqno}              /* MMS 발송 결과 상태 순번 - 1:수신시, 2:발송시*/
              , prcs_dt = #{prcsDt}                                 /* 처리일자 */
              , mbl_bzowr_dvcd = #{mblBzowrDvcd}                    /* 모바일 사업자 구분 : 01:KT, 02:SKT, 03:LGT */
              , rl_mms_sndg_telno = #{rlMmsSndgTelno}               /* 실제 발송 번호 */
              , mms_rslt_dvcd = #{mmsRsltDvcd}                      /* 발송결과코드 */
              , mms_sndg_tmst = NVL(#{mmsSndgTmst}, mms_sndg_tmst)  /* 발송 타임 스탬프 */
              , mms_rcv_tmst = NVL(#{mmsRcvTmst}, mms_rcv_tmst)     /* 수신 타임 스탬프 */
              , mms_rdg_tmst = NVL(#{mmsRdgTmst}, mms_rdg_tmst)     /* 열람 타임 스탬프 */
              , updt_dt = sysdate
              , updusr = 'api_inbound'
          WHERE src_key = #{srcKey}
    </update>

    <insert id="saveKtGbsCntcSndngResult" parameterType="kr.xit.biz.ens.model.ktgbs.KtGbsDTO$MsgRsltReqsData">
        /** ens-kt-oracle-mapper|saveKtGbsCntcSndngResult-KT GIBIS 연계발송결과반영|julim */
        MERGE INTO tb_elctrn_ntic_sndng_result tensr
        USING (SELECT unity_sndng_detail_id FROM tb_ens_kt_gbs WHERE src_key = #{srcKey}) tekg
           ON (tensr.elctrn_ntic_sndng_detail_id =  tekg.unity_sndng_detail_id)
         WHEN MATCHED THEN
              UPDATE
                 SET sndng_result_sttus = NVL(#{mmsRsltDvcd}, sndng_result_sttus)
                   , requst_dt = NVL(#{mmsSndgTmst}, requst_dt) /* 송신(요청) 일시 */
                   , inqire_dt = NVL(#{mmsRcvTmst}, inqire_dt)  /* 수신(조회) 일시 */
                   , readng_dt = NVL(#{mmsRdgTmst}, readng_dt)  /* 최초열람일시 */
                   , last_updt_dt = sysdate
         WHEN NOT MATCHED THEN
              INSERT (
                    elctrn_ntic_sndng_detail_id,    /* 통합 발송 상세 ID*/
                    sndng_se,                       /* 발송구분코드 - KAKAO-NEW|KT-GBS */
                    sndng_result_sttus,             /* 발송결과상태 */
                    requst_dt,                      /* 송신(요청) 일시 */
                    inqire_dt,                      /* 수신(조회) 일시 */
                    readng_dt,                      /* 최초열람일시 */
                    error_cn,                       /* 에러내용 */
                    regist_dt,
                    register
              ) VALUES (
                    (SELECT tekg.unity_sndng_detail_id FROM tb_ens_kt_gbs tekg WHERE tekg.src_key = #{srcKey})
                  , 'ktGibis'
                  , #{mmsRsltDvcd}                  /* 발송결과상태 */
                  , #{mmsSndgTmst}                  /* 송신(요청) 일시 */
                  , #{mmsRcvTmst}                   /* 수신(조회) 일시 */
                  , #{mmsRdgTmst}                   /* 최초열람일시 */
                  , ''                              /* 에러내용 */
                  , sysdate
                  , 'api_inbound'
              )
    </insert>
</mapper>
