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 7fcd06e0..a39e7099 100644
--- a/src/main/java/itn/let/sym/grd/service/MberGrdService.java
+++ b/src/main/java/itn/let/sym/grd/service/MberGrdService.java
@@ -26,6 +26,9 @@ public interface MberGrdService {
// 회원별 등급 수정
public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception;
+ // 회원별 등급 일괄변경
+ public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception;
+
// 회원별 등급 진행여부
int selectMberGrdPrgCnt(String userId) 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 fd48506a..a03d1592 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
@@ -44,6 +44,11 @@ public class MberGrdDAO extends EgovAbstractDAO {
// 회원별 등급 수정
public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception{
update("mberGrdDAO.updateMberGrd", mberGrdVO);
+ }
+
+ // 회원별 등급 일괄변경
+ public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
+ return update("mberGrdDAO.updateMberGrdAll", 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 af72e691..63a90394 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
@@ -75,6 +75,12 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
mberGrdDAO.updateMberGrd(mberGrdVO);
}
+ // 회원별 등급 일괄변경
+ @Override
+ public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
+ return mberGrdDAO.updateMberGrdAll(mberGrdVO);
+ }
+
// 회원별 등급 진행여부
@Override
public int selectMberGrdPrgCnt(String userId) throws Exception{
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 5a5521db..063e04e3 100644
--- a/src/main/java/itn/let/sym/grd/web/MberGrdController.java
+++ b/src/main/java/itn/let/sym/grd/web/MberGrdController.java
@@ -53,6 +53,7 @@ public class MberGrdController {
boolean isSuccess = true;
String msg = "";
+ int updateMberCnt = 0;
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
@@ -60,15 +61,23 @@ public class MberGrdController {
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
- // 등급제 시행여부 변경
- int updateCnt = mberGrdService.updateMberSetting(mberGrdVO);
- if (updateCnt == 0) {
+ // Step1. 등급제 시행여부 변경
+ int updateCnt1 = mberGrdService.updateMberSetting(mberGrdVO);
+ if (updateCnt1 == 0) {
isSuccess = false;
msg = "등급제 시행여부 변경에 실패했습니다.";
}
else {
- // 등급제 업데이트
- mberGrdService.updateGrdSettingList(mberGrdVO);
+ // Step2. 등급제 단가 업데이트
+ int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO);
+ if (updateCnt2 == 0) {
+ isSuccess = false;
+ msg = "등급제 단가 변경에 실패했습니다.";
+ }
+ else {
+ // Step3. 회원 등급 일괄변경
+ updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO);
+ }
}
}
catch(Exception e) {
@@ -78,6 +87,7 @@ public class MberGrdController {
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
+ modelAndView.addObject("updateMberCnt", updateMberCnt);
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 be6dca09..7723cf9f 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
@@ -147,6 +147,54 @@
MBER_ID = #mberId#
+
+
+ = CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00')
+ WHERE S.PG_STATUS = '1'
+ AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00')
+ GROUP BY S.USER_ID
+ ) M
+ WHERE M.GRD_SET_NO IS NOT NULL
+ ) 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_START_DATE = CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00')
+ , A.EDIT_DATE = NOW()
+ WHERE B.GRD_SET_NO IS NOT NULL
+ AND A.GRD_SET_NO >= B.GRD_SET_NO
+ AND GRD_STATUS NOT IN ('N', 'E')
+ AND NOW() BETWEEN GRD_START_DATE AND GRD_END_DATE
+ ]]>
+
+