diff --git a/src/main/java/itn/let/mjo/pay/web/RefundController.java b/src/main/java/itn/let/mjo/pay/web/RefundController.java
index d4889d43..6bc72cdd 100644
--- a/src/main/java/itn/let/mjo/pay/web/RefundController.java
+++ b/src/main/java/itn/let/mjo/pay/web/RefundController.java
@@ -48,6 +48,8 @@ import itn.let.mjo.pay.service.RefundService;
import itn.let.mjo.pay.service.RefundVO;
import itn.let.mjo.tax.service.TaxService;
import itn.let.mjo.tax.service.TaxVO;
+import itn.let.sym.grd.service.MberGrdService;
+import itn.let.sym.grd.service.MberGrdVO;
import itn.let.sym.site.service.EgovSiteManagerService;
import itn.let.sym.site.service.JoinSettingVO;
import itn.let.uat.uia.service.EgovLoginService;
@@ -107,6 +109,9 @@ public class RefundController {
@Resource(name = "MjonEventService")
private MjonEventService mjonEventService;
+ @Resource(name = "mberGrdService")
+ MberGrdService mberGrdService;
+
/**
* 환불요청 목록 페이지
* @param RefundVO
@@ -542,7 +547,15 @@ public class RefundController {
mjonPayVO.setMemo("환불처리 " + refundVO.getRefundPoint() + "포인트");
mjonPayService.insertPoint(mjonPayVO);
-
+ // 등급제 Start
+ // 회원별 등급 적용
+ MberGrdVO mberGrdVO = new MberGrdVO();
+ mberGrdVO.setMberId(refundVO.getMberId());
+ mberGrdVO.setAmt("0");
+ mberGrdVO.setMoid("");
+ mberGrdService.mberGrdSaveByUserNoHist(mberGrdVO);
+ // End
+
//modelAndView.addObject("status", "success");
s_status = "success";
@@ -722,6 +735,15 @@ public class RefundController {
}
}
+ // 등급제 Start
+ // 회원별 등급 적용
+ MberGrdVO mberGrdVO = new MberGrdVO();
+ mberGrdVO.setMberId(refundVO.getMberId());
+ mberGrdVO.setAmt("0");
+ mberGrdVO.setMoid("");
+ mberGrdService.mberGrdSaveByUserNoHist(mberGrdVO);
+ // End
+
}else if(afterStatus.equals("4")) {// 처리불가로 변경 시
if(beforeStatus.equals("3")) {
diff --git a/src/main/java/itn/let/sym/grd/service/MberGrdService.java b/src/main/java/itn/let/sym/grd/service/MberGrdService.java
index 898911fa..92351db3 100644
--- a/src/main/java/itn/let/sym/grd/service/MberGrdService.java
+++ b/src/main/java/itn/let/sym/grd/service/MberGrdService.java
@@ -9,6 +9,9 @@ public interface MberGrdService {
// 등급제 단가 추출 => 시스템 단가에 적용
public JoinSettingVO selectMberGrdDefaultInfo(JoinSettingVO sysJoinSetVO, String mberId) throws Exception;
+ // 등급제 단가 추출 => 시스템 단가에 적용 Last
+ public JoinSettingVO selectMberGrdDefaultInfoLast(JoinSettingVO sysJoinSetVO, String mberId) throws Exception;
+
// 등급제 설정 일괄변경
public int updateMberSetting(MberGrdVO mberGrdVO) throws Exception;
@@ -85,9 +88,15 @@ public interface MberGrdService {
// 회원별 등급 적용
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception;
+ // 회원별 등급 적용 Last
+ public void mberGrdSaveByUserLast(MberGrdVO mberGrdVO) throws Exception;
+
// 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외)
public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception;
+ // 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외) Last
+ public void mberGrdSaveByUserNoHistLast(MberGrdVO mberGrdVO) throws Exception;
+
// 회원별 등급제 대상여부
int selectMberGrdCnt(String mberId) throws Exception;
@@ -100,6 +109,8 @@ public interface MberGrdService {
// 회원별 등급 저장여부
int selectMberGrdSaveCnt(String mberId) throws Exception;
+ // 회원별 등급제 기간내, 최종결제이후 환불총금액
+ int selectMberGrdRefundSum(String mberId) throws Exception;
// 회원별 등급 히스토리 등록
public void insertMberGrdHist(MberGrdVO mberGrdVO) throws Exception;
diff --git a/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java b/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
index 8b79eb9d..8eda6f47 100644
--- a/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
+++ b/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
@@ -158,6 +158,10 @@ public class MberGrdDAO extends EgovAbstractDAO {
return (int) select("mberGrdDAO.selectMberGrdSaveCnt", mberId);
}
+ // 회원별 등급제 기간내, 최종결제이후 환불총금액
+ public int selectMberGrdRefundSum(String mberId) throws Exception{
+ return (int) select("mberGrdDAO.selectMberGrdRefundSum", mberId);
+ }
// 회원별 등급 히스토리 등록
public void insertMberGrdHist(MberGrdVO mberGrdVO) throws Exception{
diff --git a/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java b/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
index 31e2f8d3..31b3259d 100644
--- a/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
+++ b/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
@@ -1,9 +1,12 @@
package itn.let.sym.grd.service.impl;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.List;
import javax.annotation.Resource;
+import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
@@ -35,38 +38,6 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
@Resource(name="egovGrdSettingHistIdGnrService")
private EgovIdGnrService gshidgenService;
-
- // 등급제 단가 추출 => 시스템 단가에 적용
- @Override
- public JoinSettingVO selectMberGrdDefaultInfo(JoinSettingVO sysJoinSetVO, String mberId) throws Exception {
- /*
- // 공백제거
- mberId = mberId.trim();
-
- // Step 1. 등급제 시행 ON 일경우
- if (StringUtils.isNotEmpty(mberId)) {
- MberGrdVO mberGrdVO = new MberGrdVO();
- MberGrdVO mberGrdVO1 = new MberGrdVO();
- mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
- if (mberGrdVO1.getGrdNoti().equals("Y")) {
- mberGrdVO = new MberGrdVO();
- mberGrdVO = selectMberGrdInfo(mberId);
- if (null != mberGrdVO) {
- if(mberGrdVO.getShortPrice() > 1 && mberGrdVO.getLongPrice() > 1 && mberGrdVO.getPicturePrice() > 1 && mberGrdVO.getPicture2Price() > 1 && mberGrdVO.getPicture3Price() > 1) {
- sysJoinSetVO.setShortPrice(mberGrdVO.getShortPrice());
- sysJoinSetVO.setLongPrice(mberGrdVO.getLongPrice());
- sysJoinSetVO.setPicturePrice(mberGrdVO.getPicturePrice());
- sysJoinSetVO.setPicture2Price(mberGrdVO.getPicture2Price());
- sysJoinSetVO.setPicture3Price(mberGrdVO.getPicture3Price());
- }
- }
- }
- }
- */
-
- return sysJoinSetVO;
- }
-
// 등급제 시행여부 변경
@Override
public int updateMberSetting(MberGrdVO mberGrdVO) throws Exception {
@@ -276,11 +247,76 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
return mberGrdDAO.updateMberGrdRestoreByUser(mberGrdVO);
}
+
+ // 등급제 단가 추출 => 시스템 단가에 적용
+ @Override
+ public JoinSettingVO selectMberGrdDefaultInfo(JoinSettingVO sysJoinSetVO, String mberId) throws Exception {
+ // 등급제 단가 추출 => 시스템 단가에 적용 Last
+ //sysJoinSetVO = selectMberGrdDefaultInfoLast(sysJoinSetVO, mberId);
+
+ return sysJoinSetVO;
+ }
+
// 회원별 등급 적용
@Override
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception {
- /*
+ // 회원별 등급 적용 Last
+ //mberGrdSaveByUserLast(mberGrdVO);
+ }
+
+ // 회원별 등급 적용(로그인, 환불시 사용 => 히스토리 저장 제외)
+ @Override
+ public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception {
+ // 회원별 등급 적용(로그인, 환불시 사용 => 히스토리 저장 제외)
+ //mberGrdSaveByUserNoHistLast(mberGrdVO);
+ }
+
+ // 등급제 단가 추출 => 시스템 단가에 적용 Last
+ @Override
+ public JoinSettingVO selectMberGrdDefaultInfoLast(JoinSettingVO sysJoinSetVO, String mberId) throws Exception {
+ System.out.println("START 등급제 단가 추출 => 시스템 단가에 적용");
+
+ // 공백제거
+ mberId = mberId.trim();
+
+ if (StringUtils.isNotEmpty(mberId)) {
+ System.out.println("아이디 : " + mberId);
+
+ MberGrdVO mberGrdVO = new MberGrdVO();
+ // Step 1. 등급제 시행 ON 일경우
+ MberGrdVO mberGrdVO1 = new MberGrdVO();
+ mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
+ System.out.println("Step 1. 등급제 시행 ON 일경우");
+ if (mberGrdVO1.getGrdNoti().equals("Y")) {
+ mberGrdVO = new MberGrdVO();
+
+ // Step 2. 등급 정보 조회
+ mberGrdVO = selectMberGrdInfo(mberId);
+ System.out.println("Step 2. 등급 정보 조회");
+ if (null != mberGrdVO) {
+ if(mberGrdVO.getShortPrice() > 1 && mberGrdVO.getLongPrice() > 1 && mberGrdVO.getPicturePrice() > 1 && mberGrdVO.getPicture2Price() > 1 && mberGrdVO.getPicture3Price() > 1) {
+ sysJoinSetVO.setShortPrice(mberGrdVO.getShortPrice());
+ sysJoinSetVO.setLongPrice(mberGrdVO.getLongPrice());
+ sysJoinSetVO.setPicturePrice(mberGrdVO.getPicturePrice());
+ sysJoinSetVO.setPicture2Price(mberGrdVO.getPicture2Price());
+ sysJoinSetVO.setPicture3Price(mberGrdVO.getPicture3Price());
+ }
+ }
+ }
+ }
+
+ System.out.println("END 등급제 단가 추출 => 시스템 단가에 적용");
+
+ return sysJoinSetVO;
+ }
+
+ // 회원별 등급 적용 Last
+ @Override
+ public void mberGrdSaveByUserLast(MberGrdVO mberGrdVO) throws Exception {
try {
+ System.out.println("START 회원별 등급 적용");
+ System.out.println("아이디 : " + mberGrdVO.getMberId());
+
// 현재 날짜 구하기
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의
@@ -292,15 +328,18 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
+ System.out.println("Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)");
if (mberGrdVO1.getGrdNoti().equals("Y")) {
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// Step 2. 문자할인, B선라인, 스팸회원 대상자 제외
int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상)
+ System.out.println("Step 2. 문자할인, B선라인, 스팸회원 대상자 제외");
if(isMberGrd == 1) {
// Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회
MberGrdVO mberGrdVO3 = new MberGrdVO();
mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO);
+ System.out.println("Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회");
if (null != mberGrdVO3) {
mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt());
mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo());
@@ -308,6 +347,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// Step 4. 등급제 설정값 조회
MberGrdVO mberGrdVO4 = new MberGrdVO();
mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO);
+ System.out.println("Step 4. 등급제 설정값 조회");
if (null != mberGrdVO4) {
mberGrdVO.setAmt(mberGrdVO.getAmt());
mberGrdVO.setTotAmt(mberGrdVO.getTotAmt());
@@ -324,6 +364,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// Step 5. 인서트 Or 업데이트
MberGrdVO mberGrdVO5 = new MberGrdVO();
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
+ System.out.println("Step 5. 인서트 Or 업데이트");
if (null != mberGrdVO5) {
updateMberGrdOk(mberGrdVO);
@@ -341,6 +382,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
}
}
}
+ System.out.println("START 회원별 등급 적용");
}
catch (Exception e) {
// Slack 메시지 발송(단순본문)
@@ -350,14 +392,16 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
System.out.println("#############################################################");
System.out.println(mberGrdVO.getMberId() + "님 결제중 회원등급 저장 오류");
}
- */
}
- // 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외)
+ // 회원별 등급 적용(로그인, 환불시 사용 => 히스토리 저장 제외)
@Override
- public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception {
- /*
+ public void mberGrdSaveByUserNoHistLast(MberGrdVO mberGrdVO) throws Exception {
+
try {
+ System.out.println("START 회원별 등급 적용(로그인, 환불시 사용 => 히스토리 저장 제외)");
+ System.out.println("아이디 : " + mberGrdVO.getMberId());
+
// 현재 날짜 구하기
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의
@@ -369,15 +413,18 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
+ System.out.println("Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)");
if (mberGrdVO1.getGrdNoti().equals("Y")) {
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// Step 2. 문자할인, B선라인, 스팸회원 대상자 제외
int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상)
+ System.out.println("Step 2. 문자할인, B선라인, 스팸회원 대상자 제외");
if(isMberGrd == 1) {
// Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회
MberGrdVO mberGrdVO3 = new MberGrdVO();
mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO);
+ System.out.println("Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회");
if (null != mberGrdVO3) {
mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt());
mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo());
@@ -385,6 +432,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// Step 4. 등급제 설정값 조회
MberGrdVO mberGrdVO4 = new MberGrdVO();
mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO);
+ System.out.println("Step 4. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회");
if (null != mberGrdVO4) {
mberGrdVO.setAmt(mberGrdVO.getAmt());
mberGrdVO.setTotAmt(mberGrdVO.getTotAmt());
@@ -401,6 +449,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// Step 5. 인서트 Or 업데이트
MberGrdVO mberGrdVO5 = new MberGrdVO();
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
+ System.out.println("Step 5. 인서트 Or 업데이트");
if (null != mberGrdVO5) {
updateMberGrdOk(mberGrdVO);
}
@@ -412,6 +461,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
}
}
}
+ System.out.println("END 회원별 등급 적용(로그인, 환불시 사용 => 히스토리 저장 제외)");
}
catch (Exception e) {
// Slack 메시지 발송(단순본문)
@@ -421,7 +471,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
System.out.println("#############################################################");
System.out.println(mberGrdVO.getMberId() + "님 로그인중 회원등급 저장 오류");
}
- */
+
}
// 회원별 등급제 대상여부
@@ -460,6 +510,14 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
return mberGrdDAO.selectMberGrdSaveCnt(mberId);
}
+ // 회원별 등급제 기간내, 최종결제이후 환불총금액
+ @Override
+ public int selectMberGrdRefundSum(String mberId) throws Exception{
+ // 공백제거
+ mberId = mberId.trim();
+
+ return mberGrdDAO.selectMberGrdRefundSum(mberId);
+ }
// 회원별 등급 히스토리 등록
@Override
diff --git a/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
index 7d875b23..d2b21799 100644
--- a/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ b/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
@@ -417,7 +417,7 @@
SELECT
S.USER_ID
, SUM(S.AMT) AS AMT_SUM_ORIGIN
- , (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+ , (SUM(S.AMT) - IFNULL(SUM(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10)), 0)) AS AMT_SUM
, (
SELECT IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) FROM MJ_REFUND R
WHERE S.USER_ID = R.MBER_ID
@@ -643,7 +643,7 @@
SELECT
S.USER_ID
, SUM(S.AMT) AS AMT_SUM_ORIGIN
- , (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+ , (SUM(S.AMT) - IFNULL(SUM(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10)), 0)) AS AMT_SUM
, (
SELECT IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) FROM MJ_REFUND R
WHERE S.USER_ID = R.MBER_ID
@@ -712,7 +712,7 @@
SELECT
S.USER_ID
, SUM(S.AMT) AS AMT_SUM_ORIGIN
- , (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+ , (SUM(S.AMT) - IFNULL(SUM(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10)), 0)) AS AMT_SUM
, (
SELECT IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) FROM MJ_REFUND R
WHERE S.USER_ID = R.MBER_ID
@@ -947,7 +947,18 @@
LIMIT 1
-
+
+
+
INSERT INTO MJ_MBER_GRD_HIST
@@ -991,34 +1002,67 @@