등급제 대량등록 수정
@022a753d28f45720e10d9cf1deed47687bcff36e
--- src/main/java/itn/let/sym/grd/service/MberGrdService.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdService.java
... | ... | @@ -52,10 +52,19 @@ |
| 52 | 52 |
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 |
| 53 | 53 |
public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception; |
| 54 | 54 |
|
| 55 |
+ // 회원별 등급 초기화 By Temp |
|
| 56 |
+ public int updateMberGrdWhiteByTemp(MberGrdVO mberGrdVO) throws Exception; |
|
| 57 |
+ |
|
| 58 |
+ // 회원별 등급 초기화 All |
|
| 59 |
+ public int updateMberGrdWhiteAll(MberGrdVO mberGrdVO) throws Exception; |
|
| 60 |
+ |
|
| 55 | 61 |
// 문자할인, B선라인 대상자 종료 |
| 56 | 62 |
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception; |
| 57 | 63 |
|
| 58 |
- // 전체회원 등급 종료 |
|
| 64 |
+ // 전체회원 TEMP_YN 업데이트 |
|
| 65 |
+ public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception; |
|
| 66 |
+ |
|
| 67 |
+ // 전체회원 등급 전체종료 |
|
| 59 | 68 |
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception; |
| 60 | 69 |
|
| 61 | 70 |
// 회원 등급제 종료 |
--- src/main/java/itn/let/sym/grd/service/MberGrdVO.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdVO.java
... | ... | @@ -46,6 +46,7 @@ |
| 46 | 46 |
private String grdNewDate; // 시작일자, 계산기간 시작일자 중 최근날짜 |
| 47 | 47 |
private String grdDatePrgYn; // 회원등급제 시작일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N) |
| 48 | 48 |
private String grdPeriod; // 회원등급제 누적결제 계산기간 |
| 49 |
+ private String tempYn; |
|
| 49 | 50 |
|
| 50 | 51 |
// 검색필터 |
| 51 | 52 |
private String searchGrdStatus; |
... | ... | @@ -268,6 +269,12 @@ |
| 268 | 269 |
public void setGrdPeriod(String grdPeriod) {
|
| 269 | 270 |
this.grdPeriod = grdPeriod; |
| 270 | 271 |
} |
| 272 |
+ public String getTempYn() {
|
|
| 273 |
+ return tempYn; |
|
| 274 |
+ } |
|
| 275 |
+ public void setTempYn(String tempYn) {
|
|
| 276 |
+ this.tempYn = tempYn; |
|
| 277 |
+ } |
|
| 271 | 278 |
public String getSearchGrdStatus() {
|
| 272 | 279 |
return searchGrdStatus; |
| 273 | 280 |
} |
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
... | ... | @@ -83,12 +83,27 @@ |
| 83 | 83 |
return update("mberGrdDAO.updateMberGrdAfterRefund", mberGrdVO);
|
| 84 | 84 |
} |
| 85 | 85 |
|
| 86 |
+ // 회원별 등급 초기화 By Temp |
|
| 87 |
+ public int updateMberGrdWhiteByTemp(MberGrdVO mberGrdVO) throws Exception {
|
|
| 88 |
+ return update("mberGrdDAO.updateMberGrdWhiteByTemp", mberGrdVO);
|
|
| 89 |
+ } |
|
| 90 |
+ |
|
| 91 |
+ // 회원별 등급 초기화 All |
|
| 92 |
+ public int updateMberGrdWhiteAll(MberGrdVO mberGrdVO) throws Exception {
|
|
| 93 |
+ return update("mberGrdDAO.updateMberGrdWhiteAll", mberGrdVO);
|
|
| 94 |
+ } |
|
| 95 |
+ |
|
| 86 | 96 |
// 문자할인, B선라인 대상자 종료 |
| 87 | 97 |
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
|
| 88 | 98 |
return update("mberGrdDAO.updateMberGrdEndBySale", mberGrdVO);
|
| 89 | 99 |
} |
| 90 | 100 |
|
| 91 |
- // 전체회원 등급 종료 |
|
| 101 |
+ // 전체회원 TEMP_YN 업데이트 |
|
| 102 |
+ public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception {
|
|
| 103 |
+ return update("mberGrdDAO.updateMberGrdTempYn", mberGrdVO);
|
|
| 104 |
+ } |
|
| 105 |
+ |
|
| 106 |
+ // 전체회원 등급 전체종료 |
|
| 92 | 107 |
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
|
| 93 | 108 |
return update("mberGrdDAO.updateMberGrdEndAll", mberGrdVO);
|
| 94 | 109 |
} |
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
... | ... | @@ -155,8 +155,9 @@ |
| 155 | 155 |
// 회원별 등급 일괄변경 |
| 156 | 156 |
@Override |
| 157 | 157 |
public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
|
| 158 |
- int updateCnt1 = 0; |
|
| 158 |
+ int updateCnt = 0; |
|
| 159 | 159 |
int updateCnt2 = 0; |
| 160 |
+ int updateCnt3 = 0; |
|
| 160 | 161 |
|
| 161 | 162 |
// Step 1. 등급제 시행 ON 일경우 |
| 162 | 163 |
MberGrdVO mberGrdVO1 = new MberGrdVO(); |
... | ... | @@ -164,19 +165,26 @@ |
| 164 | 165 |
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
| 165 | 166 |
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); |
| 166 | 167 |
|
| 167 |
- // 대상자 추가 |
|
| 168 |
+ // Step1. 대상자 추가 |
|
| 168 | 169 |
insertMberGrdAllByExist(mberGrdVO); |
| 169 | 170 |
|
| 170 |
- // 문자할인, B선라인, 스팸회원 대상자 종료 |
|
| 171 |
- updateCnt1 = updateMberGrdEndBySale(mberGrdVO); |
|
| 171 |
+ // Step2. TEMP_YN 업데이트(N) |
|
| 172 |
+ mberGrdVO.setTempYn("N");
|
|
| 173 |
+ updateMberGrdTempYn(mberGrdVO); |
|
| 172 | 174 |
|
| 173 |
- // 등급제 정상대상자 초기화(화이트등급) |
|
| 175 |
+ // Step3. 문자할인, B선라인, 스팸회원 대상자 종료 |
|
| 176 |
+ updateCnt = updateMberGrdEndBySale(mberGrdVO); |
|
| 174 | 177 |
|
| 175 |
- // 회원별 등급 일괄변경 |
|
| 178 |
+ // Step4. 회원별 등급 일괄변경 |
|
| 176 | 179 |
updateCnt2 = mberGrdDAO.updateMberGrdAll(mberGrdVO); |
| 180 |
+ |
|
| 181 |
+ // Step5. 등급제 정상대상자 초기화(화이트등급) |
|
| 182 |
+ updateCnt3 = updateMberGrdWhiteByTemp(mberGrdVO); |
|
| 183 |
+ |
|
| 184 |
+ |
|
| 177 | 185 |
} |
| 178 | 186 |
|
| 179 |
- return updateCnt1 + updateCnt2; |
|
| 187 |
+ return updateCnt + updateCnt2 + updateCnt3; |
|
| 180 | 188 |
} |
| 181 | 189 |
|
| 182 | 190 |
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 |
... | ... | @@ -185,13 +193,31 @@ |
| 185 | 193 |
return mberGrdDAO.updateMberGrdAfterRefund(mberGrdVO); |
| 186 | 194 |
} |
| 187 | 195 |
|
| 196 |
+ // 회원별 등급 초기화 By Temp |
|
| 197 |
+ @Override |
|
| 198 |
+ public int updateMberGrdWhiteByTemp(MberGrdVO mberGrdVO) throws Exception {
|
|
| 199 |
+ return mberGrdDAO.updateMberGrdWhiteByTemp(mberGrdVO); |
|
| 200 |
+ } |
|
| 201 |
+ |
|
| 202 |
+ // 회원별 등급 초기화 All |
|
| 203 |
+ @Override |
|
| 204 |
+ public int updateMberGrdWhiteAll(MberGrdVO mberGrdVO) throws Exception {
|
|
| 205 |
+ return mberGrdDAO.updateMberGrdWhiteAll(mberGrdVO); |
|
| 206 |
+ } |
|
| 207 |
+ |
|
| 188 | 208 |
// 문자할인, B선라인 대상자 종료 |
| 189 | 209 |
@Override |
| 190 | 210 |
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
|
| 191 | 211 |
return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO); |
| 192 | 212 |
} |
| 193 | 213 |
|
| 194 |
- // 전체회원 등급 종료 |
|
| 214 |
+ // 전체회원 TEMP_YN 업데이트 |
|
| 215 |
+ @Override |
|
| 216 |
+ public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception {
|
|
| 217 |
+ return mberGrdDAO.updateMberGrdTempYn(mberGrdVO); |
|
| 218 |
+ } |
|
| 219 |
+ |
|
| 220 |
+ // 전체회원 등급 전체종료 |
|
| 195 | 221 |
@Override |
| 196 | 222 |
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
|
| 197 | 223 |
return mberGrdDAO.updateMberGrdEndAll(mberGrdVO); |
--- src/main/java/itn/let/sym/grd/web/MberGrdMngController.java
+++ src/main/java/itn/let/sym/grd/web/MberGrdMngController.java
... | ... | @@ -45,9 +45,9 @@ |
| 45 | 45 |
return "/sym/grd/mberGrdSetting"; |
| 46 | 46 |
} |
| 47 | 47 |
|
| 48 |
- // 등급제 일괄 저장 |
|
| 49 |
- @RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do") |
|
| 50 |
- public ModelAndView mberGrdSettingMassUpdateAjax( |
|
| 48 |
+ // 등급제 설정 저장 |
|
| 49 |
+ @RequestMapping(value = "/sym/grd/mberGrdSettingUpdateAjax.do") |
|
| 50 |
+ public ModelAndView mberGrdSettingUpdateAjax( |
|
| 51 | 51 |
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
|
| 52 | 52 |
|
| 53 | 53 |
ModelAndView modelAndView = new ModelAndView(); |
... | ... | @@ -69,7 +69,44 @@ |
| 69 | 69 |
isSuccess = false; |
| 70 | 70 |
msg = "등급제 시행여부 변경에 실패했습니다."; |
| 71 | 71 |
} |
| 72 |
- else {
|
|
| 72 |
+ } |
|
| 73 |
+ catch(Exception e) {
|
|
| 74 |
+ isSuccess = false; |
|
| 75 |
+ msg = e.getMessage(); |
|
| 76 |
+ } |
|
| 77 |
+ |
|
| 78 |
+ modelAndView.addObject("isSuccess", isSuccess);
|
|
| 79 |
+ modelAndView.addObject("msg", msg);
|
|
| 80 |
+ modelAndView.addObject("updateMberCnt", updateMberCnt);
|
|
| 81 |
+ |
|
| 82 |
+ return modelAndView; |
|
| 83 |
+ } |
|
| 84 |
+ |
|
| 85 |
+ // 등급제 일괄 저장 |
|
| 86 |
+ @RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do") |
|
| 87 |
+ public ModelAndView mberGrdSettingMassUpdateAjax( |
|
| 88 |
+ @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
|
|
| 89 |
+ |
|
| 90 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 91 |
+ modelAndView.setViewName("jsonView");
|
|
| 92 |
+ |
|
| 93 |
+ boolean isSuccess = true; |
|
| 94 |
+ String msg = ""; |
|
| 95 |
+ int updateMberCnt = 0; |
|
| 96 |
+ |
|
| 97 |
+ // 로그인VO에서 사용자 정보 가져오기 |
|
| 98 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 99 |
+ String frstRegisterId = loginVO == null ? "" : loginVO.getId(); |
|
| 100 |
+ mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID |
|
| 101 |
+ |
|
| 102 |
+ try{
|
|
| 103 |
+ // Step1. 등급제 시행여부 변경 |
|
| 104 |
+ //int updateCnt1 = mberGrdService.updateMberSetting(mberGrdVO); |
|
| 105 |
+ //if (updateCnt1 == 0) {
|
|
| 106 |
+ // isSuccess = false; |
|
| 107 |
+ // msg = "등급제 시행여부 변경에 실패했습니다."; |
|
| 108 |
+ //} |
|
| 109 |
+ //else {
|
|
| 73 | 110 |
// Step2. 등급제 단가 업데이트 |
| 74 | 111 |
int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO); |
| 75 | 112 |
if (updateCnt2 == 0) {
|
... | ... | @@ -80,7 +117,7 @@ |
| 80 | 117 |
// Step3. 회원 등급 일괄변경 |
| 81 | 118 |
updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO); |
| 82 | 119 |
} |
| 83 |
- } |
|
| 120 |
+ //} |
|
| 84 | 121 |
} |
| 85 | 122 |
catch(Exception e) {
|
| 86 | 123 |
isSuccess = false; |
... | ... | @@ -95,6 +132,46 @@ |
| 95 | 132 |
} |
| 96 | 133 |
|
| 97 | 134 |
// 회원별 등급 초기화 |
| 135 |
+ @RequestMapping(value = "/sym/grd/mberGrdResetMassUpdateAjax.do") |
|
| 136 |
+ public ModelAndView mberGrdResetMassUpdateAjax( |
|
| 137 |
+ @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
|
|
| 138 |
+ |
|
| 139 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 140 |
+ modelAndView.setViewName("jsonView");
|
|
| 141 |
+ |
|
| 142 |
+ boolean isSuccess = true; |
|
| 143 |
+ String msg = ""; |
|
| 144 |
+ int updateMberCnt = 0; |
|
| 145 |
+ |
|
| 146 |
+ // 로그인VO에서 사용자 정보 가져오기 |
|
| 147 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 148 |
+ String frstRegisterId = loginVO == null ? "" : loginVO.getId(); |
|
| 149 |
+ mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID |
|
| 150 |
+ |
|
| 151 |
+ try{
|
|
| 152 |
+ // Step 1. 등급제 시행 ON 일경우 |
|
| 153 |
+ MberGrdVO mberGrdVO1 = new MberGrdVO(); |
|
| 154 |
+ mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); |
|
| 155 |
+ if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
|
| 156 |
+ mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); |
|
| 157 |
+ |
|
| 158 |
+ // 회원별 등급 초기화 |
|
| 159 |
+ updateMberCnt = mberGrdService.updateMberGrdWhiteAll(mberGrdVO); |
|
| 160 |
+ } |
|
| 161 |
+ } |
|
| 162 |
+ catch(Exception e) {
|
|
| 163 |
+ isSuccess = false; |
|
| 164 |
+ msg = e.getMessage(); |
|
| 165 |
+ } |
|
| 166 |
+ |
|
| 167 |
+ modelAndView.addObject("isSuccess", isSuccess);
|
|
| 168 |
+ modelAndView.addObject("msg", msg);
|
|
| 169 |
+ modelAndView.addObject("updateMberCnt", updateMberCnt);
|
|
| 170 |
+ |
|
| 171 |
+ return modelAndView; |
|
| 172 |
+ } |
|
| 173 |
+ |
|
| 174 |
+ // 회원별 등급제 전체종료 |
|
| 98 | 175 |
@RequestMapping(value = "/sym/grd/mberGrdEndMassUpdateAjax.do") |
| 99 | 176 |
public ModelAndView mberGrdEndMassUpdateAjax( |
| 100 | 177 |
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
|
... | ... | @@ -113,7 +190,7 @@ |
| 113 | 190 |
|
| 114 | 191 |
try{
|
| 115 | 192 |
|
| 116 |
- // 회원별 등급 초기화 |
|
| 193 |
+ // 회원별 등급 전체종료 |
|
| 117 | 194 |
updateMberCnt = mberGrdService.updateMberGrdEndAll(mberGrdVO); |
| 118 | 195 |
|
| 119 | 196 |
} |
... | ... | @@ -257,7 +334,7 @@ |
| 257 | 334 |
|
| 258 | 335 |
// 회원 등급제 종료 |
| 259 | 336 |
mberGrdService.updateMberGrdEndByUser(mberGrdVO); |
| 260 |
- |
|
| 337 |
+ |
|
| 261 | 338 |
} |
| 262 | 339 |
catch(Exception e) {
|
| 263 | 340 |
isSuccess = false; |
... | ... | @@ -327,7 +404,6 @@ |
| 327 | 404 |
MberGrdVO mberGrdVO1 = new MberGrdVO(); |
| 328 | 405 |
mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); |
| 329 | 406 |
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
| 330 |
- // 회원별 등급 일괄변경 |
|
| 331 | 407 |
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); |
| 332 | 408 |
|
| 333 | 409 |
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 |
--- src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
... | ... | @@ -247,7 +247,7 @@ |
| 247 | 247 |
WHEN M.grdSetNo = 9 THEN 'orange' |
| 248 | 248 |
WHEN M.grdSetNo = 10 THEN 'green' |
| 249 | 249 |
WHEN M.grdSetNo = 11 THEN 'yellow' |
| 250 |
- WHEN M.grdSetNo = 112 THEN 'white' |
|
| 250 |
+ WHEN M.grdSetNo = 12 THEN 'white' |
|
| 251 | 251 |
END grdSetIcon |
| 252 | 252 |
, M.grdDate |
| 253 | 253 |
, M.totAmt |
... | ... | @@ -319,7 +319,7 @@ |
| 319 | 319 |
, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM |
| 320 | 320 |
, (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 |
| 321 | 321 |
, ( |
| 322 |
- 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)) |
|
| 322 |
+ 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)) |
|
| 323 | 323 |
) GRD_SET_NO |
| 324 | 324 |
FROM MJ_PG S |
| 325 | 325 |
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS |
... | ... | @@ -402,7 +402,7 @@ |
| 402 | 402 |
|
| 403 | 403 |
<!-- 회원별 등급 등록 All => 기존대상자 제외 --> |
| 404 | 404 |
<insert id="mberGrdDAO.insertMberGrdAllByExist" parameterClass="mberGrdVO"> |
| 405 |
- INSERT INTO MJ_MBER_GRD_INFO |
|
| 405 |
+ INSERT INTO MJ_MBER_GRD_INFO |
|
| 406 | 406 |
( |
| 407 | 407 |
MBER_ID |
| 408 | 408 |
, GRD_SET_NO |
... | ... | @@ -423,13 +423,13 @@ |
| 423 | 423 |
, EDIT_DATE |
| 424 | 424 |
) |
| 425 | 425 |
SELECT |
| 426 |
- A.MBER_ID |
|
| 427 |
- , S.GRD_SET_NO |
|
| 428 |
- , S.SHORT_PRICE |
|
| 429 |
- , S.LONG_PRICE |
|
| 430 |
- , S.PICTURE_PRICE |
|
| 431 |
- , S.PICTURE2_PRICE |
|
| 432 |
- , S.PICTURE3_PRICE |
|
| 426 |
+ M.MBER_ID |
|
| 427 |
+ , M.GRD_SET_NO |
|
| 428 |
+ , M.SHORT_PRICE |
|
| 429 |
+ , M.LONG_PRICE |
|
| 430 |
+ , M.PICTURE_PRICE |
|
| 431 |
+ , M.PICTURE2_PRICE |
|
| 432 |
+ , M.PICTURE3_PRICE |
|
| 433 | 433 |
, 0 |
| 434 | 434 |
, 0 |
| 435 | 435 |
, #grdNewDate# |
... | ... | @@ -439,19 +439,43 @@ |
| 439 | 439 |
, '' |
| 440 | 440 |
, NOW() |
| 441 | 441 |
, '' |
| 442 |
- , NOW() |
|
| 443 |
- FROM LETTNGNRLMBER A |
|
| 444 |
- INNER JOIN MJ_MBER_GRD_SETTING S |
|
| 445 |
- ON S.GRD_SET_NO = 12 |
|
| 446 |
- WHERE A.MBER_STTUS = 'Y' |
|
| 447 |
- AND MBER_ID NOT IN (SELECT MBER_ID FROM MJ_MBER_GRD_INFO) |
|
| 442 |
+ , NOW() |
|
| 443 |
+ FROM ( |
|
| 444 |
+ SELECT |
|
| 445 |
+ A.MBER_ID |
|
| 446 |
+ , S.GRD_SET_NO |
|
| 447 |
+ , S.SHORT_PRICE |
|
| 448 |
+ , S.LONG_PRICE |
|
| 449 |
+ , S.PICTURE_PRICE |
|
| 450 |
+ , S.PICTURE2_PRICE |
|
| 451 |
+ , S.PICTURE3_PRICE |
|
| 452 |
+ , IFNULL(A.BLINE_CODE, 'N') AS blineCode |
|
| 453 |
+ , IFNULL(A.SPAM_YN, 'N') AS spamYn |
|
| 454 |
+ , CASE |
|
| 455 |
+ WHEN |
|
| 456 |
+ (A.SHORT_PRICE > 0 |
|
| 457 |
+ AND (B.SHORT_PRICE > A.SHORT_PRICE |
|
| 458 |
+ OR B.LONG_PRICE > A.LONG_PRICE |
|
| 459 |
+ OR B.PICTURE_PRICE > A.PICTURE_PRICE |
|
| 460 |
+ OR B.PICTURE2_PRICE > A.PICTURE2_PRICE |
|
| 461 |
+ OR B.PICTURE3_PRICE > A.PICTURE3_PRICE) |
|
| 462 |
+ ) |
|
| 463 |
+ THEN 'Y' |
|
| 464 |
+ ELSE 'N' |
|
| 465 |
+ END isSalePrice |
|
| 466 |
+ FROM LETTNGNRLMBER A |
|
| 467 |
+ INNER JOIN MJ_MBER_GRD_SETTING S |
|
| 468 |
+ ON S.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING) |
|
| 469 |
+ JOIN MJ_MBER_SETTING B |
|
| 470 |
+ WHERE A.MBER_STTUS = 'Y' |
|
| 471 |
+ AND MBER_ID NOT IN (SELECT MBER_ID FROM MJ_MBER_GRD_INFO) |
|
| 472 |
+ ) M |
|
| 473 |
+ WHERE M.isSalePrice = 'N' |
|
| 474 |
+ AND M.blineCode = 'N' |
|
| 475 |
+ AND M.spamYn = 'N' |
|
| 448 | 476 |
</insert> |
| 449 | 477 |
|
| 450 |
- <!-- |
|
| 451 |
- 회원별 등급 일괄변경 |
|
| 452 |
- => 기존등급보다 상위등급 대상만 업데이트 됨. |
|
| 453 |
- => 기존등급과 같거나 좋지않은 경우 제외됨. |
|
| 454 |
- --> |
|
| 478 |
+ <!-- 회원별 등급 일괄변경 --> |
|
| 455 | 479 |
<update id="mberGrdDAO.updateMberGrdAll" parameterClass="mberGrdVO"> |
| 456 | 480 |
<![CDATA[ |
| 457 | 481 |
UPDATE MJ_MBER_GRD_INFO A |
... | ... | @@ -469,7 +493,7 @@ |
| 469 | 493 |
, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM |
| 470 | 494 |
, (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 |
| 471 | 495 |
, ( |
| 472 |
- 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)) |
|
| 496 |
+ 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)) |
|
| 473 | 497 |
) GRD_SET_NO |
| 474 | 498 |
FROM MJ_PG S |
| 475 | 499 |
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS |
... | ... | @@ -498,6 +522,7 @@ |
| 498 | 522 |
, A.TOT_AMT = B.AMT_SUM |
| 499 | 523 |
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00') |
| 500 | 524 |
, A.EDIT_DATE = NOW() |
| 525 |
+ , A.TEMP_YN = 'Y' |
|
| 501 | 526 |
WHERE B.GRD_SET_NO IS NOT NULL |
| 502 | 527 |
AND A.GRD_STATUS = 'Y' |
| 503 | 528 |
AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE |
... | ... | @@ -525,7 +550,7 @@ |
| 525 | 550 |
, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM |
| 526 | 551 |
, (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 |
| 527 | 552 |
, ( |
| 528 |
- 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)) |
|
| 553 |
+ 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)) |
|
| 529 | 554 |
) GRD_SET_NO |
| 530 | 555 |
FROM MJ_PG S |
| 531 | 556 |
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS |
... | ... | @@ -562,6 +587,48 @@ |
| 562 | 587 |
]]> |
| 563 | 588 |
</update> |
| 564 | 589 |
|
| 590 |
+ <!-- 회원별 등급 초기화 By Temp --> |
|
| 591 |
+ <update id="mberGrdDAO.updateMberGrdWhiteByTemp" parameterClass="mberGrdVO"> |
|
| 592 |
+ <![CDATA[ |
|
| 593 |
+ UPDATE MJ_MBER_GRD_INFO A |
|
| 594 |
+ JOIN MJ_MBER_GRD_SETTING C |
|
| 595 |
+ SET |
|
| 596 |
+ A.GRD_SET_NO = C.GRD_SET_NO |
|
| 597 |
+ , A.SHORT_PRICE = C.SHORT_PRICE |
|
| 598 |
+ , A.LONG_PRICE = C.LONG_PRICE |
|
| 599 |
+ , A.PICTURE_PRICE = C.PICTURE_PRICE |
|
| 600 |
+ , A.PICTURE2_PRICE = C.PICTURE2_PRICE |
|
| 601 |
+ , A.PICTURE3_PRICE = C.PICTURE3_PRICE |
|
| 602 |
+ , A.AMT = 0 |
|
| 603 |
+ , A.TOT_AMT = 0 |
|
| 604 |
+ , A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00') |
|
| 605 |
+ , A.EDIT_DATE = NOW() |
|
| 606 |
+ , A.TEMP_YN = 'Y' |
|
| 607 |
+ WHERE A.TEMP_YN = 'N' |
|
| 608 |
+ AND C.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING) |
|
| 609 |
+ ]]> |
|
| 610 |
+ </update> |
|
| 611 |
+ |
|
| 612 |
+ <!-- 회원별 등급 초기화 All --> |
|
| 613 |
+ <update id="mberGrdDAO.updateMberGrdWhiteAll" parameterClass="mberGrdVO"> |
|
| 614 |
+ <![CDATA[ |
|
| 615 |
+ UPDATE MJ_MBER_GRD_INFO A |
|
| 616 |
+ JOIN MJ_MBER_GRD_SETTING C |
|
| 617 |
+ SET |
|
| 618 |
+ A.GRD_SET_NO = C.GRD_SET_NO |
|
| 619 |
+ , A.SHORT_PRICE = C.SHORT_PRICE |
|
| 620 |
+ , A.LONG_PRICE = C.LONG_PRICE |
|
| 621 |
+ , A.PICTURE_PRICE = C.PICTURE_PRICE |
|
| 622 |
+ , A.PICTURE2_PRICE = C.PICTURE2_PRICE |
|
| 623 |
+ , A.PICTURE3_PRICE = C.PICTURE3_PRICE |
|
| 624 |
+ , A.AMT = 0 |
|
| 625 |
+ , A.TOT_AMT = 0 |
|
| 626 |
+ , A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00') |
|
| 627 |
+ , A.EDIT_DATE = NOW() |
|
| 628 |
+ WHERE C.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING) |
|
| 629 |
+ ]]> |
|
| 630 |
+ </update> |
|
| 631 |
+ |
|
| 565 | 632 |
<!-- 문자할인, B선라인, 스팸회원 대상자 종료 --> |
| 566 | 633 |
<update id="mberGrdDAO.updateMberGrdEndBySale" parameterClass="mberGrdVO"> |
| 567 | 634 |
<![CDATA[ |
... | ... | @@ -604,6 +671,12 @@ |
| 604 | 671 |
]]> |
| 605 | 672 |
</update> |
| 606 | 673 |
|
| 674 |
+ <!-- 전체회원 TEMP_YN 업데이트 --> |
|
| 675 |
+ <update id="mberGrdDAO.updateMberGrdTempYn" parameterClass="mberGrdVO"> |
|
| 676 |
+ UPDATE MJ_MBER_GRD_INFO SET |
|
| 677 |
+ TEMP_YN = #tempYn# |
|
| 678 |
+ </update> |
|
| 679 |
+ |
|
| 607 | 680 |
<!-- 전체회원 등급 종료 --> |
| 608 | 681 |
<update id="mberGrdDAO.updateMberGrdEndAll" parameterClass="mberGrdVO"> |
| 609 | 682 |
UPDATE MJ_MBER_GRD_INFO SET |
--- src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
+++ src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
... | ... | @@ -5,15 +5,54 @@ |
| 5 | 5 |
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> |
| 6 | 6 |
<!DOCTYPE html> |
| 7 | 7 |
<html lang="ko"> |
| 8 |
- |
|
| 9 | 8 |
<head> |
| 10 | 9 |
<meta charset="UTF-8"> |
| 11 | 10 |
<title>등급제 관리</title> |
| 11 |
+ |
|
| 12 | 12 |
<script type="text/javascript"> |
| 13 | 13 |
//숫자 천단위 콤마 찍어주기 |
| 14 | 14 |
function numberWithCommas(x) {
|
| 15 | 15 |
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
| 16 | 16 |
} |
| 17 |
+ |
|
| 18 |
+ // 등급제 설정변경 |
|
| 19 |
+ function setMberGrdSettingEdit() {
|
|
| 20 |
+ |
|
| 21 |
+ if ($("input[name='grdNoti']:checked").val() == "") {
|
|
| 22 |
+ alert("등급제 적용 온/오프를 선택해주세요.");
|
|
| 23 |
+ return false; |
|
| 24 |
+ } |
|
| 25 |
+ |
|
| 26 |
+ // 누적결제 적용일자 |
|
| 27 |
+ if ($("#ntceBgndeYYYMMDD").val() == "") {
|
|
| 28 |
+ alert("누적결제 적용일자를 선택해주세요.");
|
|
| 29 |
+ return false; |
|
| 30 |
+ } |
|
| 31 |
+ |
|
| 32 |
+ if(confirm("저장 하시겠습니까?")) {
|
|
| 33 |
+ $("#grdDate").val($("#ntceBgndeYYYMMDD").val());
|
|
| 34 |
+ |
|
| 35 |
+ $.ajax({
|
|
| 36 |
+ type: "POST", |
|
| 37 |
+ url: "/sym/grd/mberGrdSettingUpdateAjax.do", |
|
| 38 |
+ data: $("#listForm").serialize(),
|
|
| 39 |
+ dataType:'json', |
|
| 40 |
+ async: false, |
|
| 41 |
+ success: function (data) {
|
|
| 42 |
+ if (data.isSuccess) {
|
|
| 43 |
+ location.reload(); |
|
| 44 |
+ } |
|
| 45 |
+ else {
|
|
| 46 |
+ alert("Msg : " + data.msg);
|
|
| 47 |
+ } |
|
| 48 |
+ }, |
|
| 49 |
+ error: function (e) {
|
|
| 50 |
+ alert("ERROR : " + JSON.stringify(e));
|
|
| 51 |
+ } |
|
| 52 |
+ }); |
|
| 53 |
+ |
|
| 54 |
+ } |
|
| 55 |
+ } |
|
| 17 | 56 |
|
| 18 | 57 |
// 등급제 일괄변경 |
| 19 | 58 |
function setMberGrdSettingMassEdit() {
|
... | ... | @@ -55,16 +94,17 @@ |
| 55 | 94 |
error: function (e) {
|
| 56 | 95 |
alert("ERROR : " + JSON.stringify(e));
|
| 57 | 96 |
} |
| 58 |
- }); |
|
| 97 |
+ }); |
|
| 98 |
+ |
|
| 59 | 99 |
} |
| 60 | 100 |
} |
| 61 | 101 |
|
| 62 | 102 |
// 회원별 등급 초기화 |
| 63 |
- function setMberGrdEndMassEdit() {
|
|
| 103 |
+ function setMberGrdResetMassEdit() {
|
|
| 64 | 104 |
if(confirm("모든 고객 등급을 초기화하시겠습니까?")) {
|
| 65 | 105 |
$.ajax({
|
| 66 | 106 |
type: "POST", |
| 67 |
- url: "/sym/grd/mberGrdEndMassUpdateAjax.do", |
|
| 107 |
+ url: "/sym/grd/mberGrdResetMassUpdateAjax.do", |
|
| 68 | 108 |
data: {},
|
| 69 | 109 |
dataType:'json', |
| 70 | 110 |
async: false, |
... | ... | @@ -83,6 +123,28 @@ |
| 83 | 123 |
}); |
| 84 | 124 |
} |
| 85 | 125 |
} |
| 126 |
+ |
|
| 127 |
+ // 오늘날짜 Get |
|
| 128 |
+ function getToday() {
|
|
| 129 |
+ // new Date를 통해서 날짜 객체를 생성. 여기서 년, 월, 일 정보만 필요. |
|
| 130 |
+ const nowDate = new Date(); |
|
| 131 |
+ |
|
| 132 |
+ var year = nowDate.getFullYear(); // 년 |
|
| 133 |
+ var month = ('0' + (nowDate.getMonth() + 1)).slice(-2); // 월
|
|
| 134 |
+ var day = ('0' + nowDate.getDate()).slice(-2); // 일
|
|
| 135 |
+ |
|
| 136 |
+ // yyyy-mm-dd 형식으로 todate에 담기. |
|
| 137 |
+ var todate = year + '-' + month + '-' + day; |
|
| 138 |
+ |
|
| 139 |
+ return todate; |
|
| 140 |
+ } |
|
| 141 |
+ |
|
| 142 |
+ // 오늘날짜 Set |
|
| 143 |
+ function setToday() {
|
|
| 144 |
+ var toDay = getToday(); |
|
| 145 |
+ |
|
| 146 |
+ $('#ntceBgndeYYYMMDD').val(toDay);
|
|
| 147 |
+ } |
|
| 86 | 148 |
|
| 87 | 149 |
</script> |
| 88 | 150 |
</head> |
... | ... | @@ -125,6 +187,9 @@ |
| 125 | 187 |
value="<c:out value="${grdDate}" />" >
|
| 126 | 188 |
<input type="button" class="calBtn"> |
| 127 | 189 |
</a> |
| 190 |
+ |
|
| 191 |
+ |
|
| 192 |
+ <input type="button" style="cursor: pointer; height: 33px;" onclick="setToday();" value="오늘"> |
|
| 128 | 193 |
</td> |
| 129 | 194 |
<th>누적결제 계산기간</th> |
| 130 | 195 |
<td> |
... | ... | @@ -134,7 +199,13 @@ |
| 134 | 199 |
</tbody> |
| 135 | 200 |
</table> |
| 136 | 201 |
</div> |
| 137 |
- <br /><br /> |
|
| 202 |
+ |
|
| 203 |
+ <br /> |
|
| 204 |
+ <div class="btnWrap"> |
|
| 205 |
+ <input type="button" class="btnType1" value="저장" onclick="javascript:setMberGrdSettingEdit(); return false;"> |
|
| 206 |
+ </div> |
|
| 207 |
+ |
|
| 208 |
+ <br /><br /><br /> |
|
| 138 | 209 |
|
| 139 | 210 |
<div class="tableWrap"> |
| 140 | 211 |
<table class="tbType1"> |
... | ... | @@ -178,9 +249,9 @@ |
| 178 | 249 |
|
| 179 | 250 |
<br /> |
| 180 | 251 |
<div class="btnWrap"> |
| 181 |
- <input type="button" class="btnType2" value="모든 고객 등급 초기화" onclick="javascript:setMberGrdEndMassEdit(); return false;"> |
|
| 182 |
- <input type="button" class="btnType1" value="취소" onclick="javascript:location.reload(); return false;"> |
|
| 183 |
- <input type="button" class="btnType1" value="수정" onclick="javascript:setMberGrdSettingMassEdit(); return false;"> |
|
| 252 |
+ <input type="button" class="btnType2" value="모든 고객 등급 초기화" onclick="javascript:setMberGrdResetMassEdit(); return false;"> |
|
| 253 |
+ <%--<input type="button" class="btnType1" value="취소" onclick="javascript:location.reload(); return false;">--%> |
|
| 254 |
+ <input type="button" class="btnType1" value="저장" onclick="javascript:setMberGrdSettingMassEdit(); return false;"> |
|
| 184 | 255 |
</div> |
| 185 | 256 |
</div> |
| 186 | 257 |
</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?