From 022a753d28f45720e10d9cf1deed47687bcff36e Mon Sep 17 00:00:00 2001 From: itn Date: Wed, 26 Jul 2023 11:59:27 +0900 Subject: [PATCH] =?UTF-8?q?=EB=93=B1=EA=B8=89=EC=A0=9C=20=EB=8C=80?= =?UTF-8?q?=EB=9F=89=EB=93=B1=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../let/sym/grd/service/MberGrdService.java | 11 +- .../itn/let/sym/grd/service/MberGrdVO.java | 7 ++ .../let/sym/grd/service/impl/MberGrdDAO.java | 17 ++- .../grd/service/impl/MberGrdServiceImpl.java | 42 +++++-- .../let/sym/grd/web/MberGrdMngController.java | 92 ++++++++++++-- .../sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml | 119 ++++++++++++++---- .../WEB-INF/jsp/sym/grd/mberGrdSetting.jsp | 87 +++++++++++-- 7 files changed, 326 insertions(+), 49 deletions(-) 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 1cc83682..d360c0d1 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdService.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdService.java @@ -52,10 +52,19 @@ public interface MberGrdService { // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception; + // 회원별 등급 초기화 By Temp + public int updateMberGrdWhiteByTemp(MberGrdVO mberGrdVO) throws Exception; + + // 회원별 등급 초기화 All + public int updateMberGrdWhiteAll(MberGrdVO mberGrdVO) throws Exception; + // 문자할인, B선라인 대상자 종료 public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception; - // 전체회원 등급 종료 + // 전체회원 TEMP_YN 업데이트 + public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception; + + // 전체회원 등급 전체종료 public int updateMberGrdEndAll(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 cecd2c84..48be90ae 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdVO.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdVO.java @@ -46,6 +46,7 @@ public class MberGrdVO extends UserDefaultVO { private String grdNewDate; // 시작일자, 계산기간 시작일자 중 최근날짜 private String grdDatePrgYn; // 회원등급제 시작일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N) private String grdPeriod; // 회원등급제 누적결제 계산기간 + private String tempYn; // 검색필터 private String searchGrdStatus; @@ -268,6 +269,12 @@ public class MberGrdVO extends UserDefaultVO { public void setGrdPeriod(String grdPeriod) { this.grdPeriod = grdPeriod; } + public String getTempYn() { + return tempYn; + } + public void setTempYn(String tempYn) { + this.tempYn = tempYn; + } public String getSearchGrdStatus() { return searchGrdStatus; } 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 6e2a4f92..6bdd3179 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 @@ -83,12 +83,27 @@ public class MberGrdDAO extends EgovAbstractDAO { return update("mberGrdDAO.updateMberGrdAfterRefund", mberGrdVO); } + // 회원별 등급 초기화 By Temp + public int updateMberGrdWhiteByTemp(MberGrdVO mberGrdVO) throws Exception { + return update("mberGrdDAO.updateMberGrdWhiteByTemp", mberGrdVO); + } + + // 회원별 등급 초기화 All + public int updateMberGrdWhiteAll(MberGrdVO mberGrdVO) throws Exception { + return update("mberGrdDAO.updateMberGrdWhiteAll", mberGrdVO); + } + // 문자할인, B선라인 대상자 종료 public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception { return update("mberGrdDAO.updateMberGrdEndBySale", mberGrdVO); } - // 전체회원 등급 종료 + // 전체회원 TEMP_YN 업데이트 + public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception { + return update("mberGrdDAO.updateMberGrdTempYn", mberGrdVO); + } + + // 전체회원 등급 전체종료 public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception { return update("mberGrdDAO.updateMberGrdEndAll", mberGrdVO); } 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 89527352..f4fb250c 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 @@ -155,8 +155,9 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG // 회원별 등급 일괄변경 @Override public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception { - int updateCnt1 = 0; + int updateCnt = 0; int updateCnt2 = 0; + int updateCnt3 = 0; // Step 1. 등급제 시행 ON 일경우 MberGrdVO mberGrdVO1 = new MberGrdVO(); @@ -164,19 +165,26 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); - // 대상자 추가 + // Step1. 대상자 추가 insertMberGrdAllByExist(mberGrdVO); - // 문자할인, B선라인, 스팸회원 대상자 종료 - updateCnt1 = updateMberGrdEndBySale(mberGrdVO); + // Step2. TEMP_YN 업데이트(N) + mberGrdVO.setTempYn("N"); + updateMberGrdTempYn(mberGrdVO); - // 등급제 정상대상자 초기화(화이트등급) + // Step3. 문자할인, B선라인, 스팸회원 대상자 종료 + updateCnt = updateMberGrdEndBySale(mberGrdVO); - // 회원별 등급 일괄변경 + // Step4. 회원별 등급 일괄변경 updateCnt2 = mberGrdDAO.updateMberGrdAll(mberGrdVO); + + // Step5. 등급제 정상대상자 초기화(화이트등급) + updateCnt3 = updateMberGrdWhiteByTemp(mberGrdVO); + + } - return updateCnt1 + updateCnt2; + return updateCnt + updateCnt2 + updateCnt3; } // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 @@ -185,13 +193,31 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG return mberGrdDAO.updateMberGrdAfterRefund(mberGrdVO); } + // 회원별 등급 초기화 By Temp + @Override + public int updateMberGrdWhiteByTemp(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.updateMberGrdWhiteByTemp(mberGrdVO); + } + + // 회원별 등급 초기화 All + @Override + public int updateMberGrdWhiteAll(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.updateMberGrdWhiteAll(mberGrdVO); + } + // 문자할인, B선라인 대상자 종료 @Override public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception { return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO); } - // 전체회원 등급 종료 + // 전체회원 TEMP_YN 업데이트 + @Override + public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception { + return mberGrdDAO.updateMberGrdTempYn(mberGrdVO); + } + + // 전체회원 등급 전체종료 @Override public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception { return mberGrdDAO.updateMberGrdEndAll(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 a2bb58be..a65f255c 100644 --- a/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java +++ b/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java @@ -45,9 +45,9 @@ public class MberGrdMngController { return "/sym/grd/mberGrdSetting"; } - // 등급제 일괄 저장 - @RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do") - public ModelAndView mberGrdSettingMassUpdateAjax( + // 등급제 설정 저장 + @RequestMapping(value = "/sym/grd/mberGrdSettingUpdateAjax.do") + public ModelAndView mberGrdSettingUpdateAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); @@ -69,7 +69,44 @@ public class MberGrdMngController { isSuccess = false; msg = "등급제 시행여부 변경에 실패했습니다."; } - else { + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + modelAndView.addObject("updateMberCnt", updateMberCnt); + + return modelAndView; + } + + // 등급제 일괄 저장 + @RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do") + public ModelAndView mberGrdSettingMassUpdateAjax( + @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = true; + String msg = ""; + int updateMberCnt = 0; + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String frstRegisterId = loginVO == null ? "" : loginVO.getId(); + mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID + + try{ + // Step1. 등급제 시행여부 변경 + //int updateCnt1 = mberGrdService.updateMberSetting(mberGrdVO); + //if (updateCnt1 == 0) { + // isSuccess = false; + // msg = "등급제 시행여부 변경에 실패했습니다."; + //} + //else { // Step2. 등급제 단가 업데이트 int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO); if (updateCnt2 == 0) { @@ -80,7 +117,7 @@ public class MberGrdMngController { // Step3. 회원 등급 일괄변경 updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO); } - } + //} } catch(Exception e) { isSuccess = false; @@ -95,6 +132,46 @@ public class MberGrdMngController { } // 회원별 등급 초기화 + @RequestMapping(value = "/sym/grd/mberGrdResetMassUpdateAjax.do") + public ModelAndView mberGrdResetMassUpdateAjax( + @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = true; + String msg = ""; + int updateMberCnt = 0; + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String frstRegisterId = loginVO == null ? "" : loginVO.getId(); + mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID + + try{ + // Step 1. 등급제 시행 ON 일경우 + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { + mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); + + // 회원별 등급 초기화 + updateMberCnt = mberGrdService.updateMberGrdWhiteAll(mberGrdVO); + } + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + modelAndView.addObject("updateMberCnt", updateMberCnt); + + return modelAndView; + } + + // 회원별 등급제 전체종료 @RequestMapping(value = "/sym/grd/mberGrdEndMassUpdateAjax.do") public ModelAndView mberGrdEndMassUpdateAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { @@ -113,7 +190,7 @@ public class MberGrdMngController { try{ - // 회원별 등급 초기화 + // 회원별 등급 전체종료 updateMberCnt = mberGrdService.updateMberGrdEndAll(mberGrdVO); } @@ -257,7 +334,7 @@ public class MberGrdMngController { // 회원 등급제 종료 mberGrdService.updateMberGrdEndByUser(mberGrdVO); - + } catch(Exception e) { isSuccess = false; @@ -327,7 +404,6 @@ public class MberGrdMngController { MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { - // 회원별 등급 일괄변경 mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 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 502c3ace..e847d846 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 @@ -247,7 +247,7 @@ WHEN M.grdSetNo = 9 THEN 'orange' WHEN M.grdSetNo = 10 THEN 'green' WHEN M.grdSetNo = 11 THEN 'yellow' - WHEN M.grdSetNo = 112 THEN 'white' + WHEN M.grdSetNo = 12 THEN 'white' END grdSetIcon , M.grdDate , M.totAmt @@ -319,7 +319,7 @@ , IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM , (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM , ( - SELECT IFNULL(MIN(S1.GRD_SET_NO), 12) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) + SELECT IFNULL(MIN(S1.GRD_SET_NO), (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) ) GRD_SET_NO FROM MJ_PG S LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS @@ -402,7 +402,7 @@ - INSERT INTO MJ_MBER_GRD_INFO + INSERT INTO MJ_MBER_GRD_INFO ( MBER_ID , GRD_SET_NO @@ -423,13 +423,13 @@ , EDIT_DATE ) SELECT - A.MBER_ID - , S.GRD_SET_NO - , S.SHORT_PRICE - , S.LONG_PRICE - , S.PICTURE_PRICE - , S.PICTURE2_PRICE - , S.PICTURE3_PRICE + M.MBER_ID + , M.GRD_SET_NO + , M.SHORT_PRICE + , M.LONG_PRICE + , M.PICTURE_PRICE + , M.PICTURE2_PRICE + , M.PICTURE3_PRICE , 0 , 0 , #grdNewDate# @@ -439,19 +439,43 @@ , '' , NOW() , '' - , NOW() - FROM LETTNGNRLMBER A - INNER JOIN MJ_MBER_GRD_SETTING S - ON S.GRD_SET_NO = 12 - WHERE A.MBER_STTUS = 'Y' - AND MBER_ID NOT IN (SELECT MBER_ID FROM MJ_MBER_GRD_INFO) + , NOW() + FROM ( + SELECT + A.MBER_ID + , S.GRD_SET_NO + , S.SHORT_PRICE + , S.LONG_PRICE + , S.PICTURE_PRICE + , S.PICTURE2_PRICE + , S.PICTURE3_PRICE + , IFNULL(A.BLINE_CODE, 'N') AS blineCode + , IFNULL(A.SPAM_YN, 'N') AS spamYn + , CASE + WHEN + (A.SHORT_PRICE > 0 + AND (B.SHORT_PRICE > A.SHORT_PRICE + OR B.LONG_PRICE > A.LONG_PRICE + OR B.PICTURE_PRICE > A.PICTURE_PRICE + OR B.PICTURE2_PRICE > A.PICTURE2_PRICE + OR B.PICTURE3_PRICE > A.PICTURE3_PRICE) + ) + THEN 'Y' + ELSE 'N' + END isSalePrice + FROM LETTNGNRLMBER A + INNER JOIN MJ_MBER_GRD_SETTING S + ON S.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING) + JOIN MJ_MBER_SETTING B + WHERE A.MBER_STTUS = 'Y' + AND MBER_ID NOT IN (SELECT MBER_ID FROM MJ_MBER_GRD_INFO) + ) M + WHERE M.isSalePrice = 'N' + AND M.blineCode = 'N' + AND M.spamYn = 'N' - + + + + + + + + + + + + + + UPDATE MJ_MBER_GRD_INFO SET + TEMP_YN = #tempYn# + + UPDATE MJ_MBER_GRD_INFO SET 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 26b2fc66..0097b7fc 100644 --- a/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp +++ b/src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp @@ -5,16 +5,55 @@ <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> - 등급제 관리 + @@ -125,6 +187,9 @@ value="" > + +     + 누적결제 계산기간 @@ -134,7 +199,13 @@ -

+ +
+
+ +
+ +


@@ -178,9 +249,9 @@
- - - + + <%----%> +