등급제 대상 여부 업데이트 로직 수정
This commit is contained in:
parent
121cf811c5
commit
04694652d4
@ -28,6 +28,9 @@ public interface MberGrdService {
|
||||
// 회원별 설정 상세
|
||||
public MberGrdVO selectMberGrdSettingDetail(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원별 설정 상세(White)
|
||||
public MberGrdVO selectMberGrdSettingDetailWhite(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 등급제 설정 일괄변경
|
||||
public int updateGrdSettingList(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
@ -55,6 +58,9 @@ public interface MberGrdService {
|
||||
// 회원별 등급 등록 All => 기존대상자 제외
|
||||
public void insertMberGrdAllByExist(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원별 등급 등록 By MberId
|
||||
public void insertMberGrdByMberId(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원별 등급 히스토리 등록 All
|
||||
public void insertMberGrdHistAll(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
|
||||
@ -37,6 +37,11 @@ public class MberGrdDAO extends EgovAbstractDAO {
|
||||
return (MberGrdVO) select("mberGrdDAO.selectMberGrdSettingDetail", mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 설정 상세(White)
|
||||
public MberGrdVO selectMberGrdSettingDetailWhite(MberGrdVO mberGrdVO) throws Exception{
|
||||
return (MberGrdVO) select("mberGrdDAO.selectMberGrdSettingDetailWhite", mberGrdVO);
|
||||
}
|
||||
|
||||
// 등급제 설정 일괄변경
|
||||
public int updateGrdSetting(MberGrdVO mberGrdVO) throws Exception {
|
||||
return update("mberGrdDAO.updateGrdSetting", mberGrdVO);
|
||||
@ -88,6 +93,11 @@ public class MberGrdDAO extends EgovAbstractDAO {
|
||||
insert("mberGrdDAO.insertMberGrdAllByExist", mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 등록 By MberId
|
||||
public void insertMberGrdByMberId(MberGrdVO mberGrdVO) throws Exception{
|
||||
insert("mberGrdDAO.insertMberGrdByMberId", mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 히스토리 등록 All
|
||||
public void insertMberGrdHistAll(MberGrdVO mberGrdVO) throws Exception{
|
||||
insert("mberGrdDAO.insertMberGrdHistAll", mberGrdVO);
|
||||
|
||||
@ -75,6 +75,12 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
return mberGrdDAO.selectMberGrdSettingDetail(mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 설정 상세(White)
|
||||
@Override
|
||||
public MberGrdVO selectMberGrdSettingDetailWhite(MberGrdVO mberGrdVO) throws Exception {
|
||||
return mberGrdDAO.selectMberGrdSettingDetailWhite(mberGrdVO);
|
||||
}
|
||||
|
||||
// 등급제 설정 일괄변경
|
||||
@Override
|
||||
public int updateGrdSettingList(MberGrdVO mberGrdVO) throws Exception {
|
||||
@ -156,6 +162,12 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
mberGrdDAO.insertMberGrdAllByExist(mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 등록 By MberId
|
||||
@Override
|
||||
public void insertMberGrdByMberId(MberGrdVO mberGrdVO) throws Exception {
|
||||
mberGrdDAO.insertMberGrdByMberId(mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 히스토리 등록 All
|
||||
@Override
|
||||
public void insertMberGrdHistAll(MberGrdVO mberGrdVO) throws Exception {
|
||||
@ -368,6 +380,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
MberGrdVO mberGrdVO5 = new MberGrdVO();
|
||||
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
|
||||
if (mberGrdVO5 != null) {
|
||||
// 업데이트
|
||||
updateMberGrdOk(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
@ -382,6 +395,51 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
System.out.println("Step 3. ELSE => 화이트등급 인서트");
|
||||
|
||||
// Step 4. 등급제 설정값 조회
|
||||
System.out.println("Step 4. 등급제 설정값 조회");
|
||||
MberGrdVO mberGrdVO4 = new MberGrdVO();
|
||||
mberGrdVO4 = selectMberGrdSettingDetailWhite(mberGrdVO);
|
||||
if (mberGrdVO4 != null) {
|
||||
mberGrdVO.setAmt("0");
|
||||
mberGrdVO.setTotAmt(0);
|
||||
mberGrdVO.setGrdSetNo(mberGrdVO4.getGrdSetNo());
|
||||
mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice());
|
||||
mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice());
|
||||
mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice());
|
||||
mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price());
|
||||
mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price());
|
||||
mberGrdVO.setGrdDate(mberGrdVO.getGrdDate());
|
||||
mberGrdVO.setGrdStartDate(nowDate + " 00:00:00");
|
||||
mberGrdVO.setGrdEndDate("9999:12:31 23:59:59");
|
||||
mberGrdVO.setGrdStatus("Y");
|
||||
|
||||
// Step 5. 인서트 Or 업데이트
|
||||
System.out.println("Step 5. 인서트 Or 업데이트");
|
||||
MberGrdVO mberGrdVO5 = new MberGrdVO();
|
||||
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
|
||||
if (mberGrdVO5 != null) {
|
||||
// 업데이트
|
||||
updateMberGrdOk(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
else {
|
||||
// 인서트
|
||||
insertMberGrd(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
System.out.println("Step 2. ELSE 등급제 종료");
|
||||
updateMberGrdEndByUser(mberGrdVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -456,6 +514,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
MberGrdVO mberGrdVO5 = new MberGrdVO();
|
||||
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
|
||||
if (mberGrdVO5 != null) {
|
||||
// 업데이트
|
||||
updateMberGrdOk(mberGrdVO);
|
||||
}
|
||||
else {
|
||||
@ -464,6 +523,51 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
System.out.println("Step 3. ELSE => 화이트등급 인서트");
|
||||
|
||||
// Step 4. 등급제 설정값 조회
|
||||
System.out.println("Step 4. 등급제 설정값 조회");
|
||||
MberGrdVO mberGrdVO4 = new MberGrdVO();
|
||||
mberGrdVO4 = selectMberGrdSettingDetailWhite(mberGrdVO);
|
||||
if (mberGrdVO4 != null) {
|
||||
mberGrdVO.setAmt("0");
|
||||
mberGrdVO.setTotAmt(0);
|
||||
mberGrdVO.setGrdSetNo(mberGrdVO4.getGrdSetNo());
|
||||
mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice());
|
||||
mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice());
|
||||
mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice());
|
||||
mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price());
|
||||
mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price());
|
||||
mberGrdVO.setGrdDate(mberGrdVO.getGrdDate());
|
||||
mberGrdVO.setGrdStartDate(nowDate + " 00:00:00");
|
||||
mberGrdVO.setGrdEndDate("9999:12:31 23:59:59");
|
||||
mberGrdVO.setGrdStatus("Y");
|
||||
|
||||
// Step 5. 인서트 Or 업데이트
|
||||
System.out.println("Step 5. 인서트 Or 업데이트");
|
||||
MberGrdVO mberGrdVO5 = new MberGrdVO();
|
||||
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
|
||||
if (mberGrdVO5 != null) {
|
||||
// 업데이트
|
||||
updateMberGrdOk(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
else {
|
||||
// 인서트
|
||||
insertMberGrd(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
System.out.println("Step 2. ELSE 등급제 종료");
|
||||
updateMberGrdEndByUser(mberGrdVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -466,16 +466,37 @@ public class MberGrdMngController {
|
||||
// 로그인VO에서 사용자 정보 가져오기
|
||||
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
|
||||
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
|
||||
mberGrdVO.setRegId(frstRegisterId);
|
||||
mberGrdVO.setEditId(frstRegisterId);
|
||||
|
||||
try{
|
||||
|
||||
// Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)
|
||||
System.out.println("Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)");
|
||||
MberGrdVO mberGrdVO1 = new MberGrdVO();
|
||||
mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO);
|
||||
if (mberGrdVO1.getGrdNoti().equals("Y")) {
|
||||
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
|
||||
|
||||
// Step 2. 문자할인, B선라인, 스팸회원 대상자 제외
|
||||
System.out.println("Step 2. 문자할인, B선라인, 스팸회원 대상자 제외");
|
||||
int isMberGrd = mberGrdService.selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상)
|
||||
if(isMberGrd == 1) {
|
||||
// 회원 등급제 복원
|
||||
mberGrdService.updateMberGrdRestoreByUser(mberGrdVO);
|
||||
|
||||
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
|
||||
mberGrdService.updateMberGrdAfterRefund(mberGrdVO);
|
||||
|
||||
}
|
||||
else {
|
||||
isSuccess = false;
|
||||
msg = "문자할인, B선라인, 스팸회원 대상자는 등급제 대상자가 아닙니다.";
|
||||
}
|
||||
}
|
||||
else {
|
||||
isSuccess = false;
|
||||
msg = "등급제 시행 OFF 일경우 복원이 불가합니다.";
|
||||
}
|
||||
}
|
||||
catch(Exception e) {
|
||||
isSuccess = false;
|
||||
|
||||
@ -102,6 +102,28 @@
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 등급제 설정 상세 -->
|
||||
<select id="mberGrdDAO.selectMberGrdSettingDetailWhite" parameterClass="mberGrdVO" resultClass="mberGrdVO">
|
||||
SELECT
|
||||
A.GRD_SET_NO AS grdSetNo
|
||||
, A.GRD_SET_NM AS grdSetNm
|
||||
, FLOOR(A.STD_AMT) AS stdAmt
|
||||
, FORMAT(FLOOR(A.STD_AMT),0) AS stdAmtComma
|
||||
, A.SHORT_PRICE AS shortPrice
|
||||
, A.LONG_PRICE AS longPrice
|
||||
, A.PICTURE_PRICE AS picturePrice
|
||||
, A.PICTURE2_PRICE AS picture2Price
|
||||
, A.PICTURE3_PRICE AS picture3Price
|
||||
, A.REG_ID AS regId
|
||||
, A.REG_DATE AS regDate
|
||||
, A.EDIT_ID AS editId
|
||||
, A.EDIT_DATE AS editDate
|
||||
FROM MJ_MBER_GRD_SETTING A
|
||||
ORDER BY A.GRD_SET_NO DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 등급제 설정 일괄변경 일괄변경 -->
|
||||
<update id="mberGrdDAO.updateGrdSetting" parameterClass="mberGrdVO">
|
||||
UPDATE MJ_MBER_GRD_SETTING A
|
||||
@ -545,9 +567,9 @@
|
||||
, NOW()
|
||||
, '9999:12:31 23:59:59'
|
||||
, 'Y'
|
||||
, ''
|
||||
, #regId#
|
||||
, NOW()
|
||||
, ''
|
||||
, #editId#
|
||||
, NOW()
|
||||
FROM (
|
||||
SELECT
|
||||
@ -584,6 +606,81 @@
|
||||
AND M.spamYn = 'N'
|
||||
</insert>
|
||||
|
||||
<!-- 회원별 등급 등록 By MberId -->
|
||||
<insert id="mberGrdDAO.insertMberGrdByMberId" parameterClass="mberGrdVO">
|
||||
INSERT INTO MJ_MBER_GRD_INFO
|
||||
(
|
||||
MBER_ID
|
||||
, GRD_SET_NO
|
||||
, SHORT_PRICE
|
||||
, LONG_PRICE
|
||||
, PICTURE_PRICE
|
||||
, PICTURE2_PRICE
|
||||
, PICTURE3_PRICE
|
||||
, AMT
|
||||
, TOT_AMT
|
||||
, GRD_DATE
|
||||
, GRD_START_DATE
|
||||
, GRD_END_DATE
|
||||
, GRD_STATUS
|
||||
, REG_ID
|
||||
, REG_DATE
|
||||
, EDIT_ID
|
||||
, EDIT_DATE
|
||||
)
|
||||
SELECT
|
||||
M.MBER_ID
|
||||
, M.GRD_SET_NO
|
||||
, M.SHORT_PRICE
|
||||
, M.LONG_PRICE
|
||||
, M.PICTURE_PRICE
|
||||
, M.PICTURE2_PRICE
|
||||
, M.PICTURE3_PRICE
|
||||
, 0
|
||||
, 0
|
||||
, #grdNewDate#
|
||||
, NOW()
|
||||
, '9999:12:31 23:59:59'
|
||||
, 'Y'
|
||||
, #regId#
|
||||
, NOW()
|
||||
, #editId#
|
||||
, NOW()
|
||||
FROM (
|
||||
SELECT
|
||||
A.MBER_ID
|
||||
, S.GRD_SET_NO
|
||||
, 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 = #mberId#
|
||||
) M
|
||||
WHERE M.isSalePrice = 'N'
|
||||
AND M.blineCode = 'N'
|
||||
AND M.spamYn = 'N'
|
||||
</insert>
|
||||
|
||||
<!-- 회원별 등급 히스토리 등록 All -->
|
||||
<insert id="mberGrdDAO.insertMberGrdHistAll" parameterClass="mberGrdVO">
|
||||
INSERT INTO MJ_MBER_GRD_HIST
|
||||
@ -680,10 +777,13 @@
|
||||
, A.AMT = B.AMT_SUM
|
||||
, A.TOT_AMT = B.AMT_SUM
|
||||
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
|
||||
, A.EDIT_ID = #editId#
|
||||
, A.EDIT_DATE = NOW()
|
||||
, A.TEMP_YN = 'Y'
|
||||
WHERE B.GRD_SET_NO IS NOT NULL
|
||||
WHERE 1=1
|
||||
AND B.GRD_SET_NO IS NOT NULL
|
||||
AND A.GRD_STATUS = 'Y'
|
||||
AND A.TEMP_YN = 'N'
|
||||
AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
|
||||
]]>
|
||||
</update>
|
||||
@ -751,7 +851,8 @@
|
||||
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
|
||||
, A.EDIT_ID = #editId#
|
||||
, A.EDIT_DATE = NOW()
|
||||
WHERE B.GRD_SET_NO IS NOT NULL
|
||||
WHERE 1=1
|
||||
AND 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
|
||||
@ -773,6 +874,7 @@
|
||||
, A.AMT = 0
|
||||
, A.TOT_AMT = 0
|
||||
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
|
||||
, A.EDIT_ID = #editId#
|
||||
, A.EDIT_DATE = NOW()
|
||||
, A.TEMP_YN = 'Y'
|
||||
, A.GRD_END_DATE = '9999:12:31 23:59:59'
|
||||
@ -797,6 +899,7 @@
|
||||
, A.AMT = 0
|
||||
, A.TOT_AMT = 0
|
||||
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
|
||||
, A.EDIT_ID = #editId#
|
||||
, A.EDIT_DATE = NOW()
|
||||
WHERE C.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)
|
||||
]]>
|
||||
@ -808,7 +911,9 @@
|
||||
UPDATE MJ_MBER_GRD_INFO SET
|
||||
GRD_END_DATE = NOW()
|
||||
, GRD_STATUS = 'E'
|
||||
, EDIT_ID = #editId#
|
||||
, EDIT_DATE = NOW()
|
||||
, TEMP_YN = 'Y'
|
||||
WHERE MBER_ID IN (
|
||||
SELECT
|
||||
M.MBER_ID
|
||||
@ -835,7 +940,6 @@
|
||||
JOIN MJ_MBER_SETTING B
|
||||
WHERE 1=1
|
||||
AND A.MBER_STTUS = 'Y'
|
||||
AND G.GRD_STATUS != 'E'
|
||||
) M
|
||||
WHERE M.IS_SALE_PRICE = 'Y'
|
||||
OR M.BLINE_CODE != 'N'
|
||||
@ -868,6 +972,7 @@
|
||||
, GRD_STATUS = 'E'
|
||||
, EDIT_ID = #editId#
|
||||
, EDIT_DATE = NOW()
|
||||
, TEMP_YN = 'Y'
|
||||
WHERE
|
||||
GRD_STATUS != 'E'
|
||||
AND MBER_ID = #mberId#
|
||||
|
||||
@ -237,16 +237,16 @@ function setMberGrdSave() {
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 8%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 9%">
|
||||
<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: 5%">
|
||||
<col style="width: 9%">
|
||||
<col style="width: 5%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -307,14 +307,16 @@ function setMberGrdSave() {
|
||||
<td nowrap="nowrap">
|
||||
<c:out value="${result.grdStatusNm}"/>
|
||||
</td>
|
||||
<td nowrap="nowrap" class="left">
|
||||
<td nowrap="nowrap">
|
||||
<c:choose>
|
||||
<c:when test="${result.grdStatusNm eq '종료'}">
|
||||
<input type="button" class="btnType2" onclick="setMberGrdRestoreByUser('${result.mberId}','${result.grdDate}')" value="복원">
|
||||
<input type="button" class="btnType1" onclick="setMberGrdRestoreByUser('${result.mberId}','${result.grdDate}')" value="복원">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<input type="button" class="btnType2" onclick="setMberGrdUpdateByUser('${result.mberId}')" value="갱신">
|
||||
<%--
|
||||
<input type="button" class="btnType1" onclick="setMberGrdEndByUser('${result.mberId}')" value="종료">
|
||||
--%>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user