초기셋팅
This commit is contained in:
262
src/main/resources/mybatis/xml/mapper/gcone/MbrGradMapper.xml
Normal file
262
src/main/resources/mybatis/xml/mapper/gcone/MbrGradMapper.xml
Normal file
@@ -0,0 +1,262 @@
|
||||
<?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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user