Merge branch 'jsp'

This commit is contained in:
itn 2023-07-26 12:00:34 +09:00
commit 7454e342be
7 changed files with 326 additions and 49 deletions

View File

@ -52,10 +52,19 @@ public interface MberGrdService {
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception; 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선라인 대상자 종료 // 문자할인, B선라인 대상자 종료
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception; public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception;
// 전체회원 등급 종료 // 전체회원 TEMP_YN 업데이트
public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception;
// 전체회원 등급 전체종료
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception; public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception;
// 회원 등급제 종료 // 회원 등급제 종료

View File

@ -46,6 +46,7 @@ public class MberGrdVO extends UserDefaultVO {
private String grdNewDate; // 시작일자, 계산기간 시작일자 최근날짜 private String grdNewDate; // 시작일자, 계산기간 시작일자 최근날짜
private String grdDatePrgYn; // 회원등급제 시작일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N) private String grdDatePrgYn; // 회원등급제 시작일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N)
private String grdPeriod; // 회원등급제 누적결제 계산기간 private String grdPeriod; // 회원등급제 누적결제 계산기간
private String tempYn;
// 검색필터 // 검색필터
private String searchGrdStatus; private String searchGrdStatus;
@ -268,6 +269,12 @@ public class MberGrdVO extends UserDefaultVO {
public void setGrdPeriod(String grdPeriod) { public void setGrdPeriod(String grdPeriod) {
this.grdPeriod = grdPeriod; this.grdPeriod = grdPeriod;
} }
public String getTempYn() {
return tempYn;
}
public void setTempYn(String tempYn) {
this.tempYn = tempYn;
}
public String getSearchGrdStatus() { public String getSearchGrdStatus() {
return searchGrdStatus; return searchGrdStatus;
} }

View File

@ -83,12 +83,27 @@ public class MberGrdDAO extends EgovAbstractDAO {
return update("mberGrdDAO.updateMberGrdAfterRefund", mberGrdVO); 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선라인 대상자 종료 // 문자할인, B선라인 대상자 종료
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception { public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
return update("mberGrdDAO.updateMberGrdEndBySale", mberGrdVO); 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 { public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
return update("mberGrdDAO.updateMberGrdEndAll", mberGrdVO); return update("mberGrdDAO.updateMberGrdEndAll", mberGrdVO);
} }

View File

@ -155,8 +155,9 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// 회원별 등급 일괄변경 // 회원별 등급 일괄변경
@Override @Override
public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception { public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
int updateCnt1 = 0; int updateCnt = 0;
int updateCnt2 = 0; int updateCnt2 = 0;
int updateCnt3 = 0;
// Step 1. 등급제 시행 ON 일경우 // Step 1. 등급제 시행 ON 일경우
MberGrdVO mberGrdVO1 = new MberGrdVO(); 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")) { if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// 대상자 추가 // Step1. 대상자 추가
insertMberGrdAllByExist(mberGrdVO); insertMberGrdAllByExist(mberGrdVO);
// 문자할인, B선라인, 스팸회원 대상자 종료 // Step2. TEMP_YN 업데이트(N)
updateCnt1 = updateMberGrdEndBySale(mberGrdVO); mberGrdVO.setTempYn("N");
updateMberGrdTempYn(mberGrdVO);
// 등급제 정상대상자 초기화(화이트등급) // Step3. 문자할인, B선라인, 스팸회원 대상자 종료
updateCnt = updateMberGrdEndBySale(mberGrdVO);
// 회원별 등급 일괄변경 // Step4. 회원별 등급 일괄변경
updateCnt2 = mberGrdDAO.updateMberGrdAll(mberGrdVO); 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); 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선라인 대상자 종료 // 문자할인, B선라인 대상자 종료
@Override @Override
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception { public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO); return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO);
} }
// 전체회원 등급 종료 // 전체회원 TEMP_YN 업데이트
@Override
public int updateMberGrdTempYn(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdTempYn(mberGrdVO);
}
// 전체회원 등급 전체종료
@Override @Override
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception { public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdEndAll(mberGrdVO); return mberGrdDAO.updateMberGrdEndAll(mberGrdVO);

View File

@ -45,9 +45,9 @@ public class MberGrdMngController {
return "/sym/grd/mberGrdSetting"; return "/sym/grd/mberGrdSetting";
} }
// 등급제 일괄 저장 // 등급제 설정 저장
@RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do") @RequestMapping(value = "/sym/grd/mberGrdSettingUpdateAjax.do")
public ModelAndView mberGrdSettingMassUpdateAjax( public ModelAndView mberGrdSettingUpdateAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
@ -69,7 +69,44 @@ public class MberGrdMngController {
isSuccess = false; isSuccess = false;
msg = "등급제 시행여부 변경에 실패했습니다."; 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. 등급제 단가 업데이트 // Step2. 등급제 단가 업데이트
int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO); int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO);
if (updateCnt2 == 0) { if (updateCnt2 == 0) {
@ -80,7 +117,7 @@ public class MberGrdMngController {
// Step3. 회원 등급 일괄변경 // Step3. 회원 등급 일괄변경
updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO); updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO);
} }
} //}
} }
catch(Exception e) { catch(Exception e) {
isSuccess = false; 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") @RequestMapping(value = "/sym/grd/mberGrdEndMassUpdateAjax.do")
public ModelAndView mberGrdEndMassUpdateAjax( public ModelAndView mberGrdEndMassUpdateAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
@ -113,7 +190,7 @@ public class MberGrdMngController {
try{ try{
// 회원별 등급 초기화 // 회원별 등급 전체종료
updateMberCnt = mberGrdService.updateMberGrdEndAll(mberGrdVO); updateMberCnt = mberGrdService.updateMberGrdEndAll(mberGrdVO);
} }
@ -327,7 +404,6 @@ public class MberGrdMngController {
MberGrdVO mberGrdVO1 = new MberGrdVO(); MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO);
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
// 회원별 등급 일괄변경
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트

View File

@ -247,7 +247,7 @@
WHEN M.grdSetNo = 9 THEN 'orange' WHEN M.grdSetNo = 9 THEN 'orange'
WHEN M.grdSetNo = 10 THEN 'green' WHEN M.grdSetNo = 10 THEN 'green'
WHEN M.grdSetNo = 11 THEN 'yellow' WHEN M.grdSetNo = 11 THEN 'yellow'
WHEN M.grdSetNo = 112 THEN 'white' WHEN M.grdSetNo = 12 THEN 'white'
END grdSetIcon END grdSetIcon
, M.grdDate , M.grdDate
, M.totAmt , M.totAmt
@ -319,7 +319,7 @@
, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM , 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 , (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 ) GRD_SET_NO
FROM MJ_PG S FROM MJ_PG S
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
@ -402,7 +402,7 @@
<!-- 회원별 등급 등록 All => 기존대상자 제외 --> <!-- 회원별 등급 등록 All => 기존대상자 제외 -->
<insert id="mberGrdDAO.insertMberGrdAllByExist" parameterClass="mberGrdVO"> <insert id="mberGrdDAO.insertMberGrdAllByExist" parameterClass="mberGrdVO">
INSERT INTO MJ_MBER_GRD_INFO INSERT INTO MJ_MBER_GRD_INFO
( (
MBER_ID MBER_ID
, GRD_SET_NO , GRD_SET_NO
@ -423,13 +423,13 @@
, EDIT_DATE , EDIT_DATE
) )
SELECT SELECT
A.MBER_ID M.MBER_ID
, S.GRD_SET_NO , M.GRD_SET_NO
, S.SHORT_PRICE , M.SHORT_PRICE
, S.LONG_PRICE , M.LONG_PRICE
, S.PICTURE_PRICE , M.PICTURE_PRICE
, S.PICTURE2_PRICE , M.PICTURE2_PRICE
, S.PICTURE3_PRICE , M.PICTURE3_PRICE
, 0 , 0
, 0 , 0
, #grdNewDate# , #grdNewDate#
@ -440,18 +440,42 @@
, NOW() , NOW()
, '' , ''
, NOW() , NOW()
FROM LETTNGNRLMBER A FROM (
INNER JOIN MJ_MBER_GRD_SETTING S SELECT
ON S.GRD_SET_NO = 12 A.MBER_ID
WHERE A.MBER_STTUS = 'Y' , S.GRD_SET_NO
AND MBER_ID NOT IN (SELECT MBER_ID FROM MJ_MBER_GRD_INFO) , 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'
</insert> </insert>
<!-- <!-- 회원별 등급 일괄변경 -->
회원별 등급 일괄변경
=> 기존등급보다 상위등급 대상만 업데이트 됨.
=> 기존등급과 같거나 좋지않은 경우 제외됨.
-->
<update id="mberGrdDAO.updateMberGrdAll" parameterClass="mberGrdVO"> <update id="mberGrdDAO.updateMberGrdAll" parameterClass="mberGrdVO">
<![CDATA[ <![CDATA[
UPDATE MJ_MBER_GRD_INFO A UPDATE MJ_MBER_GRD_INFO A
@ -469,7 +493,7 @@
, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM , 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 , (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 ) GRD_SET_NO
FROM MJ_PG S FROM MJ_PG S
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
@ -498,6 +522,7 @@
, A.TOT_AMT = B.AMT_SUM , A.TOT_AMT = B.AMT_SUM
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00') , A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
, A.EDIT_DATE = NOW() , A.EDIT_DATE = NOW()
, A.TEMP_YN = 'Y'
WHERE B.GRD_SET_NO IS NOT NULL WHERE B.GRD_SET_NO IS NOT NULL
AND A.GRD_STATUS = 'Y' AND A.GRD_STATUS = 'Y'
AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
@ -525,7 +550,7 @@
, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM , 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 , (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 ) GRD_SET_NO
FROM MJ_PG S FROM MJ_PG S
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
@ -562,6 +587,48 @@
]]> ]]>
</update> </update>
<!-- 회원별 등급 초기화 By Temp -->
<update id="mberGrdDAO.updateMberGrdWhiteByTemp" parameterClass="mberGrdVO">
<![CDATA[
UPDATE MJ_MBER_GRD_INFO A
JOIN MJ_MBER_GRD_SETTING C
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.AMT = 0
, A.TOT_AMT = 0
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
, A.EDIT_DATE = NOW()
, A.TEMP_YN = 'Y'
WHERE A.TEMP_YN = 'N'
AND C.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)
]]>
</update>
<!-- 회원별 등급 초기화 All -->
<update id="mberGrdDAO.updateMberGrdWhiteAll" parameterClass="mberGrdVO">
<![CDATA[
UPDATE MJ_MBER_GRD_INFO A
JOIN MJ_MBER_GRD_SETTING C
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.AMT = 0
, A.TOT_AMT = 0
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
, A.EDIT_DATE = NOW()
WHERE C.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)
]]>
</update>
<!-- 문자할인, B선라인, 스팸회원 대상자 종료 --> <!-- 문자할인, B선라인, 스팸회원 대상자 종료 -->
<update id="mberGrdDAO.updateMberGrdEndBySale" parameterClass="mberGrdVO"> <update id="mberGrdDAO.updateMberGrdEndBySale" parameterClass="mberGrdVO">
<![CDATA[ <![CDATA[
@ -604,6 +671,12 @@
]]> ]]>
</update> </update>
<!-- 전체회원 TEMP_YN 업데이트 -->
<update id="mberGrdDAO.updateMberGrdTempYn" parameterClass="mberGrdVO">
UPDATE MJ_MBER_GRD_INFO SET
TEMP_YN = #tempYn#
</update>
<!-- 전체회원 등급 종료 --> <!-- 전체회원 등급 종료 -->
<update id="mberGrdDAO.updateMberGrdEndAll" parameterClass="mberGrdVO"> <update id="mberGrdDAO.updateMberGrdEndAll" parameterClass="mberGrdVO">
UPDATE MJ_MBER_GRD_INFO SET UPDATE MJ_MBER_GRD_INFO SET

View File

@ -5,16 +5,55 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko"> <html lang="ko">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>등급제 관리</title> <title>등급제 관리</title>
<script type="text/javascript"> <script type="text/javascript">
//숫자 천단위 콤마 찍어주기 //숫자 천단위 콤마 찍어주기
function numberWithCommas(x) { function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} }
// 등급제 설정변경
function setMberGrdSettingEdit() {
if ($("input[name='grdNoti']:checked").val() == "") {
alert("등급제 적용 온/오프를 선택해주세요.");
return false;
}
// 누적결제 적용일자
if ($("#ntceBgndeYYYMMDD").val() == "") {
alert("누적결제 적용일자를 선택해주세요.");
return false;
}
if(confirm("저장 하시겠습니까?")) {
$("#grdDate").val($("#ntceBgndeYYYMMDD").val());
$.ajax({
type: "POST",
url: "/sym/grd/mberGrdSettingUpdateAjax.do",
data: $("#listForm").serialize(),
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
location.reload();
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
}
// 등급제 일괄변경 // 등급제 일괄변경
function setMberGrdSettingMassEdit() { function setMberGrdSettingMassEdit() {
@ -56,15 +95,16 @@
alert("ERROR : " + JSON.stringify(e)); alert("ERROR : " + JSON.stringify(e));
} }
}); });
} }
} }
// 회원별 등급 초기화 // 회원별 등급 초기화
function setMberGrdEndMassEdit() { function setMberGrdResetMassEdit() {
if(confirm("모든 고객 등급을 초기화하시겠습니까?")) { if(confirm("모든 고객 등급을 초기화하시겠습니까?")) {
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/sym/grd/mberGrdEndMassUpdateAjax.do", url: "/sym/grd/mberGrdResetMassUpdateAjax.do",
data: {}, data: {},
dataType:'json', dataType:'json',
async: false, async: false,
@ -84,6 +124,28 @@
} }
} }
// 오늘날짜 Get
function getToday() {
// new Date를 통해서 날짜 객체를 생성. 여기서 년, 월, 일 정보만 필요.
const nowDate = new Date();
var year = nowDate.getFullYear(); // 년
var month = ('0' + (nowDate.getMonth() + 1)).slice(-2); // 월
var day = ('0' + nowDate.getDate()).slice(-2); // 일
// yyyy-mm-dd 형식으로 todate에 담기.
var todate = year + '-' + month + '-' + day;
return todate;
}
// 오늘날짜 Set
function setToday() {
var toDay = getToday();
$('#ntceBgndeYYYMMDD').val(toDay);
}
</script> </script>
</head> </head>
<body> <body>
@ -125,6 +187,9 @@
value="<c:out value="${grdDate}" />" > value="<c:out value="${grdDate}" />" >
<input type="button" class="calBtn"> <input type="button" class="calBtn">
</a> </a>
&nbsp;&nbsp;&nbsp;
<input type="button" style="cursor: pointer; height: 33px;" onclick="setToday();" value="오늘">
</td> </td>
<th>누적결제 계산기간</th> <th>누적결제 계산기간</th>
<td> <td>
@ -134,7 +199,13 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<br /><br />
<br />
<div class="btnWrap">
<input type="button" class="btnType1" value="저장" onclick="javascript:setMberGrdSettingEdit(); return false;">
</div>
<br /><br /><br />
<div class="tableWrap"> <div class="tableWrap">
<table class="tbType1"> <table class="tbType1">
@ -178,9 +249,9 @@
<br /> <br />
<div class="btnWrap"> <div class="btnWrap">
<input type="button" class="btnType2" value="모든 고객 등급 초기화" onclick="javascript:setMberGrdEndMassEdit(); return false;"> <input type="button" class="btnType2" value="모든 고객 등급 초기화" onclick="javascript:setMberGrdResetMassEdit(); return false;">
<input type="button" class="btnType1" value="취소" onclick="javascript:location.reload(); return false;"> <%--<input type="button" class="btnType1" value="취소" onclick="javascript:location.reload(); return false;">--%>
<input type="button" class="btnType1" value="수정" onclick="javascript:setMberGrdSettingMassEdit(); return false;"> <input type="button" class="btnType1" value="저장" onclick="javascript:setMberGrdSettingMassEdit(); return false;">
</div> </div>
</div> </div>
</div> </div>