등급제 신청기능 추가
@1b6f5e22afedffc119e127497f126fe56ea5e230
--- src/main/java/itn/let/sym/grd/service/MberGrdService.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdService.java
... | ... | @@ -14,12 +14,21 @@ |
| 14 | 14 |
// 등급제 설정 목록 |
| 15 | 15 |
List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception; |
| 16 | 16 |
|
| 17 |
+ // 회원별 설정 상세 |
|
| 18 |
+ public MberGrdVO selectMberGrdSettingDetail(MberGrdVO mberGrdVO) throws Exception; |
|
| 19 |
+ |
|
| 17 | 20 |
// 등급제 설정 일괄변경 |
| 18 | 21 |
public int updateGrdSettingList(MberGrdVO mberGrdVO) throws Exception; |
| 22 |
+ |
|
| 23 |
+ // 등급제 등급 목록 |
|
| 24 |
+ List<MberGrdVO> selectMberGrdList(MberGrdVO mberGrdVO) throws Exception; |
|
| 19 | 25 |
|
| 20 | 26 |
// 회원별 등급 상세 |
| 21 | 27 |
public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception; |
| 22 | 28 |
|
| 29 |
+ // 회원별 등급 누적결제액 상세 |
|
| 30 |
+ public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception; |
|
| 31 |
+ |
|
| 23 | 32 |
// 회원별 등급 등록 |
| 24 | 33 |
public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception; |
| 25 | 34 |
|
... | ... | @@ -32,9 +41,15 @@ |
| 32 | 41 |
// 회원별 등급 초기화 |
| 33 | 42 |
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception; |
| 34 | 43 |
|
| 44 |
+ // 회원별 등급 적용 |
|
| 45 |
+ public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception; |
|
| 46 |
+ |
|
| 35 | 47 |
// 회원별 등급 진행여부 |
| 36 | 48 |
int selectMberGrdPrgCnt(String userId) throws Exception; |
| 37 | 49 |
|
| 50 |
+ // 회원별 등급 저장여부 |
|
| 51 |
+ int selectMberGrdSaveCnt(String userId) throws Exception; |
|
| 52 |
+ |
|
| 38 | 53 |
|
| 39 | 54 |
// 회원별 등급 히스토리 등록 |
| 40 | 55 |
public void insertMberGrdHist(MberGrdVO mberGrdVO) throws Exception ; |
--- src/main/java/itn/let/sym/grd/service/MberGrdVO.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdVO.java
... | ... | @@ -30,7 +30,7 @@ |
| 30 | 30 |
private String mberId; |
| 31 | 31 |
private String amt; |
| 32 | 32 |
private String grdStartDate; |
| 33 |
- private String grd_endDate; |
|
| 33 |
+ private String grdEndDate; |
|
| 34 | 34 |
private String grdStatus; |
| 35 | 35 |
private int mberGrdHistNo; |
| 36 | 36 |
|
... | ... | @@ -184,11 +184,11 @@ |
| 184 | 184 |
public void setGrdStartDate(String grdStartDate) {
|
| 185 | 185 |
this.grdStartDate = grdStartDate; |
| 186 | 186 |
} |
| 187 |
- public String getGrd_endDate() {
|
|
| 188 |
- return grd_endDate; |
|
| 187 |
+ public String getGrdEndDate() {
|
|
| 188 |
+ return grdEndDate; |
|
| 189 | 189 |
} |
| 190 |
- public void setGrd_endDate(String grd_endDate) {
|
|
| 191 |
- this.grd_endDate = grd_endDate; |
|
| 190 |
+ public void setGrdEndDate(String grd_endDate) {
|
|
| 191 |
+ this.grdEndDate = grd_endDate; |
|
| 192 | 192 |
} |
| 193 | 193 |
public String getGrdStatus() {
|
| 194 | 194 |
return grdStatus; |
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
... | ... | @@ -20,10 +20,16 @@ |
| 20 | 20 |
return (MberGrdVO) select("mberGrdDAO.selectMberSettingDetail", mberGrdVO);
|
| 21 | 21 |
} |
| 22 | 22 |
|
| 23 |
+ |
|
| 23 | 24 |
// 등급제 설정 목록 |
| 24 | 25 |
@SuppressWarnings("unchecked")
|
| 25 | 26 |
public List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception{
|
| 26 | 27 |
return (List<MberGrdVO>)list("mberGrdDAO.selectMberGrdSettingList", mberGrdVO);
|
| 28 |
+ } |
|
| 29 |
+ |
|
| 30 |
+ // 회원별 설정 상세 |
|
| 31 |
+ public MberGrdVO selectMberGrdSettingDetail(MberGrdVO mberGrdVO) throws Exception{
|
|
| 32 |
+ return (MberGrdVO) select("mberGrdDAO.selectMberGrdSettingDetail", mberGrdVO);
|
|
| 27 | 33 |
} |
| 28 | 34 |
|
| 29 | 35 |
// 등급제 설정 일괄변경 |
... | ... | @@ -31,11 +37,22 @@ |
| 31 | 37 |
return update("mberGrdDAO.updateGrdSetting", mberGrdVO);
|
| 32 | 38 |
} |
| 33 | 39 |
|
| 40 |
+ // 등급제 등급 목록 |
|
| 41 |
+ @SuppressWarnings("unchecked")
|
|
| 42 |
+ public List<MberGrdVO> selectMberGrdList(MberGrdVO mberGrdVO) throws Exception{
|
|
| 43 |
+ return (List<MberGrdVO>)list("mberGrdDAO.selectMberGrdList", mberGrdVO);
|
|
| 44 |
+ } |
|
| 45 |
+ |
|
| 34 | 46 |
// 회원별 등급 상세 |
| 35 | 47 |
public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception{
|
| 36 | 48 |
return (MberGrdVO) select("mberGrdDAO.selectMberGrdDetail", mberGrdVO);
|
| 37 | 49 |
} |
| 38 | 50 |
|
| 51 |
+ // 회원별 등급 누적결제액 상세 |
|
| 52 |
+ public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception{
|
|
| 53 |
+ return (MberGrdVO) select("mberGrdDAO.selectMberGrdAmtDetail", mberGrdVO);
|
|
| 54 |
+ } |
|
| 55 |
+ |
|
| 39 | 56 |
// 회원별 등급 등록 |
| 40 | 57 |
public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception{
|
| 41 | 58 |
insert("mberGrdDAO.insertMberGrd", mberGrdVO);
|
... | ... | @@ -61,6 +78,11 @@ |
| 61 | 78 |
return (int) select("mberGrdDAO.selectMberGrdPrgCnt", userId);
|
| 62 | 79 |
} |
| 63 | 80 |
|
| 81 |
+ // 회원별 등급 저장여부 |
|
| 82 |
+ public int selectMberGrdSaveCnt(String userId) throws Exception{
|
|
| 83 |
+ return (int) select("mberGrdDAO.selectMberGrdSaveCnt", userId);
|
|
| 84 |
+ } |
|
| 85 |
+ |
|
| 64 | 86 |
|
| 65 | 87 |
// 회원별 등급 히스토리 등록 |
| 66 | 88 |
public void insertMberGrdHist(MberGrdVO mberGrdVO) throws Exception{
|
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
... | ... | @@ -29,10 +29,17 @@ |
| 29 | 29 |
} |
| 30 | 30 |
|
| 31 | 31 |
|
| 32 |
+ // 등급제 설정 목록 |
|
| 32 | 33 |
@Override |
| 33 | 34 |
public List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception {
|
| 34 | 35 |
return mberGrdDAO.selectMberGrdSettingList(mberGrdVO); |
| 35 | 36 |
} |
| 37 |
+ |
|
| 38 |
+ // 회원별 설정 상세 |
|
| 39 |
+ @Override |
|
| 40 |
+ public MberGrdVO selectMberGrdSettingDetail(MberGrdVO mberGrdVO) throws Exception {
|
|
| 41 |
+ return mberGrdDAO.selectMberGrdSettingDetail(mberGrdVO); |
|
| 42 |
+ } |
|
| 36 | 43 |
|
| 37 | 44 |
// 등급제 설정 일괄변경 |
| 38 | 45 |
@Override |
... | ... | @@ -56,11 +63,23 @@ |
| 56 | 63 |
return updateCnt; |
| 57 | 64 |
} |
| 58 | 65 |
|
| 66 |
+ |
|
| 67 |
+ // 등급제 등급 목록 |
|
| 68 |
+ @Override |
|
| 69 |
+ public List<MberGrdVO> selectMberGrdList(MberGrdVO mberGrdVO) throws Exception {
|
|
| 70 |
+ return mberGrdDAO.selectMberGrdList(mberGrdVO); |
|
| 71 |
+ } |
|
| 59 | 72 |
|
| 60 | 73 |
// 회원별 등급 상세 |
| 61 | 74 |
@Override |
| 62 | 75 |
public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception {
|
| 63 | 76 |
return mberGrdDAO.selectMberGrdDetail(mberGrdVO); |
| 77 |
+ } |
|
| 78 |
+ |
|
| 79 |
+ // 회원별 등급 누적결제액 상세 |
|
| 80 |
+ @Override |
|
| 81 |
+ public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception {
|
|
| 82 |
+ return mberGrdDAO.selectMberGrdAmtDetail(mberGrdVO); |
|
| 64 | 83 |
} |
| 65 | 84 |
|
| 66 | 85 |
// 회원별 등급 등록 |
... | ... | @@ -78,7 +97,16 @@ |
| 78 | 97 |
// 회원별 등급 초기화 |
| 79 | 98 |
@Override |
| 80 | 99 |
public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
|
| 81 |
- return mberGrdDAO.updateMberGrdAll(mberGrdVO); |
|
| 100 |
+ int updateCnt = 0; |
|
| 101 |
+ |
|
| 102 |
+ // Step 1. 등급제 시행 ON 일경우 |
|
| 103 |
+ MberGrdVO mberGrdVO1 = new MberGrdVO(); |
|
| 104 |
+ mberGrdVO1 = selectMberSettingDetail(mberGrdVO); |
|
| 105 |
+ if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate()) {
|
|
| 106 |
+ updateCnt = mberGrdDAO.updateMberGrdAll(mberGrdVO); |
|
| 107 |
+ } |
|
| 108 |
+ |
|
| 109 |
+ return updateCnt; |
|
| 82 | 110 |
} |
| 83 | 111 |
|
| 84 | 112 |
// 회원별 등급 일괄변경 |
... | ... | @@ -87,12 +115,77 @@ |
| 87 | 115 |
return mberGrdDAO.updateMberGrdEndAll(mberGrdVO); |
| 88 | 116 |
} |
| 89 | 117 |
|
| 118 |
+ // 회원별 등급 적용 |
|
| 119 |
+ @Override |
|
| 120 |
+ public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception {
|
|
| 121 |
+ mberGrdVO.setRegId(mberGrdVO.getMberId()); |
|
| 122 |
+ mberGrdVO.setEditId(mberGrdVO.getMberId()); |
|
| 123 |
+ |
|
| 124 |
+ // Step 1. 등급제 시행 ON 일경우 |
|
| 125 |
+ MberGrdVO mberGrdVO1 = new MberGrdVO(); |
|
| 126 |
+ mberGrdVO1 = selectMberSettingDetail(mberGrdVO); |
|
| 127 |
+ if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate()) {
|
|
| 128 |
+ mberGrdVO.setGrdDate(mberGrdVO1.getGrdDate()); |
|
| 129 |
+ |
|
| 130 |
+ // Step 2. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회 |
|
| 131 |
+ MberGrdVO mberGrdVO2 = new MberGrdVO(); |
|
| 132 |
+ mberGrdVO2 = selectMberGrdAmtDetail(mberGrdVO); |
|
| 133 |
+ if (null != mberGrdVO2) {
|
|
| 134 |
+ mberGrdVO.setTotAmt(mberGrdVO2.getTotAmt()); |
|
| 135 |
+ mberGrdVO.setGrdSetNo(mberGrdVO2.getGrdSetNo()); |
|
| 136 |
+ |
|
| 137 |
+ // Step 3. 등급제 설정값 조회 |
|
| 138 |
+ MberGrdVO mberGrdVO3 = new MberGrdVO(); |
|
| 139 |
+ mberGrdVO3 = selectMberGrdSettingDetail(mberGrdVO); |
|
| 140 |
+ if (null != mberGrdVO3) {
|
|
| 141 |
+ mberGrdVO.setAmt("0");
|
|
| 142 |
+ mberGrdVO.setTotAmt(mberGrdVO.getTotAmt()); |
|
| 143 |
+ mberGrdVO.setShortPrice(mberGrdVO3.getShortPrice()); |
|
| 144 |
+ mberGrdVO.setLongPrice(mberGrdVO3.getLongPrice()); |
|
| 145 |
+ mberGrdVO.setPicturePrice(mberGrdVO3.getPicturePrice()); |
|
| 146 |
+ mberGrdVO.setPicture2Price(mberGrdVO3.getPicture2Price()); |
|
| 147 |
+ mberGrdVO.setPicture3Price(mberGrdVO3.getPicture3Price()); |
|
| 148 |
+ mberGrdVO.setGrdStartDate(mberGrdVO.getGrdDate() + " 00:00:00"); |
|
| 149 |
+ mberGrdVO.setGrdEndDate("9999:12:31 23:59:59");
|
|
| 150 |
+ mberGrdVO.setGrdStatus("Y");
|
|
| 151 |
+ |
|
| 152 |
+ // Step 4. 인서트 Or 업데이트 |
|
| 153 |
+ MberGrdVO mberGrdVO4 = new MberGrdVO(); |
|
| 154 |
+ mberGrdVO4 = selectMberGrdDetail(mberGrdVO); |
|
| 155 |
+ if (null != mberGrdVO4) {
|
|
| 156 |
+ // 업데이트 => 현재 등급보다 낮거나 같으면 업데이트 처리 |
|
| 157 |
+ if (mberGrdVO4.getGrdSetNo() >= mberGrdVO.getGrdSetNo()) {
|
|
| 158 |
+ updateMberGrd(mberGrdVO); |
|
| 159 |
+ |
|
| 160 |
+ // 회원별 등급 히스토리 인서트 |
|
| 161 |
+ insertMberGrdHist(mberGrdVO); |
|
| 162 |
+ } |
|
| 163 |
+ } |
|
| 164 |
+ else {
|
|
| 165 |
+ // 인서트 |
|
| 166 |
+ insertMberGrd(mberGrdVO); |
|
| 167 |
+ |
|
| 168 |
+ // 회원별 등급 히스토리 인서트 |
|
| 169 |
+ insertMberGrdHist(mberGrdVO); |
|
| 170 |
+ } |
|
| 171 |
+ } |
|
| 172 |
+ } |
|
| 173 |
+ } |
|
| 174 |
+ |
|
| 175 |
+ } |
|
| 176 |
+ |
|
| 90 | 177 |
// 회원별 등급 진행여부 |
| 91 | 178 |
@Override |
| 92 | 179 |
public int selectMberGrdPrgCnt(String userId) throws Exception{
|
| 93 | 180 |
return mberGrdDAO.selectMberGrdPrgCnt(userId); |
| 94 | 181 |
} |
| 95 | 182 |
|
| 183 |
+ // 회원별 등급 저장여부 |
|
| 184 |
+ @Override |
|
| 185 |
+ public int selectMberGrdSaveCnt(String userId) throws Exception{
|
|
| 186 |
+ return mberGrdDAO.selectMberGrdSaveCnt(userId); |
|
| 187 |
+ } |
|
| 188 |
+ |
|
| 96 | 189 |
|
| 97 | 190 |
// 회원별 등급 히스토리 등록 |
| 98 | 191 |
@Override |
--- src/main/java/itn/let/sym/grd/web/MberGrdController.java
+++ src/main/java/itn/let/sym/grd/web/MberGrdController.java
... | ... | @@ -127,4 +127,39 @@ |
| 127 | 127 |
return modelAndView; |
| 128 | 128 |
} |
| 129 | 129 |
|
| 130 |
+ // 회원별 등급 적용 테스트 |
|
| 131 |
+ @RequestMapping(value = "/sym/grd/mberGrdSaveAjax.do") |
|
| 132 |
+ public ModelAndView mberGrdSaveAjax( |
|
| 133 |
+ @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
|
|
| 134 |
+ |
|
| 135 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 136 |
+ modelAndView.setViewName("jsonView");
|
|
| 137 |
+ |
|
| 138 |
+ boolean isSuccess = true; |
|
| 139 |
+ String msg = ""; |
|
| 140 |
+ |
|
| 141 |
+ // 로그인VO에서 사용자 정보 가져오기 |
|
| 142 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 143 |
+ String frstRegisterId = loginVO == null ? "" : loginVO.getId(); |
|
| 144 |
+ mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID |
|
| 145 |
+ |
|
| 146 |
+ try{
|
|
| 147 |
+ |
|
| 148 |
+ // 회원별 등급 적용 |
|
| 149 |
+ mberGrdVO.setMberId("nopay");
|
|
| 150 |
+ mberGrdService.mberGrdSaveByUser(mberGrdVO); |
|
| 151 |
+ |
|
| 152 |
+ } |
|
| 153 |
+ catch(Exception e) {
|
|
| 154 |
+ isSuccess = false; |
|
| 155 |
+ msg = e.getMessage(); |
|
| 156 |
+ } |
|
| 157 |
+ |
|
| 158 |
+ modelAndView.addObject("isSuccess", isSuccess);
|
|
| 159 |
+ modelAndView.addObject("msg", msg);
|
|
| 160 |
+ |
|
| 161 |
+ return modelAndView; |
|
| 162 |
+ } |
|
| 163 |
+ |
|
| 164 |
+ |
|
| 130 | 165 |
} |
--- src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
... | ... | @@ -17,7 +17,7 @@ |
| 17 | 17 |
<select id="mberGrdDAO.selectMberSettingDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO"> |
| 18 | 18 |
SELECT |
| 19 | 19 |
GRD_NOTI AS grdNoti |
| 20 |
- , GRD_DATE AS grdDate |
|
| 20 |
+ , DATE_FORMAT(GRD_DATE, '%Y-%m-%d' ) AS grdDate |
|
| 21 | 21 |
FROM |
| 22 | 22 |
MJ_MBER_SETTING |
| 23 | 23 |
LIMIT 1 |
... | ... | @@ -44,6 +44,26 @@ |
| 44 | 44 |
ORDER BY A.GRD_SET_NO ASC |
| 45 | 45 |
</select> |
| 46 | 46 |
|
| 47 |
+ <!-- 등급제 설정 상세 --> |
|
| 48 |
+ <select id="mberGrdDAO.selectMberGrdSettingDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO"> |
|
| 49 |
+ SELECT |
|
| 50 |
+ A.GRD_SET_NO AS grdSetNo |
|
| 51 |
+ , A.GRD_SET_NM AS grdSetNm |
|
| 52 |
+ , FLOOR(A.STD_AMT) AS stdAmt |
|
| 53 |
+ , FORMAT(FLOOR(A.STD_AMT),0) AS stdAmtComma |
|
| 54 |
+ , A.SHORT_PRICE AS shortPrice |
|
| 55 |
+ , A.LONG_PRICE AS longPrice |
|
| 56 |
+ , A.PICTURE_PRICE AS picturePrice |
|
| 57 |
+ , A.PICTURE2_PRICE AS picture2Price |
|
| 58 |
+ , A.PICTURE3_PRICE AS picture3Price |
|
| 59 |
+ , A.REG_ID AS regId |
|
| 60 |
+ , A.REG_DATE AS regDate |
|
| 61 |
+ , A.EDIT_ID AS editId |
|
| 62 |
+ , A.EDIT_DATE AS editDate |
|
| 63 |
+ FROM mj_mber_grd_setting A |
|
| 64 |
+ WHERE A.GRD_SET_NO = #grdSetNo# |
|
| 65 |
+ </select> |
|
| 66 |
+ |
|
| 47 | 67 |
<!-- 등급제 설정 일괄변경 일괄변경 --> |
| 48 | 68 |
<update id="mberGrdDAO.updateGrdSetting" parameterClass="mberGrdVO"> |
| 49 | 69 |
UPDATE mj_mber_grd_setting A |
... | ... | @@ -59,6 +79,39 @@ |
| 59 | 79 |
WHERE A.GRD_SET_NO = #grdSetNo# |
| 60 | 80 |
</update> |
| 61 | 81 |
|
| 82 |
+ <!-- 회원별 등급 목록 --> |
|
| 83 |
+ <select id="mberGrdDAO.selectMberGrdList" parameterClass="mberGrdVO" resultClass="mberGrdVO"> |
|
| 84 |
+ SELECT |
|
| 85 |
+ COUNT(MBER_ID) OVER() AS totCnt |
|
| 86 |
+ , MBER_ID AS mberId |
|
| 87 |
+ , GRD_SET_NO AS grdSetNo |
|
| 88 |
+ , SHORT_PRICE AS shortPrice |
|
| 89 |
+ , LONG_PRICE AS longPrice |
|
| 90 |
+ , PICTURE_PRICE AS picturePrice |
|
| 91 |
+ , PICTURE2_PRICE AS picture2Price |
|
| 92 |
+ , PICTURE3_PRICE AS picture3Price |
|
| 93 |
+ , AMT AS amt |
|
| 94 |
+ , TOT_AMT AS totAmt |
|
| 95 |
+ , GRD_START_DATE AS grdStartDate |
|
| 96 |
+ , GRD_END_DATE AS grdEndDate |
|
| 97 |
+ , GRD_STATUS AS grdStatus |
|
| 98 |
+ , REG_ID AS regId |
|
| 99 |
+ , REG_DATE AS regDate |
|
| 100 |
+ , EDIT_ID AS editId |
|
| 101 |
+ , EDIT_DATE AS editDate |
|
| 102 |
+ FROM |
|
| 103 |
+ mj_mber_grd_info |
|
| 104 |
+ WHERE 1=1 |
|
| 105 |
+ ORDER BY 1=1 |
|
| 106 |
+ <isNotEmpty property="searchSortCnd"> |
|
| 107 |
+ ,$searchSortCnd$ |
|
| 108 |
+ </isNotEmpty> |
|
| 109 |
+ <isNotEmpty property="searchSortOrd"> |
|
| 110 |
+ $searchSortOrd$ |
|
| 111 |
+ </isNotEmpty> |
|
| 112 |
+ LIMIT #recordCountPerPage# OFFSET #firstIndex# |
|
| 113 |
+ </select> |
|
| 114 |
+ |
|
| 62 | 115 |
<!-- 회원별 등급 상세 --> |
| 63 | 116 |
<select id="mberGrdDAO.selectMberGrdDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO"> |
| 64 | 117 |
SELECT |
... | ... | @@ -72,7 +125,7 @@ |
| 72 | 125 |
, AMT AS amt |
| 73 | 126 |
, TOT_AMT AS totAmt |
| 74 | 127 |
, GRD_START_DATE AS grdStartDate |
| 75 |
- , GRD_END_DATE AS grd_endDate |
|
| 128 |
+ , GRD_END_DATE AS grdEndDate |
|
| 76 | 129 |
, GRD_STATUS AS grdStatus |
| 77 | 130 |
, REG_ID AS regId |
| 78 | 131 |
, REG_DATE AS regDate |
... | ... | @@ -84,6 +137,34 @@ |
| 84 | 137 |
MBER_ID = #mberId# |
| 85 | 138 |
</select> |
| 86 | 139 |
|
| 140 |
+ <!-- 회원별 등급 누적결제액 상세 --> |
|
| 141 |
+ <select id="mberGrdDAO.selectMberGrdAmtDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO"> |
|
| 142 |
+ <![CDATA[ |
|
| 143 |
+ SELECT |
|
| 144 |
+ M.USER_ID AS mberId |
|
| 145 |
+ , M.AMT_SUM AS totAmt |
|
| 146 |
+ , M.GRD_SET_NO AS grdSetNo |
|
| 147 |
+ FROM ( |
|
| 148 |
+ SELECT |
|
| 149 |
+ S.USER_ID |
|
| 150 |
+ , SUM(S.AMT) AS AMT_SUM_ORIGIN |
|
| 151 |
+ , (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM |
|
| 152 |
+ , ( |
|
| 153 |
+ SELECT MIN(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) |
|
| 154 |
+ ) GRD_SET_NO |
|
| 155 |
+ FROM MJ_PG S |
|
| 156 |
+ LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS |
|
| 157 |
+ ON S.USER_ID = SS.MBER_ID |
|
| 158 |
+ AND SS.EVENT_START_DATE >= CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00') |
|
| 159 |
+ WHERE S.PG_STATUS = '1' |
|
| 160 |
+ AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00') |
|
| 161 |
+ GROUP BY S.USER_ID |
|
| 162 |
+ ) M |
|
| 163 |
+ WHERE M.GRD_SET_NO IS NOT NULL |
|
| 164 |
+ AND M.USER_ID = #mberId# |
|
| 165 |
+ ]]> |
|
| 166 |
+ </select> |
|
| 167 |
+ |
|
| 87 | 168 |
<!-- 회원별 등급 등록 --> |
| 88 | 169 |
<insert id="mberGrdDAO.insertMberGrd" parameterClass="mberGrdVO"> |
| 89 | 170 |
INSERT INTO mj_mber_grd_info |
... | ... | @@ -117,7 +198,7 @@ |
| 117 | 198 |
, #amt# |
| 118 | 199 |
, #totAmt# |
| 119 | 200 |
, #grdStartDate# |
| 120 |
- , #grd_endDate# |
|
| 201 |
+ , #grdEndDate# |
|
| 121 | 202 |
, #grdStatus# |
| 122 | 203 |
, #regId# |
| 123 | 204 |
, NOW() |
... | ... | @@ -136,12 +217,9 @@ |
| 136 | 217 |
, PICTURE_PRICE = #picturePrice# |
| 137 | 218 |
, PICTURE2_PRICE = #picture2Price# |
| 138 | 219 |
, PICTURE3_PRICE = #picture3Price# |
| 139 |
- , AMT = #amt# |
|
| 220 |
+ , AMT = #amt# |
|
| 140 | 221 |
, TOT_AMT = #totAmt# |
| 141 |
- , GRD_START_DATE = #grdStartDate# |
|
| 142 |
- , GRD_END_DATE = #grd_endDate# |
|
| 143 |
- , GRD_STATUS = #grdStatus# |
|
| 144 |
- , EDIT_ID = #editId# |
|
| 222 |
+ , EDIT_ID = #editId# |
|
| 145 | 223 |
, EDIT_DATE = NOW() |
| 146 | 224 |
WHERE |
| 147 | 225 |
MBER_ID = #mberId# |
... | ... | @@ -216,7 +294,16 @@ |
| 216 | 294 |
AND NOW() BETWEEN GRD_START_DATE AND GRD_END_DATE |
| 217 | 295 |
LIMIT 1 |
| 218 | 296 |
</select> |
| 219 |
- |
|
| 297 |
+ |
|
| 298 |
+ <!-- 회원별 등급 저장여부 --> |
|
| 299 |
+ <select id="mberGrdDAO.selectMberGrdSaveCnt" parameterClass="String" resultClass="Integer"> |
|
| 300 |
+ SELECT |
|
| 301 |
+ COUNT(0) |
|
| 302 |
+ FROM MJ_MBER_GRD_INFO A |
|
| 303 |
+ WHERE A.MBER_ID = #mberId# |
|
| 304 |
+ LIMIT 1 |
|
| 305 |
+ </select> |
|
| 306 |
+ |
|
| 220 | 307 |
|
| 221 | 308 |
<!-- 회원별 등급 히스토리 등록 --> |
| 222 | 309 |
<insert id="mberGrdDAO.insertMberGrdHist" parameterClass="mberGrdVO"> |
--- src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
+++ src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
... | ... | @@ -84,6 +84,32 @@ |
| 84 | 84 |
} |
| 85 | 85 |
} |
| 86 | 86 |
|
| 87 |
+ // 등급제 적용 테스트 |
|
| 88 |
+ function setMberGrdSave() {
|
|
| 89 |
+ if(confirm("등급제 적용하시겠습니까?")) {
|
|
| 90 |
+ $.ajax({
|
|
| 91 |
+ type: "POST", |
|
| 92 |
+ url: "/sym/grd/mberGrdSaveAjax.do", |
|
| 93 |
+ data: {},
|
|
| 94 |
+ dataType:'json', |
|
| 95 |
+ async: false, |
|
| 96 |
+ success: function (data) {
|
|
| 97 |
+ if (data.isSuccess) {
|
|
| 98 |
+ alert("저장 완료했습니다.");
|
|
| 99 |
+ location.reload(); |
|
| 100 |
+ } |
|
| 101 |
+ else {
|
|
| 102 |
+ alert("Msg : " + data.msg);
|
|
| 103 |
+ } |
|
| 104 |
+ }, |
|
| 105 |
+ error: function (e) {
|
|
| 106 |
+ alert("ERROR : " + JSON.stringify(e));
|
|
| 107 |
+ } |
|
| 108 |
+ }); |
|
| 109 |
+ } |
|
| 110 |
+ } |
|
| 111 |
+ |
|
| 112 |
+ |
|
| 87 | 113 |
</script> |
| 88 | 114 |
</head> |
| 89 | 115 |
<body> |
... | ... | @@ -172,6 +198,7 @@ |
| 172 | 198 |
<br /> |
| 173 | 199 |
<div class="btnWrap"> |
| 174 | 200 |
<input type="button" class="btnType2" value="모든 고객 등급 초기화" onclick="javascript:setMberGrdEndMassEdit(); return false;"> |
| 201 |
+ <input type="button" class="btnType2" value="등급제 적용테스트" onclick="javascript:setMberGrdSave(); return false;"> |
|
| 175 | 202 |
<input type="button" class="btnType1" value="취소" onclick="javascript:location.reload(); return false;"> |
| 176 | 203 |
<input type="button" class="btnType1" value="수정" onclick="javascript:setMberGrdSettingMassEdit(); return false;"> |
| 177 | 204 |
</div> |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?