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 61134219..8abeed15 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdService.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdService.java @@ -44,7 +44,7 @@ public interface MberGrdService { public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception; // 회원별 등급 수정 - public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception; + public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception; // 회원별 등급 등록 All => 기존대상자 제외 public void insertMberGrdAllByExist(MberGrdVO mberGrdVO) throws Exception; @@ -82,6 +82,9 @@ public interface MberGrdService { // 회원별 등급 적용 public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외) + public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급제 대상여부 int selectMberGrdCnt(String mberId) 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 97b7644f..88692179 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 @@ -69,8 +69,8 @@ public class MberGrdDAO extends EgovAbstractDAO { } // 회원별 등급 수정 - public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception{ - update("mberGrdDAO.updateMberGrd", mberGrdVO); + public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception{ + update("mberGrdDAO.updateMberGrdOk", mberGrdVO); } // 회원별 등급 등록 All => 기존대상자 제외 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 b0886a26..6c992447 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 @@ -153,8 +153,8 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG // 회원별 등급 수정 @Override - public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception { - mberGrdDAO.updateMberGrd(mberGrdVO); + public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception { + mberGrdDAO.updateMberGrdOk(mberGrdVO); } // 회원별 등급 등록 All => 기존대상자 제외 @@ -303,7 +303,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG MberGrdVO mberGrdVO5 = new MberGrdVO(); mberGrdVO5 = selectMberGrdDetail(mberGrdVO); if (null != mberGrdVO5) { - updateMberGrd(mberGrdVO); + updateMberGrdOk(mberGrdVO); // 회원별 등급 히스토리 인서트 insertMberGrdHist(mberGrdVO); @@ -331,6 +331,77 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG */ } + // 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외) + @Override + public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception { + /* + 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) { + updateMberGrdOk(mberGrdVO); + } + else { + // 인서트 + insertMberGrd(mberGrdVO); + } + } + } + } + } + } + catch (Exception e) { + // Slack 메시지 발송(단순본문) + String msg = "[문자온] " + mberGrdVO.getMberId() + "님 로그인중 회원등급 저장 오류 알림 => 개발팀에게 문의해주세요."; + mjonCommon.sendSimpleSlackMsg(msg); + + System.out.println("#############################################################"); + System.out.println(mberGrdVO.getMberId() + "님 로그인중 회원등급 저장 오류"); + } + */ + } + // 회원별 등급제 대상여부 @Override public int selectMberGrdCnt(String mberId) throws Exception{ diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index e0006e1e..d3452073 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -95,6 +95,8 @@ import itn.let.mjo.msgsent.service.MjonMsgSentService; import itn.let.mjo.msgsent.service.MjonMsgSentVO; import itn.let.mjo.pay.service.KmcVO; import itn.let.mjo.pay.service.MjonPayService; +import itn.let.sym.grd.service.MberGrdService; +import itn.let.sym.grd.service.MberGrdVO; import itn.let.sym.log.clg.service.EgovLoginLogService; import itn.let.sym.log.clg.service.LoginLog; import itn.let.sym.mnu.mpm.service.MenuManageJTreeVO; @@ -231,6 +233,9 @@ public class EgovLoginController { @Resource(name = "mjonPayService") private MjonPayService mjonPayService; + @Resource(name = "mberGrdService") + MberGrdService mberGrdService; + private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class); /* 문자온 사용자 로그인 시작 */ @@ -1719,6 +1724,15 @@ public class EgovLoginController { loginService.insertActionLoginLog(loginVO); } + // 등급제 Start + // 회원별 등급 적용 + MberGrdVO mberGrdVO = new MberGrdVO(); + mberGrdVO.setMberId(loginVO.getId()); + mberGrdVO.setAmt("0"); + mberGrdVO.setMoid(""); + mberGrdService.mberGrdSaveByUserNoHist(mberGrdVO); + // End + // 이벤트 결제 바로가기 로직 체크 Start String goEventPay = (String) commandMap.get("goEventPay"); System.out.println("goEventPay : " + goEventPay); diff --git a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java index 507c37a0..0f842b50 100644 --- a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java +++ b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java @@ -2812,7 +2812,6 @@ public class EgovUserManageController { mberManageVO.setPicturePrice(0); mberManageVO.setPicture2Price(0); mberManageVO.setPicture3Price(0); - mberManageVO.setPicture3Price(0); } } } 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 592c733e..491285a8 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 @@ -418,7 +418,7 @@ - + UPDATE MJ_MBER_GRD_INFO SET MBER_ID = #mberId# , GRD_SET_NO = #grdSetNo# @@ -432,6 +432,8 @@ , GRD_DATE = #grdNewDate# , EDIT_ID = #editId# , EDIT_DATE = NOW() + , GRD_END_DATE = '9999:12:31 23:59:59' + , GRD_STATUS = 'Y' WHERE MBER_ID = #mberId#