263 lines
9.8 KiB
XML
263 lines
9.8 KiB
XML
<?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.MbrGradMapper">
|
|
<insert id="insertGcGradChangeLog">
|
|
INSERT INTO GC_GRADE_CHANGE_LOG
|
|
( GRAD_CHNG_LOG_INNB
|
|
, CHNG_YM
|
|
, MBR_INNB
|
|
, MBR_DV_CD
|
|
, SOPMAL_CD
|
|
, MBR_GRAD_INNB
|
|
, MBR_GRAD_ORDR
|
|
, NEW_MBR_GRAD_INNB
|
|
, NEW_GRAD_ORDR
|
|
, CHNG_GRAD_DV
|
|
, CALC_PD_MT_CNT
|
|
, GRAD_MDAT_CYCLE_MT_CNT
|
|
, USE_AT
|
|
, REGUSR
|
|
, REGIST_DT)
|
|
SELECT CAST(@ROWNUM := @ROWNUM + 1 AS UNSIGNED) AS GRAD_CHNG_LOG_INNB
|
|
, DATE_FORMAT(CURDATE(), '%Y%m')
|
|
, CG.MBR_INNB
|
|
, CG.MBR_DV_CD
|
|
, CG.SOPMAL_CD
|
|
, CG.MBR_GRAD_INNB
|
|
, CG.OLD_GRAD_ORDR
|
|
, CG.NEW_MBR_GRAD_INNB
|
|
, CG.NEW_GRAD_ORDR
|
|
, CASE
|
|
WHEN CG.OLD_GRAD_ORDR <![CDATA[<]]> CG.NEW_GRAD_ORDR THEN 'UP'
|
|
WHEN CG.OLD_GRAD_ORDR <![CDATA[>]]> CG.NEW_GRAD_ORDR THEN 'DN'
|
|
ELSE 'EQ'
|
|
END CHNG_GRAD_DV
|
|
, CG.CALC_PD_MT_CNT
|
|
, CG.GRAD_MDAT_CYCLE_MT_CNT
|
|
, 'Y'
|
|
, 0
|
|
, SYSDATE()
|
|
FROM (SELECT GM2.MBR_INNB
|
|
, GM2.MBR_DV_CD
|
|
, GM2.MBR_ID
|
|
, GM2.MBR_NM
|
|
, GM2.SOPMAL_CD
|
|
, GM2.MBR_GRAD_INNB
|
|
, (SELECT MBR_GRAD_ORDR
|
|
FROM GC_MEMBER_GRAD MG
|
|
WHERE MG.MBR_GRAD_INNB = GM2.MBR_GRAD_INNB) OLD_GRAD_ORDR
|
|
, FN_GET_MEMBER_GRAD_NAME(GM2.SOPMAL_CD, GM2.MBR_DV_CD, GM2.MBR_INNB) MBR_GRAD_NM
|
|
, GM2.CALC_PD_MT_CNT
|
|
, GM2.GRAD_MDAT_CYCLE_MT_CNT
|
|
, GM2.CALC_BGN_DT
|
|
, GM2.CALC_END_DT
|
|
, IFNULL(ORDR.RL_SETLE_AMT, 0) RL_SETLE_AMT
|
|
, IFNULL(ORDR.REFUND_AMT, 0) REFUND_AMT
|
|
, (SELECT MAX(MBR_GRAD_INNB)
|
|
FROM GC_MEMBER_GRAD GMG
|
|
WHERE GMG.SOPMAL_CD = GM2.SOPMAL_CD
|
|
AND GMG.MBR_GRAD_AMT <![CDATA[<=]]>
|
|
IFNULL(ORDR.RL_SETLE_AMT, 0) - IFNULL(ORDR.REFUND_AMT, 0)) NEW_MBR_GRAD_INNB
|
|
, (SELECT MBR_GRAD_ORDR
|
|
FROM GC_MEMBER_GRAD MG2
|
|
WHERE MG2.MBR_GRAD_INNB = (SELECT MAX(MBR_GRAD_INNB)
|
|
FROM GC_MEMBER_GRAD GMG2
|
|
WHERE GMG2.SOPMAL_CD = GM2.SOPMAL_CD
|
|
AND GMG2.MBR_GRAD_AMT <![CDATA[<=]]> IFNULL(ORDR.RL_SETLE_AMT, 0) -
|
|
IFNULL(ORDR.REFUND_AMT, 0))) NEW_GRAD_ORDR
|
|
FROM (SELECT GM.MBR_INNB
|
|
, GM.MBR_DV_CD
|
|
, GM.MBR_ID
|
|
, GM.MBR_NM
|
|
, GMGM.SOPMAL_CD
|
|
, GMGM.MBR_GRAD_INNB
|
|
, FN_GET_MEMBER_GRAD_NAME(GMGM.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) MBR_GRAD_NM
|
|
, MGG.CALC_PD_MT_CNT
|
|
, MGG.GRAD_MDAT_CYCLE_MT_CNT
|
|
, MGG.CALC_BGN_DT
|
|
, MGG.CALC_END_DT
|
|
FROM GC_MEMBER GM
|
|
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
|
|
ON GM.MBR_INNB = GMGM.MBR_INNB
|
|
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
|
|
AND GM.MBR_TY_CD = '01'
|
|
INNER JOIN (SELECT GMGG.SOPMAL_CD
|
|
, DATE_FORMAT(NOW(), '%Y-01-01') STD_DT
|
|
, GMGG.CALC_PD_MT_CNT -- 산정기간월수
|
|
, GMGG.GRAD_MDAT_CYCLE_MT_CNT -- 등급조정주기
|
|
, DATE_FORMAT(DATE_SUB(NOW(), INTERVAL CALC_PD_MT_CNT MONTH),
|
|
'%Y-%m-01 00:00:00') CALC_BGN_DT
|
|
, DATE_FORMAT(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)),
|
|
'%Y-%m-%d 23:59:59') CALC_END_DT
|
|
FROM GC_MEMBER_GRAD_GROUP GMGG
|
|
WHERE GMGG.USE_AT = 'Y'
|
|
AND GMGG.GRAD_MDAT_AT = 'Y') MGG
|
|
ON GMGM.SOPMAL_CD = MGG.SOPMAL_CD) GM2
|
|
LEFT JOIN LATERAL
|
|
( SELECT GO2.MBR_INNB,
|
|
GO2.MBR_DV_CD,
|
|
GO2.SOPMAL_CD,
|
|
SUM(GO2.RL_SETLE_AMT) RL_SETLE_AMT,
|
|
IFNULL(SUM(RE.REFUND_AMT), 0) REFUND_AMT
|
|
FROM GC_ORDER GO2
|
|
LEFT JOIN
|
|
(SELECT GOR.ORDR_INNB, GOR.SOPMAL_CD, SUM(IFNULL(GOR.REFUND_AMT, 0)) REFUND_AMT
|
|
FROM GC_ORDER_REFUND GOR
|
|
WHERE 1 = 1
|
|
AND GOR.REFUND_PROCS_STTUS_CD = '03'
|
|
AND GOR.USE_AT = 'Y'
|
|
-- AND GOR.REFUND_REQST_DT BETWEEN GM.CALC_BGN_DT AND GM.CALC_END_DT
|
|
GROUP BY GOR.ORDR_INNB, GOR.SOPMAL_CD) RE
|
|
ON GO2.ORDR_INNB = RE.ORDR_INNB
|
|
AND GO2.SOPMAL_CD = RE.SOPMAL_CD
|
|
WHERE GO2.USE_AT = 'Y'
|
|
AND GO2.MBR_INNB > 0
|
|
AND GO2.ORDR_STTUS_CD = '75'
|
|
AND GO2.SOPMAL_CD = GM2.SOPMAL_CD
|
|
and GO2.MBR_INNB = GM2.MBR_INNB
|
|
AND GO2.ORDR_RCEPT_DT BETWEEN GM2.CALC_BGN_DT AND GM2.CALC_END_DT
|
|
GROUP BY GO2.MBR_INNB, GO2.MBR_DV_CD, GO2.SOPMAL_CD
|
|
) ORDR
|
|
ON GM2.MBR_INNB = ORDR.MBR_INNB
|
|
AND GM2.MBR_DV_CD = ORDR.MBR_DV_CD
|
|
AND GM2.SOPMAL_CD = ORDR.SOPMAL_CD
|
|
WHERE 1 = 1 #AND GM2.MBR_INNB IN (6, 11)
|
|
-- AND GM.MBR_TY_CD = '01'
|
|
-- AND GO2.SLE_ENVRN_CD = 판매환경 관계없이 다 포함(TM,POS 등 모두:금이사님~)
|
|
GROUP BY GM2.MBR_INNB
|
|
, GM2.MBR_DV_CD
|
|
, GM2.MBR_ID
|
|
, GM2.MBR_NM
|
|
, GM2.SOPMAL_CD
|
|
, GM2.MBR_GRAD_INNB
|
|
, GM2.CALC_PD_MT_CNT
|
|
, GM2.GRAD_MDAT_CYCLE_MT_CNT
|
|
, GM2.CALC_BGN_DT
|
|
, GM2.CALC_END_DT) CG
|
|
WHERE (@ROWNUM := (SELECT IFNULL(MAX(D.GRAD_CHNG_LOG_INNB), 0) FROM GC_GRADE_CHANGE_LOG D)) >= 0
|
|
AND MBR_GRAD_INNB <![CDATA[<>]]> NEW_MBR_GRAD_INNB
|
|
</insert>
|
|
<update id="updateGcGrad">
|
|
UPDATE
|
|
GC_MEMBER_GRAD_MAPPING as GGM,
|
|
(SELECT CG.MBR_INNB, CG.MBR_DV_CD, CG.SOPMAL_CD, CG.MBR_GRAD_INNB, CG.NEW_MBR_GRAD_INNB
|
|
FROM (
|
|
SELECT GM2.MBR_INNB
|
|
, GM2.MBR_DV_CD
|
|
, GM2.MBR_ID
|
|
, GM2.MBR_NM
|
|
, GM2.SOPMAL_CD
|
|
, GM2.MBR_GRAD_INNB
|
|
, (SELECT MBR_GRAD_ORDR FROM GC_MEMBER_GRAD MG WHERE MG.MBR_GRAD_INNB = GM2.MBR_GRAD_INNB) OLD_GRAD_ORDR
|
|
, FN_GET_MEMBER_GRAD_NAME(GM2.SOPMAL_CD,GM2.MBR_DV_CD,GM2.MBR_INNB)MBR_GRAD_NM
|
|
, GM2.CALC_PD_MT_CNT
|
|
, GM2.GRAD_MDAT_CYCLE_MT_CNT
|
|
, GM2.CALC_BGN_DT
|
|
, GM2.CALC_END_DT
|
|
, IFNULL(ORDR.RL_SETLE_AMT,0) RL_SETLE_AMT
|
|
, IFNULL(ORDR.REFUND_AMT,0) REFUND_AMT
|
|
, (SELECT MAX(MBR_GRAD_INNB)
|
|
FROM GC_MEMBER_GRAD GMG
|
|
WHERE GMG.SOPMAL_CD = GM2.SOPMAL_CD
|
|
AND GMG.MBR_GRAD_AMT <![CDATA[<=]]> IFNULL(ORDR.RL_SETLE_AMT,0) - IFNULL(ORDR.REFUND_AMT,0)
|
|
) NEW_MBR_GRAD_INNB
|
|
, (SELECT MBR_GRAD_ORDR
|
|
FROM GC_MEMBER_GRAD MG2
|
|
WHERE MG2.MBR_GRAD_INNB = (SELECT MAX(MBR_GRAD_INNB)
|
|
FROM GC_MEMBER_GRAD GMG2
|
|
WHERE GMG2.SOPMAL_CD = GM2.SOPMAL_CD
|
|
AND GMG2.MBR_GRAD_AMT <![CDATA[<=]]> IFNULL(ORDR.RL_SETLE_AMT,0) - IFNULL(ORDR.REFUND_AMT,0)
|
|
)
|
|
) NEW_GRAD_ORDR
|
|
FROM (
|
|
SELECT GM.MBR_INNB
|
|
, GM.MBR_DV_CD
|
|
, GM.MBR_ID
|
|
, GM.MBR_NM
|
|
, GMGM.SOPMAL_CD
|
|
, GMGM.MBR_GRAD_INNB
|
|
, FN_GET_MEMBER_GRAD_NAME(GMGM.SOPMAL_CD,GM.MBR_DV_CD,GM.MBR_INNB)MBR_GRAD_NM
|
|
, MGG.CALC_PD_MT_CNT
|
|
, MGG.GRAD_MDAT_CYCLE_MT_CNT
|
|
, MGG.CALC_BGN_DT
|
|
, MGG.CALC_END_DT
|
|
FROM GC_MEMBER GM
|
|
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
|
|
ON GM.MBR_INNB = GMGM.MBR_INNB
|
|
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
|
|
AND GM.MBR_TY_CD = '01'
|
|
INNER JOIN (SELECT GMGG.SOPMAL_CD
|
|
, DATE_FORMAT(NOW(),'%Y-01-01') STD_DT
|
|
, GMGG.CALC_PD_MT_CNT -- 산정기간월수
|
|
, GMGG.GRAD_MDAT_CYCLE_MT_CNT -- 등급조정주기
|
|
, DATE_FORMAT(DATE_SUB(NOW(), INTERVAL CALC_PD_MT_CNT MONTH), '%Y-%m-01 00:00:00') CALC_BGN_DT
|
|
, DATE_FORMAT(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)), '%Y-%m-%d 23:59:59') CALC_END_DT
|
|
FROM GC_MEMBER_GRAD_GROUP GMGG
|
|
WHERE GMGG.USE_AT ='Y'
|
|
AND GMGG.GRAD_MDAT_AT = 'Y'
|
|
) MGG
|
|
ON GMGM.SOPMAL_CD = MGG.SOPMAL_CD
|
|
) GM2
|
|
LEFT JOIN LATERAL
|
|
( SELECT GO2.MBR_INNB, GO2.MBR_DV_CD, GO2.SOPMAL_CD, SUM(GO2.RL_SETLE_AMT) RL_SETLE_AMT, IFNULL(SUM(RE.REFUND_AMT),0) REFUND_AMT
|
|
FROM GC_ORDER GO2
|
|
LEFT JOIN
|
|
( SELECT GOR.ORDR_INNB, GOR.SOPMAL_CD, SUM(IFNULL(GOR.REFUND_AMT,0)) REFUND_AMT
|
|
FROM GC_ORDER_REFUND GOR
|
|
WHERE 1 = 1
|
|
AND GOR.REFUND_PROCS_STTUS_CD = '03'
|
|
AND GOR.USE_AT ='Y'
|
|
-- AND GOR.REFUND_REQST_DT BETWEEN GM.CALC_BGN_DT AND GM.CALC_END_DT
|
|
GROUP BY GOR.ORDR_INNB, GOR.SOPMAL_CD
|
|
) RE
|
|
ON GO2.ORDR_INNB = RE.ORDR_INNB
|
|
AND GO2.SOPMAL_CD = RE.SOPMAL_CD
|
|
WHERE GO2.USE_AT = 'Y'
|
|
AND GO2.MBR_INNB <![CDATA[>]]> 0
|
|
AND GO2.ORDR_STTUS_CD = '75'
|
|
AND GO2.SOPMAL_CD = GM2.SOPMAL_CD
|
|
and GO2.MBR_INNB = GM2.MBR_INNB
|
|
AND GO2.ORDR_RCEPT_DT BETWEEN GM2.CALC_BGN_DT AND GM2.CALC_END_DT
|
|
GROUP BY GO2.MBR_INNB, GO2.MBR_DV_CD, GO2.SOPMAL_CD
|
|
) ORDR
|
|
ON GM2.MBR_INNB = ORDR.MBR_INNB
|
|
AND GM2.MBR_DV_CD = ORDR.MBR_DV_CD
|
|
AND GM2.SOPMAL_CD = ORDR.SOPMAL_CD
|
|
WHERE 1 = 1
|
|
#AND GM2.MBR_INNB IN (6, 11)
|
|
-- AND GM.MBR_TY_CD = '01'
|
|
-- AND GO2.SLE_ENVRN_CD = 판매환경 관계없이 다 포함(TM,POS 등 모두:금이사님~)
|
|
GROUP BY GM2.MBR_INNB
|
|
, GM2.MBR_DV_CD
|
|
, GM2.MBR_ID
|
|
, GM2.MBR_NM
|
|
, GM2.SOPMAL_CD
|
|
, GM2.MBR_GRAD_INNB
|
|
, GM2.CALC_PD_MT_CNT
|
|
, GM2.GRAD_MDAT_CYCLE_MT_CNT
|
|
, GM2.CALC_BGN_DT
|
|
, GM2.CALC_END_DT
|
|
) CG
|
|
WHERE 1 =1
|
|
AND MBR_GRAD_INNB <![CDATA[<>]]> NEW_MBR_GRAD_INNB) S
|
|
SET
|
|
GGM.MBR_GRAD_INNB = S.NEW_MBR_GRAD_INNB
|
|
, GGM.GRAD_MDAT_DT = NOW()
|
|
, GGM.REGUSR = 0
|
|
, GGM.REGIST_DT = SYSDATE()
|
|
WHERE 1 = 1
|
|
AND GGM.MBR_INNB = S.MBR_INNB
|
|
AND GGM.MBR_DV_CD = S.MBR_DV_CD
|
|
AND GGM.SOPMAL_CD = S.SOPMAL_CD
|
|
</update>
|
|
<update id="updateGcGradLogUseAt">
|
|
UPDATE GC_GRADE_CHANGE_LOG GCL
|
|
SET USE_AT = 'N'
|
|
WHERE 1 = 1
|
|
AND GCL.CHNG_YM = DATE_FORMAT(CURDATE(), '%Y%m')
|
|
AND GCL.USE_AT = 'Y'
|
|
</update>
|
|
</mapper>
|
|
|
|
|