초기셋팅
This commit is contained in:
573
src/main/resources/mybatis/xml/mapper/gcone/EmailMapper.xml
Normal file
573
src/main/resources/mybatis/xml/mapper/gcone/EmailMapper.xml
Normal file
@@ -0,0 +1,573 @@
|
||||
<?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.gcone.EmailMapper">
|
||||
<select id="selectBOEmailSndngTrgetSnb"
|
||||
parameterType="java.lang.Integer"
|
||||
resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
TRGET_SNB
|
||||
FROM GC_EMAIL_TO
|
||||
WHERE 1=1
|
||||
AND EMAIL_SNDNG_INNB IN
|
||||
]]>
|
||||
<foreach collection="emailSndngList" item="item" open="(" separator="," close=")">
|
||||
#{item.emailSndngInnb}
|
||||
</foreach>
|
||||
</select>
|
||||
<!-- 회원 2년 메일 등록 -->
|
||||
<insert id="insertMbrMarktAgreEmail">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_EMAIL (
|
||||
SOPMAL_CD
|
||||
, SNDNG_LC
|
||||
, SJ
|
||||
, CN
|
||||
, SNDR_EMAIL
|
||||
, RECPTN_RJCT_URL
|
||||
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
|
||||
, REGUSR -- 등록자 고유번호
|
||||
, REGIST_DT -- 등록일 현재 NOW()
|
||||
, EMAIL_SNDNG_FORM_INNB
|
||||
)
|
||||
SELECT
|
||||
S.SOPMAL_CD
|
||||
, NULL SNDNG_LC
|
||||
, EF.EMAIL_SJ
|
||||
, EF.EMAIL_CN
|
||||
, HEX(AES_ENCRYPT(S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES, #{secretKey}))
|
||||
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
|
||||
, '03' REGUSR_DV
|
||||
, 0 REGUSR
|
||||
, NOW() REGIST_DT
|
||||
, '3'
|
||||
FROM GC_SHOP S
|
||||
INNER JOIN GC_EMAIL_FORM EF
|
||||
ON S.SOPMAL_CD = EF.SOPMAL_CD
|
||||
AND EF.FORM_DV_CD = 'FORM_DV_CMMN'
|
||||
AND EF.FORM_DTL_DV_CD = '01' -- 광고동의
|
||||
AND EF.USE_AT = 'Y'
|
||||
INNER JOIN GC_MESSAGE_SNDNG MS
|
||||
ON S.SOPMAL_CD = MS.SOPMAL_CD
|
||||
AND MS.FORM_DV_CD = 'FORM_DV_CMMN'
|
||||
AND MS.FORM_DTL_DV_CD = '01'
|
||||
AND MS.USE_AT = 'Y'
|
||||
]]>
|
||||
</insert>
|
||||
<!-- 회원 2년 메일 대상자 -->
|
||||
<insert id="insertMbrMarktAgreEmailTo">
|
||||
INSERT INTO GC_EMAIL_TO (
|
||||
EMAIL_SNDNG_INNB
|
||||
, MBR_INNB
|
||||
, RECPNT_EMAIL
|
||||
, RECPNT_NM
|
||||
, STTUS
|
||||
, SNDNG_DT
|
||||
, RSLT_CD
|
||||
, SUBST_DATA
|
||||
)
|
||||
<![CDATA[
|
||||
SELECT
|
||||
GE.EMAIL_SNDNG_INNB
|
||||
, MBR.MBR_INNB -- 회원번호
|
||||
, MBR.EMAIL AS RECPTN_EMAIL -- 이메일
|
||||
, MBR.MBR_NM
|
||||
, '3'
|
||||
, NOW()
|
||||
, NULL RSLT_CD
|
||||
, CONCAT('{"mbrid"', ':', '"', IFNULL(MBR.MBR_ID, ''), '"'
|
||||
, ',"shopName"',':', '"', IFNULL(SHOP.SOPMAL_NM, ''), '"'
|
||||
, ',"marktRecptnAgreAt"',':', '"', IFNULL( CASE
|
||||
WHEN MA.MARKT_RECPTN_AGRE_AT = 'Y' THEN '동의함'
|
||||
ELSE '미동의'
|
||||
END, ''), '"'
|
||||
, ',"marktRecptnAgreUpdtDt"',':', '"', IFNULL(DATE_FORMAT(MA.MARKT_RECPTN_AGRE_UPDT_DT, '%Y-%m-%d %H:%i:%s'), ''), '"'
|
||||
, ',"cscTelnb"',':', '"', IFNULL(SHOP.SMS_ATMC_SNDNG_DSPTCH_NB, ''), '"'
|
||||
, ',"rejectTelnb"',':', '"', IFNULL(SHOP.REJECT_TELNB, ''), '"'
|
||||
, ',"shopDomain"',':', '"', IFNULL(SHOP.PC_DOMN_ADRES, ''), '"'
|
||||
, ',"operBizrnb"',':', '"', IFNULL(COM.BIZRNB, ''), '"'
|
||||
, ',"operMobDclNb"',':', '"', IFNULL(COM.MOB_DCL_NB, ''), '"'
|
||||
, ',"operReprsntvnm"',':', '"', IFNULL(COM.REPRSNTVNM, ''), '"'
|
||||
, ',"operRnmAdres"',':', '"', IFNULL(COM.RNM_ADRES, ''), '"'
|
||||
, ',"operDtlAdres"',':', '"', IFNULL(COM.DTL_ADRES, ''), '"'
|
||||
, ',"operTelnb"',':', '"', IFNULL(COM.TELNB, ''), '"'
|
||||
'}')
|
||||
FROM
|
||||
GC_MEMBER MBR -- 회원테이블
|
||||
INNER JOIN GC_MARKETING_AGREE MA -- 마케팅 동의
|
||||
ON MBR.MBR_INNB = MA.MBR_INNB
|
||||
AND MBR.MBR_DV_CD = MA.MBR_DV_CD
|
||||
AND MA.MARKT_RECPTN_AGRE_AT = 'Y' -- 동의 대상자조회
|
||||
INNER JOIN GC_SHOP SHOP -- 쇼핑몰 정보
|
||||
ON MA.SOPMAL_CD = SHOP.SOPMAL_CD
|
||||
INNER JOIN GC_SHOP_COMPANY SC -- 쇼핑몰운영사
|
||||
ON SHOP.SOPMAL_CD = SC.SOPMAL_CD
|
||||
AND SC.BSNM_DV_CD = '02'
|
||||
INNER JOIN GC_COMPANY COM -- 법인
|
||||
ON SC.BSNM_INNB = COM.BSNM_INNB
|
||||
INNER JOIN GC_MESSAGE_SNDNG GMS -- 자동발송관리
|
||||
ON GMS.SOPMAL_CD = SHOP.SOPMAL_CD
|
||||
AND GMS.FORM_DV_CD = 'FORM_DV_CMMN'
|
||||
AND GMS.FORM_DTL_DV_CD = '01'
|
||||
INNER JOIN GC_EMAIL GE
|
||||
ON GE.SOPMAL_CD = GMS.SOPMAL_CD
|
||||
AND GE.EMAIL_SNDNG_FORM_INNB = '3'
|
||||
WHERE 1=1
|
||||
AND MBR.USE_AT = 'Y' -- 멤버 쿼리에는 다 들어가야 합니다. 중요***
|
||||
AND MBR.EMAIL > '' -- 이메일 있는 경우만 이메일
|
||||
AND TIMESTAMPDIFF(MONTH, IFNULL(MA.MARKT_RECPTN_AGRE_UPDT_DT, MA.UPDT_DT), CURDATE()) % 24 BETWEEN 22 AND 23
|
||||
AND (TIMESTAMPDIFF(MONTH, IFNULL(MA.MARKT_RECPTN_AGRE_UPDT_DT, MA.UPDT_DT), CURDATE()) <= 24
|
||||
OR TIMESTAMPDIFF(MONTH, MA.MARKT_RECPTN_AGRE_TRNSMIS_DT, CURDATE()) <=24 )
|
||||
AND MARKT_RECPTN_AGRE_TRNSMIS_DT < DATE_SUB(CURDATE(), INTERVAL 18 MONTH) -- 넉넉하게 18개월 이내 문자 나간 애들은 제외
|
||||
LIMIT 10000
|
||||
]]>
|
||||
</insert>
|
||||
<select id="selectMarktAgreTrgtList"
|
||||
resultType="dataMap">
|
||||
</select>
|
||||
|
||||
<insert id="insertEmailLog">
|
||||
<selectKey order="BEFORE" keyProperty="emailLogInnb" resultType="java.math.BigInteger">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(EMAIL_LOG_INNB), 0)+1
|
||||
FROM GC_EMAIL_LOG
|
||||
]]>
|
||||
</selectKey>
|
||||
INSERT IGNORE INTO GC_EMAIL_LOG (
|
||||
SOPMAL_CD
|
||||
, MBR_INNB
|
||||
, ATMC_SNDNG_AT
|
||||
, SNDNG_CNT
|
||||
, SNDER
|
||||
, RCVER
|
||||
, SJ
|
||||
, CN
|
||||
, EMAIL_SNDNG_FORM_INNB
|
||||
, ORDR_INNB
|
||||
, STTUS
|
||||
, REGIST_DT
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="list" item="mssage" index="index" separator=",">
|
||||
(
|
||||
#{mssage.sopmalCd}
|
||||
, #{mssage.mbrInnb}
|
||||
, #{mssage.atmcSndngAt}
|
||||
, #{mssage.sndngCnt}
|
||||
, HEX(AES_ENCRYPT(#{mssage.snder}, #{mssage.secretKey}))
|
||||
, HEX(AES_ENCRYPT(#{mssage.rcver}, #{mssage.secretKey}))
|
||||
, #{mssage.sj}
|
||||
, #{mssage.cn}
|
||||
, #{mssage.emailSndngFormInnb}
|
||||
, #{mssage.ordrInnb}
|
||||
, #{mssage.sttus}
|
||||
, NOW()
|
||||
)
|
||||
</foreach>
|
||||
|
||||
</insert>
|
||||
|
||||
<!-- 상태 수정 -->
|
||||
<update id="updateMbrMarktAgreEmailSttus">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL AS EMAIL,
|
||||
(SELECT
|
||||
ET.EMAIL_SNDNG_INNB
|
||||
FROM GC_EMAIL_TO ET
|
||||
WHERE ET.STTUS = '3'
|
||||
GROUP BY ET.EMAIL_SNDNG_INNB ) S
|
||||
SET EMAIL.EMAIL_SNDNG_FORM_INNB = '0'
|
||||
WHERE 1 = 1
|
||||
AND EMAIL.EMAIL_SNDNG_FORM_INNB = '3'
|
||||
AND EMAIL.EMAIL_SNDNG_INNB = S.EMAIL_SNDNG_INNB
|
||||
]]>
|
||||
</update>
|
||||
<!-- 상태 삭제 -->
|
||||
<delete id="deleteMbrMarktAgreEmail">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_EMAIL
|
||||
WHERE 1 = 1
|
||||
AND EMAIL_SNDNG_FORM_INNB = '3'
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<!-- 상태 수정 -->
|
||||
<update id="updateEmailSttus">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL AS EMAIL,
|
||||
(SELECT
|
||||
ET.EMAIL_SNDNG_INNB
|
||||
FROM GC_EMAIL_TO ET
|
||||
WHERE ET.STTUS = #{sttus}
|
||||
GROUP BY ET.EMAIL_SNDNG_INNB ) S
|
||||
SET EMAIL.EMAIL_SNDNG_FORM_INNB = '0'
|
||||
WHERE 1 = 1
|
||||
AND EMAIL.EMAIL_SNDNG_FORM_INNB = #{sttus}
|
||||
AND EMAIL.EMAIL_SNDNG_INNB = S.EMAIL_SNDNG_INNB
|
||||
]]>
|
||||
</update>
|
||||
<!-- 상태 삭제 -->
|
||||
<delete id="deleteEmailNonTrgt">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_EMAIL
|
||||
WHERE 1 = 1
|
||||
AND EMAIL_SNDNG_FORM_INNB = #{sttus}
|
||||
]]>
|
||||
</delete>
|
||||
<!-- 이메일 발신 대상자 조회 -->
|
||||
<select id="selectEmailVoList">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
GET2.EMAIL_SNDNG_INNB
|
||||
, GET2.TRGET_SNB
|
||||
, GET2.MBR_INNB
|
||||
, CAST(AES_DECRYPT(UNHEX(GET2.RECPNT_EMAIL) , #{secretKey}) AS CHAR(50)) AS RECPNT_EMAIL
|
||||
, GET2.RECPNT_NM
|
||||
, GET2.STTUS
|
||||
, GET2.SNDNG_DT
|
||||
, GET2.RSLT_CD
|
||||
, GE.SOPMAL_CD
|
||||
, GE.SJ
|
||||
, GE.CN
|
||||
, CAST(AES_DECRYPT(UNHEX(GE.SNDR_EMAIL), #{secretKey}) AS CHAR(50)) AS SNDR_EMAIL
|
||||
, GE.RECPTN_RJCT_URL
|
||||
, GE.REGUSR_DV
|
||||
, GE.REGIST_DT
|
||||
, GE.EMAIL_SNDNG_FORM_INNB
|
||||
, GET2.SUBST_DATA
|
||||
, SHOP.SOPMAL_NM
|
||||
FROM GC_EMAIL_TO GET2
|
||||
INNER JOIN GC_EMAIL GE
|
||||
ON GET2.EMAIL_SNDNG_INNB = GE.EMAIL_SNDNG_INNB
|
||||
INNER JOIN GC_SHOP SHOP
|
||||
ON SHOP.SOPMAL_CD = GE.SOPMAL_CD
|
||||
WHERE 1=1
|
||||
AND GET2.STTUS = #{sttus}
|
||||
AND DATE(GE.REGIST_DT) = CURDATE()
|
||||
ORDER BY GET2.EMAIL_SNDNG_INNB ASC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 발송여부 업데이트 -->
|
||||
<update id="updateBOEmailSndng">
|
||||
<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>
|
||||
<update id="updateEmailToSttus">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL_TO AS EMAILTO
|
||||
SET EMAILTO.STTUS = 'REG'
|
||||
WHERE 1 = 1
|
||||
AND EMAILTO.STTUS = #{sttus}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<update id="updateMbrMarktAgreEmailToSttus">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL_TO AS EMAILTO
|
||||
SET EMAILTO.STTUS = 'REG'
|
||||
WHERE 1 = 1
|
||||
AND EMAILTO.STTUS = '3'
|
||||
]]>
|
||||
</update>
|
||||
<!-- 쿠폰 만료 -->
|
||||
<!-- 비회원 2년 메일 등록 -->
|
||||
<insert id="insertCouponEndEmail">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_EMAIL (
|
||||
SOPMAL_CD
|
||||
, SNDNG_LC
|
||||
, SJ
|
||||
, CN
|
||||
, SNDR_EMAIL
|
||||
, RECPTN_RJCT_URL
|
||||
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
|
||||
, REGUSR -- 등록자 고유번호
|
||||
, REGIST_DT -- 등록일 현재 NOW()
|
||||
, EMAIL_SNDNG_FORM_INNB
|
||||
)
|
||||
SELECT
|
||||
S.SOPMAL_CD
|
||||
, NULL SNDNG_LC
|
||||
, EF.EMAIL_SJ
|
||||
, EF.EMAIL_CN
|
||||
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
|
||||
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
|
||||
, '03' REGUSR_DV
|
||||
, 0 REGUSR
|
||||
, NOW() REGIST_DT
|
||||
, '21'
|
||||
FROM GC_SHOP S
|
||||
INNER JOIN GC_EMAIL_FORM EF
|
||||
ON S.SOPMAL_CD = EF.SOPMAL_CD
|
||||
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND EF.FORM_DTL_DV_CD = '03' -- 광고동의
|
||||
AND EF.USE_AT = 'Y'
|
||||
INNER JOIN GC_MESSAGE_SNDNG MS
|
||||
ON S.SOPMAL_CD = MS.SOPMAL_CD
|
||||
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND MS.FORM_DTL_DV_CD = '03'
|
||||
AND MS.USE_AT = 'Y'
|
||||
]]>
|
||||
</insert>
|
||||
<insert id="insertCartEmail">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_EMAIL (
|
||||
SOPMAL_CD
|
||||
, SNDNG_LC
|
||||
, SJ
|
||||
, CN
|
||||
, SNDR_EMAIL
|
||||
, RECPTN_RJCT_URL
|
||||
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
|
||||
, REGUSR -- 등록자 고유번호
|
||||
, REGIST_DT -- 등록일 현재 NOW()
|
||||
, EMAIL_SNDNG_FORM_INNB
|
||||
)
|
||||
SELECT
|
||||
S.SOPMAL_CD
|
||||
, NULL SNDNG_LC
|
||||
, EF.EMAIL_SJ
|
||||
, EF.EMAIL_CN
|
||||
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
|
||||
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
|
||||
, '03' REGUSR_DV
|
||||
, 0 REGUSR
|
||||
, NOW() REGIST_DT
|
||||
, '24'
|
||||
FROM GC_SHOP S
|
||||
INNER JOIN GC_EMAIL_FORM EF
|
||||
ON S.SOPMAL_CD = EF.SOPMAL_CD
|
||||
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND EF.FORM_DTL_DV_CD = '06' -- 광고동의
|
||||
AND EF.USE_AT = 'Y'
|
||||
INNER JOIN GC_MESSAGE_SNDNG MS
|
||||
ON S.SOPMAL_CD = MS.SOPMAL_CD
|
||||
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND MS.FORM_DTL_DV_CD = '06'
|
||||
AND MS.USE_AT = 'Y'
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<insert id="insertCartSaleEmail">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_EMAIL (
|
||||
SOPMAL_CD
|
||||
, SNDNG_LC
|
||||
, SJ
|
||||
, CN
|
||||
, SNDR_EMAIL
|
||||
, RECPTN_RJCT_URL
|
||||
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
|
||||
, REGUSR -- 등록자 고유번호
|
||||
, REGIST_DT -- 등록일 현재 NOW()
|
||||
, EMAIL_SNDNG_FORM_INNB
|
||||
)
|
||||
SELECT
|
||||
S.SOPMAL_CD
|
||||
, NULL SNDNG_LC
|
||||
, EF.EMAIL_SJ
|
||||
, EF.EMAIL_CN
|
||||
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
|
||||
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
|
||||
, '03' REGUSR_DV
|
||||
, 0 REGUSR
|
||||
, NOW() REGIST_DT
|
||||
, '25'
|
||||
FROM GC_SHOP S
|
||||
INNER JOIN GC_EMAIL_FORM EF
|
||||
ON S.SOPMAL_CD = EF.SOPMAL_CD
|
||||
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND EF.FORM_DTL_DV_CD = '08' -- 광고동의
|
||||
AND EF.USE_AT = 'Y'
|
||||
INNER JOIN GC_MESSAGE_SNDNG MS
|
||||
ON S.SOPMAL_CD = MS.SOPMAL_CD
|
||||
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND MS.FORM_DTL_DV_CD = '08'
|
||||
AND MS.USE_AT = 'Y'
|
||||
]]>
|
||||
</insert>
|
||||
<!-- 마일리지 만료 안내 -->
|
||||
<select id="selectMlgTrgtListEmailInqire"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT SHOP.SOPMAL_NM AS SHOP_NAME -- 쇼핑몰명
|
||||
, CONCAT(REPLACE(SHOP.PC_DOMN_ADRES, 'https://',''), '/sopmal/mpage/mbr/selectMpageMainInqire') AS MYPAGE_SHORT_URL -- 마이페이지
|
||||
, MLG.MBR_INNB -- 회원번호
|
||||
, MLG.MBR_DV_CD -- 회원구분코드
|
||||
, MBR.MBR_TY_CD -- 회원타입코드
|
||||
, MBR.MBR_ID -- 회원 아이디
|
||||
, MBR.MBR_NM AS USER_NAME -- 회원명 (템플릿위해 중복)
|
||||
, MBR.MBR_NM AS USERNAME -- 회원명
|
||||
, CURDATE() AS CURDATE -- 현재시간
|
||||
, MBR.EMAIL AS RECPTN_EMAIL -- 수신 이메일
|
||||
, MBR.MBTLNB AS RECPTN_NB -- 수신 번호
|
||||
, MLG.SOPMAL_CD -- 쇼핑몰코드
|
||||
, FORMAT(SUM(BLCE), 0) AS MILEAGE -- 현재 총 마일리지
|
||||
, FORMAT(SUM( IF( DATE(MLG.USE_POSBL_END_DT) BETWEEN DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
|
||||
AND LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH)),
|
||||
BLCE,
|
||||
0
|
||||
)
|
||||
), 0
|
||||
) AS EXP_MILEAGE -- 만료예상마일리지 (템플릿 위해 중복 조회)
|
||||
, FORMAT(SUM( IF( DATE(MLG.USE_POSBL_END_DT) BETWEEN DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
|
||||
AND LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH)),
|
||||
BLCE,
|
||||
0
|
||||
)
|
||||
), 0
|
||||
) AS MILEAGE_REST -- 만료예상마일리지 (템플릿 위해 중복 조회)
|
||||
, GE.*
|
||||
FROM GC_MILEAGE MLG
|
||||
INNER JOIN GC_MEMBER MBR -- 회원테이블
|
||||
ON MBR.MBR_INNB = MLG.MBR_INNB
|
||||
AND MBR.MBR_DV_CD = MLG.MBR_DV_CD
|
||||
INNER JOIN GC_MESSAGE_SNDNG GMS -- 자동발송테이블
|
||||
ON GMS.SOPMAL_CD = GMA.SOPMAL_CD
|
||||
AND GMS.FORM_DV_CD = #{formDvCd}
|
||||
AND GMS.FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
INNER JOIN GC_EMAIL_FORM GEF
|
||||
ON GEF.SOPMAL_CD = GMS.SOPMAL_CD
|
||||
AND GEF.EMAIL_SNDNG_FORM_INNB = GMS.EMAIL_SNDNG_FORM_INNB
|
||||
AND GEF.USE_AT = 'Y'
|
||||
INNER JOIN GC_SHOP SHOP -- 쇼핑몰
|
||||
ON SHOP.SOPMAL_CD = MLG.SOPMAL_CD
|
||||
INNER JOIN GC_EMAIL GE
|
||||
ON GE.SOPMAL_CD = SHOP.SOPMAL_CD
|
||||
AND GE.EMAIL_SNDNG_FORM_INNB = '22'
|
||||
WHERE 1=1
|
||||
AND MLG.BLCE > 0 -- 잔액 0 이상
|
||||
AND MLG.CANCL_AT = 'N' -- 취소되지 않은 마일리지
|
||||
AND MLG.END_AT = 'N' -- 만료되지 않은 마일리지
|
||||
AND MLG.USE_POSBL_END_DT >= NOW() -- 만료기간 남아있는 마일리지
|
||||
AND MBR.MBTLNB > ''
|
||||
GROUP BY MLG.MBR_INNB, MLG.MBR_DV_CD, MLG.SOPMAL_CD, SHOP.SOPMAL_NM, SHOP.MBL_DOMN_ADRES, GE.EMAIL_SNDNG_INNB
|
||||
HAVING SUM( IF( DATE(MLG.USE_POSBL_END_DT) BETWEEN DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
|
||||
AND LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH)),
|
||||
BLCE,
|
||||
0
|
||||
)
|
||||
) > 0 -- 만료 대상 마일리지가 남아있는 경우
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 회원 2년 메일 등록 -->
|
||||
<insert id="insertMlgExpEmail">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_EMAIL (
|
||||
SOPMAL_CD
|
||||
, SNDNG_LC
|
||||
, SJ
|
||||
, CN
|
||||
, SNDR_EMAIL
|
||||
, RECPTN_RJCT_URL
|
||||
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
|
||||
, REGUSR -- 등록자 고유번호
|
||||
, REGIST_DT -- 등록일 현재 NOW()
|
||||
, EMAIL_SNDNG_FORM_INNB
|
||||
)
|
||||
SELECT
|
||||
S.SOPMAL_CD
|
||||
, NULL SNDNG_LC
|
||||
, EF.EMAIL_SJ
|
||||
, EF.EMAIL_CN
|
||||
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
|
||||
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
|
||||
, '03' REGUSR_DV
|
||||
, 0 REGUSR
|
||||
, NOW() REGIST_DT
|
||||
, '22'
|
||||
FROM GC_SHOP S
|
||||
INNER JOIN GC_EMAIL_FORM EF
|
||||
ON S.SOPMAL_CD = EF.SOPMAL_CD
|
||||
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND EF.FORM_DTL_DV_CD = '04' -- 광고동의
|
||||
AND EF.USE_AT = 'Y'
|
||||
INNER JOIN GC_MESSAGE_SNDNG MS
|
||||
ON S.SOPMAL_CD = MS.SOPMAL_CD
|
||||
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
|
||||
AND MS.FORM_DTL_DV_CD = '04'
|
||||
AND MS.USE_AT = 'Y'
|
||||
]]>
|
||||
</insert>
|
||||
<!-- 이메일 발송 대상자 조회 -->
|
||||
<select id="selectEmailLogOkList">
|
||||
SELECT
|
||||
LOG.SOPMAL_CD
|
||||
, LOG.MBR_INNB
|
||||
, LOG.RCVER
|
||||
FROM GC_EMAIL_LOG LOG
|
||||
WHERE 1=1
|
||||
AND LOG.EMAIL_SNDNG_FORM_INNB = #{sttus}
|
||||
AND LOG.STTUS = 'OK'
|
||||
</select>
|
||||
<!-- 회원 2년 이메일 대상자 업데이트 -->
|
||||
<update id="updateMarktAgreTrnsmisDt">
|
||||
UPDATE GC_MARKETING_AGREE GMA
|
||||
INNER JOIN GC_MEMBER MBR
|
||||
ON MBR.MBR_DV_CD = GMA.MBR_DV_CD
|
||||
AND MBR.MBR_INNB = GMA.MBR_INNB
|
||||
SET GMA.MARKT_RECPTN_AGRE_TRNSMIS_DT = NOW()
|
||||
WHERE 1=1
|
||||
AND GMA.SOPMAL_CD = #{sopmalCd}
|
||||
AND GMA.MBR_INNB = #{mbrInnb}
|
||||
AND MBR.EMAIL = HEX(AES_ENCRYPT(#{rcver}, #{secretKey}))
|
||||
</update>
|
||||
|
||||
|
||||
|
||||
<!-- 이메일 발송 후 상태 수정 -->
|
||||
<update id="updateEmailSendSttus">
|
||||
UPDATE GC_EMAIL_TO
|
||||
SET
|
||||
STTUS = #{sttus}
|
||||
, SNDNG_DT = NOW()
|
||||
, RSLT_CD = #{rsltCd}
|
||||
WHERE 1=1
|
||||
AND EMAIL_SNDNG_INNB = #{emailSndngInnb}
|
||||
AND TRGET_SNB = #{trgetSnb}
|
||||
</update>
|
||||
|
||||
<!-- 이메일 로그 등록 -->
|
||||
<insert id="insertEmailSendLog">
|
||||
INSERT INTO GC_EMAIL_LOG (
|
||||
SOPMAL_CD
|
||||
, MBR_INNB
|
||||
, ATMC_SNDNG_AT
|
||||
, SNDNG_CNT
|
||||
, SNDER
|
||||
, RCVER
|
||||
, SJ
|
||||
, CN
|
||||
, EMAIL_SNDNG_FORM_INNB
|
||||
, ORDR_INNB
|
||||
, STTUS
|
||||
, REGIST_DT
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{sopmalCd}
|
||||
, #{mbrInnb}
|
||||
, #{atmcSndngAt}
|
||||
, #{sndngCnt}
|
||||
, HEX(AES_ENCRYPT(#{snder}, '1df5be2f7e90ae36'))
|
||||
, HEX(AES_ENCRYPT(#{rcver}, '1df5be2f7e90ae36'))
|
||||
, #{sj}
|
||||
, #{cn}
|
||||
, #{emailSndngFormInnb}
|
||||
, #{ordrInnb}
|
||||
, #{sttus}
|
||||
, SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user