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 863c0799..7f9b3fed 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdService.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdService.java @@ -46,12 +46,21 @@ public interface MberGrdService { // 회원별 등급 일괄변경 public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception; + // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 + public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception; + // 문자할인, B선라인 대상자 초기화 public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception; - // 회원별 등급 초기화 + // 전체회원 등급 초기화 public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception; + // 회원 등급제 종료 + public int updateMberGrdEndByUser(MberGrdVO mberGrdVO) throws Exception; + + // 회원 등급제 복원 + public int updateMberGrdRestoreByUser(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급 적용 public void mberGrdSaveByUser(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 3c9575ac..9446df5d 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 @@ -73,16 +73,31 @@ public class MberGrdDAO extends EgovAbstractDAO { return update("mberGrdDAO.updateMberGrdAll", mberGrdVO); } + // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 + public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception { + return update("mberGrdDAO.updateMberGrdAfterRefund", mberGrdVO); + } + // 문자할인, B선라인 대상자 초기화 public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception { return update("mberGrdDAO.updateMberGrdEndBySale", mberGrdVO); } - // 회원별 등급 초기화 + // 전체회원 등급 초기화 public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception { return update("mberGrdDAO.updateMberGrdEndAll", mberGrdVO); } + // 회원 등급제 종료 + public int updateMberGrdEndByUser(MberGrdVO mberGrdVO) throws Exception { + return update("mberGrdDAO.updateMberGrdEndByUser", mberGrdVO); + } + + // 회원 등급제 복원 + public int updateMberGrdRestoreByUser(MberGrdVO mberGrdVO) throws Exception { + return update("mberGrdDAO.updateMberGrdRestoreByUser", mberGrdVO); + } + // 회원별 등급 진행여부 public int selectMberGrdPrgCnt(String mberId) throws Exception{ return (int) select("mberGrdDAO.selectMberGrdPrgCnt", mberId); 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 c1a2954c..3808d08d 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 @@ -167,16 +167,34 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG return updateCnt1 + updateCnt2; } - // 회원별 등급 초기화 + // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 + @Override + public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.updateMberGrdAfterRefund(mberGrdVO); + } + + // 문자할인, B선라인 대상자 초기화 + @Override + public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO); + } + + // 전체회원 등급 초기화 @Override public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception { return mberGrdDAO.updateMberGrdEndAll(mberGrdVO); } - // 문자할인, B선라인 대상자 초기화 + // 회원 등급제 종료 @Override - public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception { - return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO); + public int updateMberGrdEndByUser(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.updateMberGrdEndByUser(mberGrdVO); + } + + // 회원 등급제 복원 + @Override + public int updateMberGrdRestoreByUser(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.updateMberGrdRestoreByUser(mberGrdVO); } // 회원별 등급 적용 @@ -217,7 +235,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG MberGrdVO mberGrdVO4 = new MberGrdVO(); mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO); if (null != mberGrdVO4) { - mberGrdVO.setAmt("0"); + mberGrdVO.setAmt(mberGrdVO.getAmt()); mberGrdVO.setTotAmt(mberGrdVO.getTotAmt()); mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice()); mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice()); @@ -233,8 +251,8 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG MberGrdVO mberGrdVO5 = new MberGrdVO(); mberGrdVO5 = selectMberGrdDetail(mberGrdVO); if (null != mberGrdVO5) { - // 업데이트 => 현재 등급보다 낮거나 같으면 업데이트 처리 - if (mberGrdVO5.getGrdSetNo() >= mberGrdVO.getGrdSetNo()) { + // 업데이트 => 기존등급보다 상위등급 대상만 업데이트 + if (mberGrdVO5.getGrdSetNo() > mberGrdVO.getGrdSetNo()) { updateMberGrd(mberGrdVO); // 회원별 등급 히스토리 인서트 diff --git a/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java b/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java index 94f037e1..0448f7a1 100644 --- a/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java +++ b/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java @@ -147,8 +147,7 @@ public class MberGrdMngController { try{ // 회원별 등급 적용 - mberGrdVO.setAmt("0"); // 결제금액 - mberGrdVO.setMberId("nopay"); // 결제자 + mberGrdVO.setAmt("0"); mberGrdService.mberGrdSaveByUser(mberGrdVO); } @@ -235,6 +234,108 @@ public class MberGrdMngController { modelAndView.addObject("msg", msg); return modelAndView; - } - + } + + // 회원 등급제 종료 + @RequestMapping(value = "/sym/grd/mberGrdEndByUserAjax.do") + public ModelAndView mberGrdEndByUserAjax( + @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{ + + // 회원 등급제 종료 + mberGrdService.updateMberGrdEndByUser(mberGrdVO); + + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + + // 회원 등급제 복원 + @RequestMapping(value = "/sym/grd/mberGrdRestoreByUserAjax.do") + public ModelAndView mberGrdRestoreByUserAjax( + @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{ + + // 회원 등급제 복원 + mberGrdService.updateMberGrdRestoreByUser(mberGrdVO); + + // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 + mberGrdService.updateMberGrdAfterRefund(mberGrdVO); + + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + + // 회원 등급제 갱신 + @RequestMapping(value = "/sym/grd/mberGrdUpdateByUserAjax.do") + public ModelAndView mberGrdUpdateByUserAjax( + @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{ + + // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 + mberGrdService.updateMberGrdAfterRefund(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 5c05591f..f313ce5b 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 @@ -108,14 +108,14 @@ , DATE_FORMAT(A.GRD_END_DATE, '%Y-%m-%d') AS grdEndDate , A.GRD_STATUS AS grdStatus , CASE - WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d') + WHEN A.GRD_STATUS = 'E' + THEN '종료' + WHEN A.GRD_STATUS = 'N' + THEN '대기' + WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')) THEN '대기' WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE THEN '진행' - WHEN A.GRD_STATUS = 'N' - THEN '대기' - WHEN A.GRD_STATUS = 'E' - THEN '종료' ELSE '종료' END AS grdStatusNm , A.REG_ID AS regId @@ -143,40 +143,40 @@ AND (CASE - WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d') + WHEN A.GRD_STATUS = 'E' + THEN '종료' + WHEN A.GRD_STATUS = 'N' + THEN '대기' + WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')) THEN '대기' WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE THEN '진행' - WHEN A.GRD_STATUS = 'N' - THEN '대기' - WHEN A.GRD_STATUS = 'E' - THEN '종료' ELSE '종료' END) = '진행' AND (CASE - WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d') + WHEN A.GRD_STATUS = 'E' + THEN '종료' + WHEN A.GRD_STATUS = 'N' + THEN '대기' + WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')) THEN '대기' WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE THEN '진행' - WHEN A.GRD_STATUS = 'N' - THEN '대기' - WHEN A.GRD_STATUS = 'E' - THEN '종료' ELSE '종료' END) = '대기' AND (CASE - WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d') + WHEN A.GRD_STATUS = 'E' + THEN '종료' + WHEN A.GRD_STATUS = 'N' + THEN '대기' + WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')) THEN '대기' WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE THEN '진행' - WHEN A.GRD_STATUS = 'N' - THEN '대기' - WHEN A.GRD_STATUS = 'E' - THEN '종료' ELSE '종료' END) = '종료' @@ -295,26 +295,33 @@ = CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00') GROUP BY S.USER_ID ) M WHERE M.GRD_SET_NO IS NOT NULL AND M.AMT_SUM > 0 - AND M.USER_ID = #mberId# + AND M.USER_ID = #mberId# ]]> @@ -380,7 +387,11 @@ MBER_ID = #mberId# - + = CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00') GROUP BY S.USER_ID @@ -428,6 +445,64 @@ ]]> + + + = CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00') + GROUP BY S.USER_ID + ) M + WHERE M.GRD_SET_NO IS NOT NULL + AND M.AMT_SUM > 0 + ) B + ON A.MBER_ID = B.USER_ID + INNER JOIN MJ_MBER_GRD_SETTING C + ON C.GRD_SET_NO = B.GRD_SET_NO + SET + A.GRD_SET_NO = C.GRD_SET_NO + , A.SHORT_PRICE = C.SHORT_PRICE + , A.LONG_PRICE = C.LONG_PRICE + , A.PICTURE_PRICE = C.PICTURE_PRICE + , A.PICTURE2_PRICE = C.PICTURE2_PRICE + , A.PICTURE3_PRICE = C.PICTURE3_PRICE + , A.TOT_AMT = B.AMT_SUM + , A.GRD_DATE = CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00') + , A.EDIT_ID = #editId# + , A.EDIT_DATE = NOW() + WHERE B.GRD_SET_NO IS NOT NULL + AND A.MBER_ID = #mberId# + AND A.GRD_STATUS = 'Y' + AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE + ]]> + + - + UPDATE MJ_MBER_GRD_INFO SET GRD_END_DATE = NOW() @@ -478,6 +553,31 @@ GRD_STATUS != 'E' + + + UPDATE MJ_MBER_GRD_INFO SET + GRD_END_DATE = NOW() + , GRD_STATUS = 'E' + , EDIT_ID = #editId# + , EDIT_DATE = NOW() + WHERE + GRD_STATUS != 'E' + AND MBER_ID = #mberId# + + + + + UPDATE MJ_MBER_GRD_INFO SET + GRD_END_DATE = NOW() + , GRD_STATUS = 'Y' + , GRD_END_DATE = '9999-12-31 23:59:59' + , EDIT_ID = #editId# + , EDIT_DATE = NOW() + WHERE + GRD_STATUS != 'Y' + AND MBER_ID = #mberId# + + 종료일 등록일 + 수정일 상태 + 관리 @@ -179,7 +287,7 @@ function getMberGrdChk(mberId) { () - +    @@ -193,9 +301,23 @@ function getMberGrdChk(mberId) { + + + + + + + + + + + + + + @@ -205,7 +327,8 @@ function getMberGrdChk(mberId) {
- + +
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 bc7aa820..eec67867 100644 --- a/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp +++ b/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp @@ -84,32 +84,6 @@ } } - // 등급제 적용 테스트 - 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)); - } - }); - } - } - - @@ -198,7 +172,6 @@
-