From daa6b8bd4926c67c999b4cb1a71acf2c331ed876 Mon Sep 17 00:00:00 2001 From: itn Date: Wed, 16 Aug 2023 12:22:38 +0900 Subject: [PATCH] =?UTF-8?q?=ED=99=98=EB=B6=88=EC=99=84=EB=A3=8C=EC=8B=9C?= =?UTF-8?q?=20=ED=9A=8C=EC=9B=90=EB=93=B1=EA=B8=89=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/mjo/pay/web/RefundController.java | 24 +++- .../let/sym/grd/service/MberGrdService.java | 11 ++ .../let/sym/grd/service/impl/MberGrdDAO.java | 4 + .../grd/service/impl/MberGrdServiceImpl.java | 134 +++++++++++++----- .../sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml | 106 ++++++++++---- 5 files changed, 209 insertions(+), 70 deletions(-) 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 @@