초기셋팅

This commit is contained in:
jazz
2025-12-18 10:04:46 +09:00
commit b68aa39bfb
387 changed files with 54028 additions and 0 deletions

View 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>