|
|
@@ -21,7 +21,7 @@
|
|
|
SELECT 1
|
|
|
FROM TB_CUST_CONTACT_HST CCH
|
|
|
WHERE CCH.RECEIVER_NO = C.CUST_NO
|
|
|
- AND CCH.CONTACT_TYPE = 'G054_216' -- 휴면회원 선정 안내
|
|
|
+ AND CCH.CONTACT_TYPE = 'G054_207' /*회원-휴면계정전환예정*/
|
|
|
AND CCH.REG_DT > DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL - 4 DAY), '%Y-%m-%d')
|
|
|
)
|
|
|
</select>
|
|
|
@@ -267,7 +267,7 @@
|
|
|
WHERE CUST_NO = #{custNo}
|
|
|
</delete>
|
|
|
|
|
|
- <!--개인정보 이용내역 안내(가입일로부터 1년 시점에 발송) 대상-->
|
|
|
+ <!--개인정보 이용내역 안내(년 1회) 대상-->
|
|
|
<select id="getPrivacyPolicyNoticeTargetList" parameterType="CustomerSearch" resultType="Customer">
|
|
|
/*TsbCustomerDao.getPrivacyPolicyNoticeTargetList*/
|
|
|
SELECT C.CUST_NO
|
|
|
@@ -278,12 +278,10 @@
|
|
|
, DATEDIFF(NOW(), C.JOIN_DT) AS DIFF_JOIN_DT
|
|
|
FROM TB_CUSTOMER C
|
|
|
WHERE C.CUST_STAT = 'G104_10' -- 활동회원
|
|
|
- AND C.JOIN_DT >= DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -365 DAY), '%Y%m%d%H%i%S')
|
|
|
- AND C.JOIN_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -364 DAY), '%Y%m%d%H%i%S')
|
|
|
AND C.SITE_CD = #{siteCd}
|
|
|
</select>
|
|
|
|
|
|
- <!--마케팅 정보 수신자 / 가입일로부터 2년 시점에 발송 대상-->
|
|
|
+ <!--마케팅 정보 수신자 / 가입일로부터 2년 마다-->
|
|
|
<select id="getMarketingAgreeNoticeTargetList" parameterType="CustomerSearch" resultType="Customer">
|
|
|
/*TsbCustomerDao.getPrivacyPolicyNoticeTargetList*/
|
|
|
SELECT C.CUST_NO
|
|
|
@@ -298,9 +296,7 @@
|
|
|
, C.MK_AGREE_DT
|
|
|
FROM TB_CUSTOMER C
|
|
|
WHERE C.CUST_STAT = 'G104_10' -- 활동회원
|
|
|
- AND C.JOIN_DT >= DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -365*2 DAY), '%Y%m%d%H%i%S')
|
|
|
- AND C.JOIN_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -364*2 DAY), '%Y%m%d%H%i%S')
|
|
|
- AND (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y' OR C.APP_AGREE_YN = 'Y' OR C.MK_AGREE_YN = 'Y')
|
|
|
+ AND (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y' OR C.MK_AGREE_YN = 'Y')
|
|
|
AND C.SITE_CD = #{siteCd}
|
|
|
</select>
|
|
|
|
|
|
@@ -587,20 +583,121 @@
|
|
|
</insert>
|
|
|
|
|
|
<!--생일쿠폰 다운로드 안내 대상자-->
|
|
|
- <select id="getBirthDayTargetList" parameterType="CustomerSearch" resultType="Customer">
|
|
|
+ <select id="getBirthDayTargetList" parameterType="CustomerSearch" resultType="CustCoupon">
|
|
|
/*TsbCustomerDao.getBirthDayTargetList*/
|
|
|
+ WITH TAB_COUPON_REFVAL1 AS (
|
|
|
+ SELECT CR.CPN_ID
|
|
|
+ , CR.CPN_TARGET
|
|
|
+ , CASE WHEN CR.CPN_TARGET = 'G260_10' /*상품*/ THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_11' /*카테고리*/ THEN
|
|
|
+ CASE WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL),0) > 0
|
|
|
+ THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL),0) > 0
|
|
|
+ THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ END
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
|
|
|
+ END AS REF_VAL
|
|
|
+ , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY REF_VAL) AS RK
|
|
|
+ FROM TB_COUPON_REFVAL CR
|
|
|
+ WHERE CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
|
|
|
+ )
|
|
|
+ , TAB_COUPON_REFVAL2 AS (
|
|
|
+ SELECT CPN_ID
|
|
|
+ , CPN_TARGET
|
|
|
+ , GROUP_CONCAT(REF_VAL ORDER BY RK ASC SEPARATOR '/' ) AS REF_VAL
|
|
|
+ , (SELECT COUNT(*)
|
|
|
+ FROM TAB_COUPON_REFVAL1
|
|
|
+ WHERE CPN_ID = CR.CPN_ID
|
|
|
+ AND CPN_TARGET = CR.CPN_TARGET) AS CNT
|
|
|
+ FROM TAB_COUPON_REFVAL1 CR
|
|
|
+ WHERE 1 = 1
|
|
|
+ AND (
|
|
|
+ (CPN_TARGET != 'G260_12' AND RK = 1) /*브랜드 외는 1개만 노출*/
|
|
|
+ OR
|
|
|
+ (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
|
|
|
+ )
|
|
|
+ GROUP BY CPN_ID, CPN_TARGET
|
|
|
+ )
|
|
|
SELECT C.CUST_NO
|
|
|
- , C.CUST_ID
|
|
|
, C.EMAIL
|
|
|
+ , C.CELL_PHNNO
|
|
|
+ , C.SMS_AGREE_YN
|
|
|
+ , C.EMAIL_AGREE_YN
|
|
|
, BB.BIRTH_YMD
|
|
|
+ , C.CUST_GRADE
|
|
|
+ , DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH)+ INTERVAL 1 DAY, '%Y%m%d%H%i%S') AS AVAIL_STDT
|
|
|
+ , DATE_FORMAT(CONCAT(LAST_DAY(NOW()), ' 23:59:59'), '%Y%m%d%H%i%S') AS AVAIL_EDDT
|
|
|
+ , CO.CPN_ID
|
|
|
+ , CO.END_ALIM_YN
|
|
|
+ , CO.DC_PVAL AS DC_VAL
|
|
|
+ , CASE WHEN CO.DC_WAY = 'G240_10' THEN '원'
|
|
|
+ ELSE '%'
|
|
|
+ END AS DC_WAY
|
|
|
+ , CO.MAX_DC_AMT
|
|
|
+ , CONCAT(CASE WHEN CO.BUY_LIMIT_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT(FORMAT(CO.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
|
|
|
+ END
|
|
|
+ ,CASE WHEN CO.MAX_DC_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT('최대 ',FORMAT(CO.MAX_DC_AMT , 0),'원 할인')
|
|
|
+ END
|
|
|
+ ) AS USE_CONDITION
|
|
|
+ , CASE WHEN CO.CUST_PUB_LIMIT_QTY = 0 THEN ''
|
|
|
+ ELSE CONCAT('1인당 최대',CO.CUST_PUB_LIMIT_QTY,'매')
|
|
|
+ END AS ISSUE_CONDITION
|
|
|
+ , (
|
|
|
+ SELECT COUNT(1)
|
|
|
+ FROM TB_CUST_COUPON CCP
|
|
|
+ WHERE CCP.CUST_NO = C.CUST_NO
|
|
|
+ AND CCP.CPN_ID = CO.CPN_ID
|
|
|
+ ) AS CPN_CNT
|
|
|
FROM TB_CUSTOMER C
|
|
|
INNER JOIN
|
|
|
TB_BATCH_BIRTH BB
|
|
|
ON C.CUST_NO = BB.CUST_NO
|
|
|
+ INNER JOIN
|
|
|
+ TB_CUST_GRADE_POLICY CGP
|
|
|
+ ON C.CUST_GRADE = CGP.GRADE_CD
|
|
|
+ AND CGP.USE_YN = 'Y'
|
|
|
+ INNER JOIN
|
|
|
+ TB_COUPON CO
|
|
|
+ ON CGP.GRADE_CPN_ID3 = CO.CPN_ID
|
|
|
+ AND CO.CPN_STAT = 'G232_11'
|
|
|
+ INNER JOIN
|
|
|
+ TAB_COUPON_REFVAL2 CR
|
|
|
+ ON CO.CPN_ID = CR.CPN_ID
|
|
|
WHERE C.CUST_STAT = 'G104_10'
|
|
|
AND C.SITE_CD = #{siteCd}
|
|
|
+ AND (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y')
|
|
|
AND SUBSTR(BB.BIRTH_YMD, 5,8) > DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL -1 MONTH ), '%m%d')
|
|
|
AND SUBSTR(BB.BIRTH_YMD, 5,8) <![CDATA[<]]> DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), '%m%d')
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_CUST_CONTACT_HST CCH
|
|
|
+ WHERE CCH.RECEIVER_NO = C.CUST_NO
|
|
|
+ AND CCH.SEND_DT > DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL -1 MONTH ), '%Y%m%d')
|
|
|
+ AND CCH.SEND_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), '%Y%m%d')
|
|
|
+ AND CCH.CONTACT_TYPE = 'G054_601' /*생일쿠폰 다운로드 안내*/
|
|
|
+ )
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!--휴면/미접속자 대상 목록-->
|
|
|
+ <select id="getComBackNotiTarketList" parameterType="CustomerSearch" resultType="Customer">
|
|
|
+ /* TsbCustomerDao.getComBackNotiTarketList*/
|
|
|
+ SELECT C.CUST_NO
|
|
|
+ , C.CUST_ID
|
|
|
+ , C.EMAIL
|
|
|
+ , C.CELL_PHNNO
|
|
|
+ , C.SMS_AGREE_YN
|
|
|
+ , C.EMAIL_AGREE_YN
|
|
|
+ , DATEDIFF(NOW(), C.LOGIN_LDT) AS DIFF_LOGIN_LDT
|
|
|
+ FROM TB_CUSTOMER C
|
|
|
+ WHERE C.CUST_STAT = 'G104_10'
|
|
|
+ AND (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y')
|
|
|
+ AND C.LOGIN_LDT >= DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -#{stDay} DAY), '%Y%m%d%H%i%S')
|
|
|
+ AND C.LOGIN_LDT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -#{edDay} + 1 DAY), '%Y%m%d%H%i%S')
|
|
|
</select>
|
|
|
|
|
|
</mapper>
|