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,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>