등급제 환불관련 로직 추가

This commit is contained in:
itn 2023-07-19 16:20:59 +09:00
parent 3eefe93afb
commit aadc3c1420
7 changed files with 417 additions and 78 deletions

View File

@ -46,12 +46,21 @@ public interface MberGrdService {
// 회원별 등급 일괄변경
public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception;
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception;
// 문자할인, B선라인 대상자 초기화
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception;
// 회원 등급 초기화
// 전체회원 등급 초기화
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception;
// 회원 등급제 종료
public int updateMberGrdEndByUser(MberGrdVO mberGrdVO) throws Exception;
// 회원 등급제 복원
public int updateMberGrdRestoreByUser(MberGrdVO mberGrdVO) throws Exception;
// 회원별 등급 적용
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception;

View File

@ -73,16 +73,31 @@ public class MberGrdDAO extends EgovAbstractDAO {
return update("mberGrdDAO.updateMberGrdAll", mberGrdVO);
}
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception {
return update("mberGrdDAO.updateMberGrdAfterRefund", mberGrdVO);
}
// 문자할인, B선라인 대상자 초기화
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
return update("mberGrdDAO.updateMberGrdEndBySale", mberGrdVO);
}
// 회원 등급 초기화
// 전체회원 등급 초기화
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
return update("mberGrdDAO.updateMberGrdEndAll", mberGrdVO);
}
// 회원 등급제 종료
public int updateMberGrdEndByUser(MberGrdVO mberGrdVO) throws Exception {
return update("mberGrdDAO.updateMberGrdEndByUser", mberGrdVO);
}
// 회원 등급제 복원
public int updateMberGrdRestoreByUser(MberGrdVO mberGrdVO) throws Exception {
return update("mberGrdDAO.updateMberGrdRestoreByUser", mberGrdVO);
}
// 회원별 등급 진행여부
public int selectMberGrdPrgCnt(String mberId) throws Exception{
return (int) select("mberGrdDAO.selectMberGrdPrgCnt", mberId);

View File

@ -167,10 +167,10 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
return updateCnt1 + updateCnt2;
}
// 회원 등급 초기화
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
@Override
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdEndAll(mberGrdVO);
public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdAfterRefund(mberGrdVO);
}
// 문자할인, B선라인 대상자 초기화
@ -179,6 +179,24 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO);
}
// 전체회원 등급 초기화
@Override
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdEndAll(mberGrdVO);
}
// 회원 등급제 종료
@Override
public int updateMberGrdEndByUser(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdEndByUser(mberGrdVO);
}
// 회원 등급제 복원
@Override
public int updateMberGrdRestoreByUser(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.updateMberGrdRestoreByUser(mberGrdVO);
}
// 회원별 등급 적용
@Override
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception {
@ -217,7 +235,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
MberGrdVO mberGrdVO4 = new MberGrdVO();
mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO);
if (null != mberGrdVO4) {
mberGrdVO.setAmt("0");
mberGrdVO.setAmt(mberGrdVO.getAmt());
mberGrdVO.setTotAmt(mberGrdVO.getTotAmt());
mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice());
mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice());
@ -233,8 +251,8 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
MberGrdVO mberGrdVO5 = new MberGrdVO();
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
if (null != mberGrdVO5) {
// 업데이트 => 현재 등급보다 낮거나 같으면 업데이트 처리
if (mberGrdVO5.getGrdSetNo() >= mberGrdVO.getGrdSetNo()) {
// 업데이트 => 기존등급보다 상위등급 대상만 업데이트
if (mberGrdVO5.getGrdSetNo() > mberGrdVO.getGrdSetNo()) {
updateMberGrd(mberGrdVO);
// 회원별 등급 히스토리 인서트

View File

@ -147,8 +147,7 @@ public class MberGrdMngController {
try{
// 회원별 등급 적용
mberGrdVO.setAmt("0"); // 결제금액
mberGrdVO.setMberId("nopay"); // 결제자
mberGrdVO.setAmt("0");
mberGrdService.mberGrdSaveByUser(mberGrdVO);
}
@ -237,4 +236,106 @@ public class MberGrdMngController {
return modelAndView;
}
// 회원 등급제 종료
@RequestMapping(value = "/sym/grd/mberGrdEndByUserAjax.do")
public ModelAndView mberGrdEndByUserAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// 회원 등급제 종료
mberGrdService.updateMberGrdEndByUser(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 회원 등급제 복원
@RequestMapping(value = "/sym/grd/mberGrdRestoreByUserAjax.do")
public ModelAndView mberGrdRestoreByUserAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// 회원 등급제 복원
mberGrdService.updateMberGrdRestoreByUser(mberGrdVO);
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
mberGrdService.updateMberGrdAfterRefund(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 회원 등급제 갱신
@RequestMapping(value = "/sym/grd/mberGrdUpdateByUserAjax.do")
public ModelAndView mberGrdUpdateByUserAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
try{
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
mberGrdService.updateMberGrdAfterRefund(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
}

View File

@ -108,14 +108,14 @@
, DATE_FORMAT(A.GRD_END_DATE, '%Y-%m-%d') AS grdEndDate
, A.GRD_STATUS AS grdStatus
, CASE
WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')
WHEN A.GRD_STATUS = 'E'
THEN '종료'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d'))
THEN '대기'
WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
THEN '진행'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN A.GRD_STATUS = 'E'
THEN '종료'
ELSE '종료'
END AS grdStatusNm
, A.REG_ID AS regId
@ -143,40 +143,40 @@
<isNotEmpty property="searchGrdStatus">
<isEqual property="searchGrdStatus" compareValue="Y">
AND (CASE
WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')
WHEN A.GRD_STATUS = 'E'
THEN '종료'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d'))
THEN '대기'
WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
THEN '진행'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN A.GRD_STATUS = 'E'
THEN '종료'
ELSE '종료'
END) = '진행'
</isEqual>
<isEqual property="searchGrdStatus" compareValue="N">
AND (CASE
WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')
WHEN A.GRD_STATUS = 'E'
THEN '종료'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d'))
THEN '대기'
WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
THEN '진행'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN A.GRD_STATUS = 'E'
THEN '종료'
ELSE '종료'
END) = '대기'
</isEqual>
<isEqual property="searchGrdStatus" compareValue="E">
AND (CASE
WHEN E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d')
WHEN A.GRD_STATUS = 'E'
THEN '종료'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN (A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE) AND (E.EVENT_STATUS = 'Y' AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN DATE_FORMAT(E.EVENT_START_DATE, '%Y-%m-%d') AND DATE_FORMAT(E.EVENT_END_DATE, '%Y-%m-%d'))
THEN '대기'
WHEN A.GRD_STATUS = 'Y' AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
THEN '진행'
WHEN A.GRD_STATUS = 'N'
THEN '대기'
WHEN A.GRD_STATUS = 'E'
THEN '종료'
ELSE '종료'
END) = '종료'
</isEqual>
@ -295,19 +295,26 @@
<![CDATA[
SELECT
M.USER_ID AS mberId
, M.AMT_SUM_ORIGIN AS amtSumOrigin
, M.REFUND_SUM AS refundSum
, M.AMT_SUM AS totAmt
, M.GRD_SET_NO AS grdSetNo
FROM (
SELECT
S.USER_ID
, SUM(S.AMT) AS AMT_SUM_ORIGIN
, (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_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
, (
SELECT MIN(S1.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))
SELECT MIN(S1.GRD_SET_NO) 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
ON S.USER_ID = SS.MBER_ID
LEFT OUTER JOIN MJ_REFUND R
ON S.USER_ID = R.MBER_ID
AND R.REFUND_STATUS = '3'
AND R.REFUND_DIVISION = '1'
WHERE S.PG_STATUS = '1'
AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00')
GROUP BY S.USER_ID
@ -380,7 +387,11 @@
MBER_ID = #mberId#
</update>
<!-- 회원별 등급 일괄변경 -->
<!--
회원별 등급 일괄변경
=> 기존등급보다 상위등급 대상만 업데이트 됨.
=> 기존등급과 같거나 좋지않은 경우 제외됨.
-->
<update id="mberGrdDAO.updateMberGrdAll" parameterClass="mberGrdVO">
<![CDATA[
UPDATE MJ_MBER_GRD_INFO A
@ -388,19 +399,25 @@
SELECT
M.USER_ID
, M.AMT_SUM_ORIGIN
, M.REFUND_SUM
, M.AMT_SUM
, M.GRD_SET_NO
FROM (
SELECT
S.USER_ID
, SUM(S.AMT) AS AMT_SUM_ORIGIN
, (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_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
, (
SELECT MIN(S1.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))
SELECT MIN(S1.GRD_SET_NO) 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
ON S.USER_ID = SS.MBER_ID
LEFT OUTER JOIN MJ_REFUND R
ON S.USER_ID = R.MBER_ID
AND R.REFUND_STATUS = '3'
AND R.REFUND_DIVISION = '1'
WHERE S.PG_STATUS = '1'
AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00')
GROUP BY S.USER_ID
@ -428,6 +445,64 @@
]]>
</update>
<!--
회원 등급 변경(환불후)
=> 기존등급 상관없이 업데이트 됨.
-->
<update id="mberGrdDAO.updateMberGrdAfterRefund" parameterClass="mberGrdVO">
<![CDATA[
UPDATE MJ_MBER_GRD_INFO A
INNER JOIN (
SELECT
M.USER_ID
, M.AMT_SUM_ORIGIN
, M.REFUND_SUM
, M.AMT_SUM
, M.GRD_SET_NO
FROM (
SELECT
S.USER_ID
, SUM(S.AMT) AS AMT_SUM_ORIGIN
, 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 MIN(S1.GRD_SET_NO) 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
ON S.USER_ID = SS.MBER_ID
LEFT OUTER JOIN MJ_REFUND R
ON S.USER_ID = R.MBER_ID
AND R.REFUND_STATUS = '3'
AND R.REFUND_DIVISION = '1'
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
AND M.AMT_SUM > 0
) 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_DATE = CONCAT(DATE_FORMAT(#grdDate#, '%Y-%m-%d'), ' ', '00:00:00')
, A.EDIT_ID = #editId#
, A.EDIT_DATE = NOW()
WHERE B.GRD_SET_NO IS NOT NULL
AND A.MBER_ID = #mberId#
AND A.GRD_STATUS = 'Y'
AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
]]>
</update>
<!-- 문자할인, B선라인 대상자 초기화 -->
<update id="mberGrdDAO.updateMberGrdEndBySale" parameterClass="mberGrdVO">
<![CDATA[
@ -467,7 +542,7 @@
]]>
</update>
<!-- 회원 등급 초기화 -->
<!-- 전체회원 등급 초기화 -->
<update id="mberGrdDAO.updateMberGrdEndAll" parameterClass="mberGrdVO">
UPDATE MJ_MBER_GRD_INFO SET
GRD_END_DATE = NOW()
@ -478,6 +553,31 @@
GRD_STATUS != 'E'
</update>
<!-- 회원 등급제 종료 -->
<update id="mberGrdDAO.updateMberGrdEndByUser" parameterClass="mberGrdVO">
UPDATE MJ_MBER_GRD_INFO SET
GRD_END_DATE = NOW()
, GRD_STATUS = 'E'
, EDIT_ID = #editId#
, EDIT_DATE = NOW()
WHERE
GRD_STATUS != 'E'
AND MBER_ID = #mberId#
</update>
<!-- 회원 등급제 복원 -->
<update id="mberGrdDAO.updateMberGrdRestoreByUser" parameterClass="mberGrdVO">
UPDATE MJ_MBER_GRD_INFO SET
GRD_END_DATE = NOW()
, GRD_STATUS = 'Y'
, GRD_END_DATE = '9999-12-31 23:59:59'
, EDIT_ID = #editId#
, EDIT_DATE = NOW()
WHERE
GRD_STATUS != 'Y'
AND MBER_ID = #mberId#
</update>
<!-- 회원별 등급 진행여부 -->
<select id="mberGrdDAO.selectMberGrdPrgCnt" parameterClass="String" resultClass="Integer">
SELECT

View File

@ -24,6 +24,7 @@
<meta http-equiv="Content-Language" content="ko">
<title>등급제 내역</title>
<script type="text/javaScript" language="javascript" defer="defer">
$( document ).ready(function(){
// change 함수
$("#searchGrdStatus").change(function(e){
@ -37,8 +38,8 @@ function fn_search(){
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
var listForm = document.listForm;
listForm.pageIndex.value = pageNo;
listForm.action = "<c:url value='/sym/grd/selectMberGrdList.do'/>";
listForm.submit();
}
@ -80,6 +81,109 @@ function getMberGrdChk(mberId) {
}
});
}
// 회원 등급제 종료
function setMberGrdEndByUser(mberId) {
if(confirm("등급제 종료하시겠습니까?")) {
$.ajax({
type: "POST",
url: "/sym/grd/mberGrdEndByUserAjax.do",
data: {"mberId" : mberId},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
linkPage(document.listForm.pageIndex.value);
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
}
// 회원 등급제 복원
function setMberGrdRestoreByUser(mberId, grdDate) {
if(confirm("등급제 복원하시겠습니까?\n등급 다시 계산합니다.")) {
$.ajax({
type: "POST",
url: "/sym/grd/mberGrdRestoreByUserAjax.do",
data: {"mberId" : mberId, "grdDate" : grdDate},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
linkPage(document.listForm.pageIndex.value);
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
}
//회원 등급제 갱신
function setMberGrdUpdateByUser(mberId, grdDate) {
if(confirm("등급제 갱신하시겠습니까?\n등급 다시 계산합니다.")) {
$.ajax({
type: "POST",
url: "/sym/grd/mberGrdUpdateByUserAjax.do",
data: {"mberId" : mberId, "grdDate" : grdDate},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
linkPage(document.listForm.pageIndex.value);
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
}
// 등급제 추가
function setMberGrdSave() {
var mberId = $("input[name='mberId']").val();
if (mberId == "") {
alert("아이디를 입력해주세요.");
return false;
}
if(confirm("해당 아이디 등급제 추가하시겠습니까?")) {
$.ajax({
type: "POST",
url: "/sym/grd/mberGrdSaveAjax.do",
data: {"mberId" : mberId},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
linkPage(document.listForm.pageIndex.value);
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
}
</script>
</head>
<body>
@ -117,7 +221,7 @@ function getMberGrdChk(mberId) {
<div class="listTop">
<p class="tType5">
총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건
&nbsp;&nbsp;&nbsp; * 누적결제액은 문자할인이벤트 대상 결제금액을 제외한 합계금액입니다.
&nbsp;&nbsp;&nbsp; * 누적결제액은 할인이벤트 결제금액, 환불금액을 제외한 합계금액입니다.
</p>
<div class="rightWrap">
<!-- <input type="button" class="printBtn" > -->
@ -131,16 +235,18 @@ function getMberGrdChk(mberId) {
<div class="tableWrap">
<table class="tbType1">
<colgroup>
<col style="width: 8%">
<col style="width: 5%">
<col style="width: auto;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 10%">
<col style="width: 9%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 12%">
<col style="width: 12%">
<col style="width: 12%">
<col style="width: 12%">
<col style="width: 6%">
<col style="width: 5%">
<col style="width: 8%">
</colgroup>
<thead>
<tr>
@ -153,7 +259,9 @@ function getMberGrdChk(mberId) {
<th>시작일<input type="button" class="sortBtn sort" id="sort_grdStartDate"></th>
<th>종료일 <input type="button" class="sortBtn sort" id="sort_grdEndDate"></th>
<th>등록일 <input type="button" class="sortBtn sort" id="sort_regDate"></th>
<th>수정일 <input type="button" class="sortBtn sort" id="sort_editDate"></th>
<th>상태<input type="button" class="sortBtn sort" id="sort_grdStatusNm"></th>
<th>관리</th>
</tr>
</thead>
<tbody>
@ -179,7 +287,7 @@ function getMberGrdChk(mberId) {
<c:out value="${result.grdSetNm}"/>(<c:out value="${result.grdSetNo}"/>)
</td>
<td nowrap="nowrap" class="right">
<fmt:formatNumber value="${result.totAmt}" pattern="#,###" />
<fmt:formatNumber value="${result.totAmt}" pattern="#,###" />&nbsp;&nbsp;
</td>
<td nowrap="nowrap">
<c:out value="${result.grdDate}"/>
@ -192,10 +300,24 @@ function getMberGrdChk(mberId) {
</td>
<td nowrap="nowrap">
<c:out value="${result.regDate}"/>
</td>
<td nowrap="nowrap">
<c:out value="${result.editDate}"/>
</td>
<td nowrap="nowrap">
<c:out value="${result.grdStatusNm}"/>
</td>
<td nowrap="nowrap">
<c:choose>
<c:when test="${result.grdStatusNm eq '종료'}">
<input type="button" class="btnType2" onclick="setMberGrdRestoreByUser('${result.mberId}','${result.grdDate}')" value="복원">
</c:when>
<c:otherwise>
<input type="button" class="btnType2" onclick="setMberGrdUpdateByUser('${result.mberId}','${result.grdDate}')" value="갱신">
<input type="button" class="btnType1" onclick="setMberGrdEndByUser('${result.mberId}')" value="종료">
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</tbody>
@ -205,7 +327,8 @@ function getMberGrdChk(mberId) {
</table>
</div>
<div class="btnWrap">
<input type="text" name="mberId" value="" style="height: 50px; width: 120px;" />
<input type="button" class="btnType2" value="등급제 적용테스트" onclick="javascript:setMberGrdSave(); return false;">
</div>
<c:if test="${!empty resultList}">

View File

@ -84,32 +84,6 @@
}
}
// 등급제 적용 테스트
function setMberGrdSave() {
if(confirm("등급제 적용하시겠습니까?")) {
$.ajax({
type: "POST",
url: "/sym/grd/mberGrdSaveAjax.do",
data: {},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
alert("저장 완료했습니다.");
location.reload();
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
}
</script>
</head>
<body>
@ -198,7 +172,6 @@
<br />
<div class="btnWrap">
<input type="button" class="btnType2" value="모든 고객 등급 초기화" onclick="javascript:setMberGrdEndMassEdit(); return false;">
<input type="button" class="btnType2" value="등급제 적용테스트" onclick="javascript:setMberGrdSave(); 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;">
</div>