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 a482082e..df51edd0 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdService.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdService.java @@ -14,12 +14,21 @@ public interface MberGrdService { // 등급제 설정 목록 List selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception; + // 회원별 설정 상세 + public MberGrdVO selectMberGrdSettingDetail(MberGrdVO mberGrdVO) throws Exception; + // 등급제 설정 일괄변경 public int updateGrdSettingList(MberGrdVO mberGrdVO) throws Exception; + + // 등급제 등급 목록 + List selectMberGrdList(MberGrdVO mberGrdVO) throws Exception; // 회원별 등급 상세 public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급 누적결제액 상세 + public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급 등록 public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception; @@ -32,9 +41,15 @@ public interface MberGrdService { // 회원별 등급 초기화 public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급 적용 + public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급 진행여부 int selectMberGrdPrgCnt(String userId) throws Exception; + // 회원별 등급 저장여부 + int selectMberGrdSaveCnt(String userId) throws Exception; + // 회원별 등급 히스토리 등록 public void insertMberGrdHist(MberGrdVO mberGrdVO) throws Exception ; 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 028b99f4..fdc3c344 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdVO.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdVO.java @@ -30,7 +30,7 @@ public class MberGrdVO { private String mberId; private String amt; private String grdStartDate; - private String grd_endDate; + private String grdEndDate; private String grdStatus; private int mberGrdHistNo; @@ -184,11 +184,11 @@ public class MberGrdVO { public void setGrdStartDate(String grdStartDate) { this.grdStartDate = grdStartDate; } - public String getGrd_endDate() { - return grd_endDate; + public String getGrdEndDate() { + return grdEndDate; } - public void setGrd_endDate(String grd_endDate) { - this.grd_endDate = grd_endDate; + public void setGrdEndDate(String grd_endDate) { + this.grdEndDate = grd_endDate; } public String getGrdStatus() { return grdStatus; 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 c21ad015..c8003ae9 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 @@ -20,22 +20,39 @@ public class MberGrdDAO extends EgovAbstractDAO { return (MberGrdVO) select("mberGrdDAO.selectMberSettingDetail", mberGrdVO); } + // 등급제 설정 목록 @SuppressWarnings("unchecked") public List selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception{ return (List)list("mberGrdDAO.selectMberGrdSettingList", mberGrdVO); } + // 회원별 설정 상세 + public MberGrdVO selectMberGrdSettingDetail(MberGrdVO mberGrdVO) throws Exception{ + return (MberGrdVO) select("mberGrdDAO.selectMberGrdSettingDetail", mberGrdVO); + } + // 등급제 설정 일괄변경 public int updateGrdSetting(MberGrdVO mberGrdVO) throws Exception { return update("mberGrdDAO.updateGrdSetting", mberGrdVO); } + // 등급제 등급 목록 + @SuppressWarnings("unchecked") + public List selectMberGrdList(MberGrdVO mberGrdVO) throws Exception{ + return (List)list("mberGrdDAO.selectMberGrdList", mberGrdVO); + } + // 회원별 등급 상세 public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception{ return (MberGrdVO) select("mberGrdDAO.selectMberGrdDetail", mberGrdVO); } + // 회원별 등급 누적결제액 상세 + public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception{ + return (MberGrdVO) select("mberGrdDAO.selectMberGrdAmtDetail", mberGrdVO); + } + // 회원별 등급 등록 public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception{ insert("mberGrdDAO.insertMberGrd", mberGrdVO); @@ -61,6 +78,11 @@ public class MberGrdDAO extends EgovAbstractDAO { return (int) select("mberGrdDAO.selectMberGrdPrgCnt", userId); } + // 회원별 등급 저장여부 + public int selectMberGrdSaveCnt(String userId) throws Exception{ + return (int) select("mberGrdDAO.selectMberGrdSaveCnt", userId); + } + // 회원별 등급 히스토리 등록 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 dde47c86..740b4958 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 @@ -29,11 +29,18 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG } + // 등급제 설정 목록 @Override public List selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception { return mberGrdDAO.selectMberGrdSettingList(mberGrdVO); } + // 회원별 설정 상세 + @Override + public MberGrdVO selectMberGrdSettingDetail(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.selectMberGrdSettingDetail(mberGrdVO); + } + // 등급제 설정 일괄변경 @Override public int updateGrdSettingList(MberGrdVO mberGrdVO) throws Exception { @@ -56,6 +63,12 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG return updateCnt; } + + // 등급제 등급 목록 + @Override + public List selectMberGrdList(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.selectMberGrdList(mberGrdVO); + } // 회원별 등급 상세 @Override @@ -63,6 +76,12 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG return mberGrdDAO.selectMberGrdDetail(mberGrdVO); } + // 회원별 등급 누적결제액 상세 + @Override + public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.selectMberGrdAmtDetail(mberGrdVO); + } + // 회원별 등급 등록 @Override public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception { @@ -78,7 +97,16 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG // 회원별 등급 초기화 @Override public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception { - return mberGrdDAO.updateMberGrdAll(mberGrdVO); + int updateCnt = 0; + + // Step 1. 등급제 시행 ON 일경우 + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate()) { + updateCnt = mberGrdDAO.updateMberGrdAll(mberGrdVO); + } + + return updateCnt; } // 회원별 등급 일괄변경 @@ -87,12 +115,77 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG return mberGrdDAO.updateMberGrdEndAll(mberGrdVO); } + // 회원별 등급 적용 + @Override + public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception { + mberGrdVO.setRegId(mberGrdVO.getMberId()); + mberGrdVO.setEditId(mberGrdVO.getMberId()); + + // Step 1. 등급제 시행 ON 일경우 + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate()) { + mberGrdVO.setGrdDate(mberGrdVO1.getGrdDate()); + + // Step 2. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회 + MberGrdVO mberGrdVO2 = new MberGrdVO(); + mberGrdVO2 = selectMberGrdAmtDetail(mberGrdVO); + if (null != mberGrdVO2) { + mberGrdVO.setTotAmt(mberGrdVO2.getTotAmt()); + mberGrdVO.setGrdSetNo(mberGrdVO2.getGrdSetNo()); + + // Step 3. 등급제 설정값 조회 + MberGrdVO mberGrdVO3 = new MberGrdVO(); + mberGrdVO3 = selectMberGrdSettingDetail(mberGrdVO); + if (null != mberGrdVO3) { + mberGrdVO.setAmt("0"); + mberGrdVO.setTotAmt(mberGrdVO.getTotAmt()); + mberGrdVO.setShortPrice(mberGrdVO3.getShortPrice()); + mberGrdVO.setLongPrice(mberGrdVO3.getLongPrice()); + mberGrdVO.setPicturePrice(mberGrdVO3.getPicturePrice()); + mberGrdVO.setPicture2Price(mberGrdVO3.getPicture2Price()); + mberGrdVO.setPicture3Price(mberGrdVO3.getPicture3Price()); + mberGrdVO.setGrdStartDate(mberGrdVO.getGrdDate() + " 00:00:00"); + mberGrdVO.setGrdEndDate("9999:12:31 23:59:59"); + mberGrdVO.setGrdStatus("Y"); + + // Step 4. 인서트 Or 업데이트 + MberGrdVO mberGrdVO4 = new MberGrdVO(); + mberGrdVO4 = selectMberGrdDetail(mberGrdVO); + if (null != mberGrdVO4) { + // 업데이트 => 현재 등급보다 낮거나 같으면 업데이트 처리 + if (mberGrdVO4.getGrdSetNo() >= mberGrdVO.getGrdSetNo()) { + updateMberGrd(mberGrdVO); + + // 회원별 등급 히스토리 인서트 + insertMberGrdHist(mberGrdVO); + } + } + else { + // 인서트 + insertMberGrd(mberGrdVO); + + // 회원별 등급 히스토리 인서트 + insertMberGrdHist(mberGrdVO); + } + } + } + } + + } + // 회원별 등급 진행여부 @Override public int selectMberGrdPrgCnt(String userId) throws Exception{ return mberGrdDAO.selectMberGrdPrgCnt(userId); } + // 회원별 등급 저장여부 + @Override + public int selectMberGrdSaveCnt(String userId) throws Exception{ + return mberGrdDAO.selectMberGrdSaveCnt(userId); + } + // 회원별 등급 히스토리 등록 @Override diff --git a/src/main/java/itn/let/sym/grd/web/MberGrdController.java b/src/main/java/itn/let/sym/grd/web/MberGrdController.java index adba000f..eafc621f 100644 --- a/src/main/java/itn/let/sym/grd/web/MberGrdController.java +++ b/src/main/java/itn/let/sym/grd/web/MberGrdController.java @@ -127,4 +127,39 @@ public class MberGrdController { return modelAndView; } + // 회원별 등급 적용 테스트 + @RequestMapping(value = "/sym/grd/mberGrdSaveAjax.do") + public ModelAndView mberGrdSaveAjax( + @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = true; + String msg = ""; + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String frstRegisterId = loginVO == null ? "" : loginVO.getId(); + mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID + + try{ + + // 회원별 등급 적용 + mberGrdVO.setMberId("nopay"); + mberGrdService.mberGrdSaveByUser(mberGrdVO); + + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + + } 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 016f2a91..e4512cbc 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 @@ -17,7 +17,7 @@ + + + UPDATE mj_mber_grd_setting A @@ -59,6 +79,39 @@ WHERE A.GRD_SET_NO = #grdSetNo# + + + + + + INSERT INTO mj_mber_grd_info @@ -117,7 +198,7 @@ , #amt# , #totAmt# , #grdStartDate# - , #grd_endDate# + , #grdEndDate# , #grdStatus# , #regId# , NOW() @@ -136,12 +217,9 @@ , PICTURE_PRICE = #picturePrice# , PICTURE2_PRICE = #picture2Price# , PICTURE3_PRICE = #picture3Price# - , AMT = #amt# + , AMT = #amt# , TOT_AMT = #totAmt# - , GRD_START_DATE = #grdStartDate# - , GRD_END_DATE = #grd_endDate# - , GRD_STATUS = #grdStatus# - , EDIT_ID = #editId# + , EDIT_ID = #editId# , EDIT_DATE = NOW() WHERE MBER_ID = #mberId# @@ -216,7 +294,16 @@ AND NOW() BETWEEN GRD_START_DATE AND GRD_END_DATE LIMIT 1 - + + + + diff --git a/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp b/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp index eec67867..bc7aa820 100644 --- a/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp +++ b/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp @@ -84,6 +84,32 @@ } } + // 등급제 적용 테스트 + function setMberGrdSave() { + if(confirm("등급제 적용하시겠습니까?")) { + $.ajax({ + type: "POST", + url: "/sym/grd/mberGrdSaveAjax.do", + data: {}, + dataType:'json', + async: false, + success: function (data) { + if (data.isSuccess) { + alert("저장 완료했습니다."); + location.reload(); + } + else { + alert("Msg : " + data.msg); + } + }, + error: function (e) { + alert("ERROR : " + JSON.stringify(e)); + } + }); + } + } + + @@ -172,6 +198,7 @@
+