|
|
@@ -304,4 +304,188 @@
|
|
|
AND C.SITE_CD = #{siteCd}
|
|
|
</select>
|
|
|
|
|
|
+ <!--회원등급정책 목록-->
|
|
|
+ <select id="getCustGradePolicyList" parameterType="CustGrade" resultType="CustGrade">
|
|
|
+ /*TsbCustomerDao.getCustGradePolicyList*/
|
|
|
+ SELECT GRADE_CD AS GRADE_ACD
|
|
|
+ , MIN_BUY_AMT
|
|
|
+ , MIN_BUY_CNT
|
|
|
+ , BUY_EXCEPT_AMT
|
|
|
+ , CAL_MONTHS
|
|
|
+ FROM TB_CUST_GRADE_POLICY
|
|
|
+ WHERE USE_YN = 'Y'
|
|
|
+ AND SITE_CD = #{siteCd}
|
|
|
+ ORDER BY GRADE_CD
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!--변경된 회원등급 이력 생성-->
|
|
|
+ <insert id="createChangeCustGradeHst" parameterType="CustGrade" timeout="100">
|
|
|
+ /*TsbCustomerDao.createChangeCustGradeHst*/
|
|
|
+ INSERT INTO TB_CUST_GRADE_HST (
|
|
|
+ CUST_NO
|
|
|
+ , APPLY_YMD
|
|
|
+ , GRADE_BCD
|
|
|
+ , GRADE_ACD
|
|
|
+ , REAL_ORD_AMT
|
|
|
+ , ORD_CNT
|
|
|
+ , REG_NO
|
|
|
+ , REG_DT
|
|
|
+ )
|
|
|
+ SELECT TG.CUST_NO
|
|
|
+ , DATE_FORMAT(NOW(), '%Y%m%d') AS APPLY_YMD
|
|
|
+ , TG.CUST_GRADE AS GRADE_BCD
|
|
|
+ , #{gradeacd} AS GRADE_ACD
|
|
|
+ , TG.SUM_REAL_ORD_AMT AS REAL_ORD_AMT
|
|
|
+ , TG.ORD_NO_CNT AS ORD_CNT
|
|
|
+ , #{regNo} AS REG_NO
|
|
|
+ , NOW() AS REG_DT
|
|
|
+ FROM (
|
|
|
+ SELECT C.CUST_NO
|
|
|
+ , COUNT(DISTINCT ORD.ORD_NO) AS ORD_NO_CNT
|
|
|
+ , IFNULL(ORD.SUM_REAL_ORD_AMT, 0) AS SUM_REAL_ORD_AMT
|
|
|
+ , MAX(C.CUST_GRADE) AS CUST_GRADE
|
|
|
+ FROM TB_CUSTOMER C
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT O.CUST_NO
|
|
|
+ , O.ORD_NO
|
|
|
+ , SUM(OD.REAL_ORD_AMT + OD.GFCD_USE_AMT) AS SUM_REAL_ORD_AMT
|
|
|
+ FROM TB_ORDER O
|
|
|
+ INNER JOIN
|
|
|
+ TB_ORDER_DETAIL OD
|
|
|
+ WHERE O.ORD_NO = OD.ORD_NO
|
|
|
+ AND OD.ORD_DTL_STAT = 'G013_70' /*구매확정*/
|
|
|
+ AND O.ORD_DT >= DATE_ADD(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), INTERVAL -#{calMonths} MONTH)
|
|
|
+ AND O.ORD_DT <![CDATA[<]]> DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY) /*익월 1일*/
|
|
|
+ GROUP BY O.ORD_NO, O.CUST_NO
|
|
|
+ HAVING SUM(OD.REAL_ORD_AMT + OD.GFCD_USE_AMT) >= #{buyExceptAmt}
|
|
|
+ ) ORD
|
|
|
+ ON C.CUST_NO = ORD.CUST_NO
|
|
|
+ WHERE C.CUST_STAT = 'G104_10'
|
|
|
+ AND C.CUST_NO != 0
|
|
|
+ AND C.CUST_NO = 100041
|
|
|
+ GROUP BY C.CUST_NO
|
|
|
+ ) TG
|
|
|
+ WHERE (TG.ORD_NO_CNT >= #{minBuyCnt} OR TG.SUM_REAL_ORD_AMT >= #{minBuyAmt})
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_CUST_GRADE_HST CGH
|
|
|
+ WHERE CGH.CUST_NO = TG.CUST_NO
|
|
|
+ AND CGH.APPLY_YMD = DATE_FORMAT(NOW(), '%Y%m%d')
|
|
|
+ )
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <!--변경된등급 회원 이력 생성-->
|
|
|
+ <insert id="createChangeCustomerHst" parameterType="CustGrade" timeout="100">
|
|
|
+ /*TsbCustomerDao.createChangeCustomerHst*/
|
|
|
+ INSERT INTO TB_CUSTOMER_HST (
|
|
|
+ CUST_NO
|
|
|
+ , CUST_ID
|
|
|
+ , CUST_NM
|
|
|
+ , PASSWD
|
|
|
+ , BIRTH_YMD
|
|
|
+ , SEX_GB
|
|
|
+ , CELL_PHNNO
|
|
|
+ , APP_AGREE_YN
|
|
|
+ , APP_AGREE_DT
|
|
|
+ , SMS_AGREE_YN
|
|
|
+ , SMS_AGREE_DT
|
|
|
+ , EMAIL
|
|
|
+ , EMAIL_AGREE_YN
|
|
|
+ , EMAIL_AGREE_DT
|
|
|
+ , MK_AGREE_YN
|
|
|
+ , MK_AGREE_DT
|
|
|
+ , HOME_ZIPCODE
|
|
|
+ , HOME_BASE_ADDR
|
|
|
+ , HOME_DTL_ADDR
|
|
|
+ , SITE_CD
|
|
|
+ , FRONT_GB
|
|
|
+ , AF_LINK_CD
|
|
|
+ , CUST_GB
|
|
|
+ , CUST_GRADE
|
|
|
+ , JOIN_DT
|
|
|
+ , FOREIGNER_YN
|
|
|
+ , CUST_STAT
|
|
|
+ , PASSWD_CHG_DT
|
|
|
+ , TEMP_PASSWD_YN
|
|
|
+ , LOGIN_LDT
|
|
|
+ , CI
|
|
|
+ , AUTH_DT
|
|
|
+ , SNS_TYPE
|
|
|
+ , MANAGED_RSN
|
|
|
+ , MANAGED_DTL_RSN
|
|
|
+ , MANAGED_DT
|
|
|
+ , SECEDE_RSN
|
|
|
+ , SECEDE_DTL_RSN
|
|
|
+ , SECEDE_DT
|
|
|
+ , RM_DORMANT_DT
|
|
|
+ , REG_NO
|
|
|
+ , REG_DT
|
|
|
+ , UPD_NO
|
|
|
+ , UPD_DT
|
|
|
+ )
|
|
|
+ SELECT CUST_NO
|
|
|
+ , CUST_ID
|
|
|
+ , CUST_NM
|
|
|
+ , PASSWD
|
|
|
+ , BIRTH_YMD
|
|
|
+ , SEX_GB
|
|
|
+ , CELL_PHNNO
|
|
|
+ , APP_AGREE_YN
|
|
|
+ , APP_AGREE_DT
|
|
|
+ , SMS_AGREE_YN
|
|
|
+ , SMS_AGREE_DT
|
|
|
+ , EMAIL
|
|
|
+ , EMAIL_AGREE_YN
|
|
|
+ , EMAIL_AGREE_DT
|
|
|
+ , MK_AGREE_YN
|
|
|
+ , MK_AGREE_DT
|
|
|
+ , HOME_ZIPCODE
|
|
|
+ , HOME_BASE_ADDR
|
|
|
+ , HOME_DTL_ADDR
|
|
|
+ , SITE_CD
|
|
|
+ , FRONT_GB
|
|
|
+ , AF_LINK_CD
|
|
|
+ , CUST_GB
|
|
|
+ , CUST_GRADE
|
|
|
+ , JOIN_DT
|
|
|
+ , FOREIGNER_YN
|
|
|
+ , CUST_STAT
|
|
|
+ , PASSWD_CHG_DT
|
|
|
+ , TEMP_PASSWD_YN
|
|
|
+ , LOGIN_LDT
|
|
|
+ , CI
|
|
|
+ , AUTH_DT
|
|
|
+ , SNS_TYPE
|
|
|
+ , MANAGED_RSN
|
|
|
+ , MANAGED_DTL_RSN
|
|
|
+ , MANAGED_DT
|
|
|
+ , SECEDE_RSN
|
|
|
+ , SECEDE_DTL_RSN
|
|
|
+ , SECEDE_DT
|
|
|
+ , RM_DORMANT_DT
|
|
|
+ , #{regNo} AS REG_NO
|
|
|
+ , NOW() AS REG_DT
|
|
|
+ , UPD_NO
|
|
|
+ , UPD_DT
|
|
|
+ FROM TB_CUSTOMER
|
|
|
+ WHERE CUST_NO IN (
|
|
|
+ SELECT CGH.CUST_NO
|
|
|
+ FROM TB_CUST_GRADE_HST CGH
|
|
|
+ WHERE CGH.APPLY_YMD = DATE_FORMAT(NOW(), '%Y%m%d')
|
|
|
+ )
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <!--회원등급 변경 처리-->
|
|
|
+ <update id="updateCustomerGrade" parameterType="CustGrade" timeout="100">
|
|
|
+ /*TsbCustomerDao.updateCustomerGrade*/
|
|
|
+ UPDATE TB_CUSTOMER C
|
|
|
+ INNER JOIN
|
|
|
+ TB_CUST_GRADE_HST CGH
|
|
|
+ ON C.CUST_NO = CGH.CUST_NO
|
|
|
+ SET CUST_GRADE = CGH.GRADE_ACD
|
|
|
+ , UPD_DT = NOW()
|
|
|
+ , UPD_NO = #{updNo}
|
|
|
+ WHERE CGH.APPLY_YMD = DATE_FORMAT(NOW(), '%Y%m%d')
|
|
|
+ </update>
|
|
|
+
|
|
|
</mapper>
|