diff --git a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java index ecd7fca4..5e973a39 100644 --- a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java +++ b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java @@ -39,6 +39,7 @@ import itn.let.mjo.pay.service.StVcVO; import itn.let.mjo.tax.service.TaxVO; import itn.let.mjo.tax.service.impl.TaxDAO; import itn.let.sym.grd.service.MberGrdService; +import itn.let.sym.grd.service.MberGrdVO; import itn.let.sym.site.service.JoinSettingVO; import itn.let.uat.uia.service.impl.MberManageDAO; import itn.let.uss.umt.service.MberManageVO; @@ -407,15 +408,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP } - /* + // 등급제 Start // 회원별 등급 적용 MberGrdVO mberGrdVO = new MberGrdVO(); mberGrdVO.setMberId(mjonPayVO.getUserId()); mberGrdVO.setAmt(mjonPayVO.getAmt()); + mberGrdVO.setMoid(mjonPayVO.getMoid()); mberGrdService.mberGrdSaveByUser(mberGrdVO); // End - */ + mjonPayVO.setPaySuccess(true); return mjonPayVO; @@ -722,15 +724,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP } - /* + // 등급제 Start // 회원별 등급 적용 MberGrdVO mberGrdVO = new MberGrdVO(); mberGrdVO.setMberId(mjonPayVO.getUserId()); mberGrdVO.setAmt(mjonPayVO.getAmt()); + mberGrdVO.setMoid(mjonPayVO.getMoid()); mberGrdService.mberGrdSaveByUser(mberGrdVO); // End - */ + //세금계산서/현금영수증 발행 처리해주기 @@ -2033,15 +2036,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP } - /* + // 등급제 Start // 회원별 등급 적용 MberGrdVO mberGrdVO = new MberGrdVO(); mberGrdVO.setMberId(mjonPayVO.getUserId()); mberGrdVO.setAmt(mjonPayVO.getAmt()); + mberGrdVO.setMoid(mjonPayVO.getMoid()); mberGrdService.mberGrdSaveByUser(mberGrdVO); // End - */ + mjonPayVO.setPaySuccess(true); } @@ -2200,15 +2204,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP } } - /* + // 등급제 Start // 회원별 등급 적용 MberGrdVO mberGrdVO = new MberGrdVO(); mberGrdVO.setMberId(mjonPayVO.getUserId()); mberGrdVO.setAmt(mjonPayVO.getAmt()); + mberGrdVO.setMoid(mjonPayVO.getMoid()); mberGrdService.mberGrdSaveByUser(mberGrdVO); // End - */ + mjonPayVO.setPaySuccess(true); } diff --git a/src/main/java/itn/let/sym/grd/service/MberGrdVO.java b/src/main/java/itn/let/sym/grd/service/MberGrdVO.java index 48be90ae..afb0d9fe 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdVO.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdVO.java @@ -47,6 +47,7 @@ public class MberGrdVO extends UserDefaultVO { private String grdDatePrgYn; // 회원등급제 시작일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N) private String grdPeriod; // 회원등급제 누적결제 계산기간 private String tempYn; + private String moid; // 결제번호 // 검색필터 private String searchGrdStatus; @@ -275,6 +276,12 @@ public class MberGrdVO extends UserDefaultVO { public void setTempYn(String tempYn) { this.tempYn = tempYn; } + public String getMoid() { + return moid; + } + public void setMoid(String moid) { + this.moid = moid; + } public String getSearchGrdStatus() { return searchGrdStatus; } 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 9251ea0c..c6420e5c 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 @@ -9,6 +9,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import itn.let.mjo.mjocommon.MjonCommon; import itn.let.mjo.pay.service.MjonPayService; import itn.let.sym.grd.service.MberGrdService; import itn.let.sym.grd.service.MberGrdVO; @@ -28,6 +29,9 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG @Resource(name = "mberManageService") private EgovMberManageService mberManageService; + @Resource(name="MjonCommon") + private MjonCommon mjonCommon; + // 등급제 단가 추출 => 시스템 단가에 적용 @Override public JoinSettingVO selectMberGrdDefaultInfo(JoinSettingVO sysJoinSetVO, String mberId) throws Exception { @@ -40,7 +44,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG MberGrdVO mberGrdVO = new MberGrdVO(); MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = selectMberSettingDetail(mberGrdVO); - if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { + if (mberGrdVO1.getGrdNoti().equals("Y")) { mberGrdVO = new MberGrdVO(); mberGrdVO = selectMberGrdInfo(mberId); if (null != mberGrdVO) { @@ -168,7 +172,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG // Step 1. 등급제 시행 ON 일경우 MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = selectMberSettingDetail(mberGrdVO); - if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { + if (mberGrdVO1.getGrdNoti().equals("Y")) { mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); // Step1. 대상자 추가 @@ -246,66 +250,77 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG // 회원별 등급 적용 @Override public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception { - // 현재 날짜 구하기 - LocalDate now = LocalDate.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의 - String nowDate = now.format(formatter); // 포맷 적용 - - mberGrdVO.setRegId(mberGrdVO.getMberId()); - mberGrdVO.setEditId(mberGrdVO.getMberId()); - - // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) - MberGrdVO mberGrdVO1 = new MberGrdVO(); - mberGrdVO1 = selectMberSettingDetail(mberGrdVO); - if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { - mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); - - // Step 2. 문자할인, B선라인, 스팸회원 대상자 제외 - int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상) - if(isMberGrd == 1) { - // Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회 - MberGrdVO mberGrdVO3 = new MberGrdVO(); - mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO); - if (null != mberGrdVO3) { - mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt()); - mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo()); - - // Step 4. 등급제 설정값 조회 - MberGrdVO mberGrdVO4 = new MberGrdVO(); - mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO); - if (null != mberGrdVO4) { - mberGrdVO.setAmt(mberGrdVO.getAmt()); - mberGrdVO.setTotAmt(mberGrdVO.getTotAmt()); - mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice()); - mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice()); - mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice()); - mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price()); - mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price()); - mberGrdVO.setGrdDate(mberGrdVO.getGrdDate()); - mberGrdVO.setGrdStartDate(nowDate + " 00:00:00"); - mberGrdVO.setGrdEndDate("9999:12:31 23:59:59"); - mberGrdVO.setGrdStatus("Y"); - - // Step 5. 인서트 Or 업데이트 - MberGrdVO mberGrdVO5 = new MberGrdVO(); - mberGrdVO5 = selectMberGrdDetail(mberGrdVO); - if (null != mberGrdVO5) { - updateMberGrd(mberGrdVO); - - // 회원별 등급 히스토리 인서트 - insertMberGrdHist(mberGrdVO); - } - else { - // 인서트 - insertMberGrd(mberGrdVO); - - // 회원별 등급 히스토리 인서트 - insertMberGrdHist(mberGrdVO); - } - } - } - } - } + try { + // 현재 날짜 구하기 + LocalDate now = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의 + String nowDate = now.format(formatter); // 포맷 적용 + + mberGrdVO.setRegId(mberGrdVO.getMberId()); + mberGrdVO.setEditId(mberGrdVO.getMberId()); + + // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y")) { + mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); + + // Step 2. 문자할인, B선라인, 스팸회원 대상자 제외 + int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상) + if(isMberGrd == 1) { + // Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회 + MberGrdVO mberGrdVO3 = new MberGrdVO(); + mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO); + if (null != mberGrdVO3) { + mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt()); + mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo()); + + // Step 4. 등급제 설정값 조회 + MberGrdVO mberGrdVO4 = new MberGrdVO(); + mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO); + if (null != mberGrdVO4) { + mberGrdVO.setAmt(mberGrdVO.getAmt()); + mberGrdVO.setTotAmt(mberGrdVO.getTotAmt()); + mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice()); + mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice()); + mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice()); + mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price()); + mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price()); + mberGrdVO.setGrdDate(mberGrdVO.getGrdDate()); + mberGrdVO.setGrdStartDate(nowDate + " 00:00:00"); + mberGrdVO.setGrdEndDate("9999:12:31 23:59:59"); + mberGrdVO.setGrdStatus("Y"); + + // Step 5. 인서트 Or 업데이트 + MberGrdVO mberGrdVO5 = new MberGrdVO(); + mberGrdVO5 = selectMberGrdDetail(mberGrdVO); + if (null != mberGrdVO5) { + updateMberGrd(mberGrdVO); + + // 회원별 등급 히스토리 인서트 + insertMberGrdHist(mberGrdVO); + } + else { + // 인서트 + insertMberGrd(mberGrdVO); + + // 회원별 등급 히스토리 인서트 + insertMberGrdHist(mberGrdVO); + } + } + } + } + } + } + catch (Exception e) { + // Slack 메시지 발송(단순본문) + String msg = "[문자온] " + mberGrdVO.getMberId() + "님 결제중 회원등급 저장 오류 알림 => 개발팀에게 문의해주세요."; + mjonCommon.sendSimpleSlackMsg(msg); + + System.out.println("#############################################################"); + System.out.println(mberGrdVO.getMberId() + "님 결제중 회원등급 저장 오류"); + } + } // 회원별 등급제 대상여부 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 965b6022..0477dc32 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 @@ -833,6 +833,7 @@ , AMT , TOT_AMT , GRD_DATE + , MOID , REG_ID , REG_DATE , EDIT_ID @@ -850,6 +851,7 @@ , #amt# , #totAmt# , #grdNewDate# + , #moid# , #regId# , NOW() , #editId# @@ -858,6 +860,7 @@ +