등급제 계산기간 관련 로직 수정
This commit is contained in:
parent
ccb1dea5cb
commit
e73d58857d
@ -43,16 +43,19 @@ public interface MberGrdService {
|
||||
// 회원별 등급 수정
|
||||
public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원별 등급 등록 All => 기존대상자 제외
|
||||
public void insertMberGrdAllByExist(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원별 등급 일괄변경
|
||||
public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
|
||||
public int updateMberGrdAfterRefund(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 문자할인, B선라인 대상자 초기화
|
||||
// 문자할인, B선라인 대상자 종료
|
||||
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 전체회원 등급 초기화
|
||||
// 전체회원 등급 종료
|
||||
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원 등급제 종료
|
||||
@ -64,6 +67,9 @@ public interface MberGrdService {
|
||||
// 회원별 등급 적용
|
||||
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception;
|
||||
|
||||
// 회원별 등급제 대상여부
|
||||
int selectMberGrdCnt(String mberId) throws Exception;
|
||||
|
||||
// 회원별 등급 진행여부
|
||||
int selectMberGrdPrgCnt(String mberId) throws Exception;
|
||||
|
||||
|
||||
@ -41,8 +41,11 @@ public class MberGrdVO extends UserDefaultVO {
|
||||
private int mberGrdHistNo;
|
||||
|
||||
private String grdNoti; // 회원등급제 시행 여부
|
||||
private String grdDate; // 회원등급제 시행일자
|
||||
private String grdDatePrgYn; // 회원등급제 시행일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N)
|
||||
private String grdDate; // 회원등급제 시작일자
|
||||
private String grdPeriodDate; // 오늘날짜 - 누적결제 계산기간 = 계산기간 시작일자
|
||||
private String grdNewDate; // 시작일자, 계산기간 시작일자 중 최근날짜
|
||||
private String grdDatePrgYn; // 회원등급제 시작일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N)
|
||||
private String grdPeriod; // 회원등급제 누적결제 계산기간
|
||||
|
||||
// 검색필터
|
||||
private String searchGrdStatus;
|
||||
@ -241,12 +244,30 @@ public class MberGrdVO extends UserDefaultVO {
|
||||
public void setGrdDate(String grdDate) {
|
||||
this.grdDate = grdDate;
|
||||
}
|
||||
public String getGrdPeriodDate() {
|
||||
return grdPeriodDate;
|
||||
}
|
||||
public void setGrdPeriodDate(String grdPeriodDate) {
|
||||
this.grdPeriodDate = grdPeriodDate;
|
||||
}
|
||||
public String getGrdNewDate() {
|
||||
return grdNewDate;
|
||||
}
|
||||
public void setGrdNewDate(String grdNewDate) {
|
||||
this.grdNewDate = grdNewDate;
|
||||
}
|
||||
public String getGrdDatePrgYn() {
|
||||
return grdDatePrgYn;
|
||||
}
|
||||
public void setGrdDatePrgYn(String grdDatePrgYn) {
|
||||
this.grdDatePrgYn = grdDatePrgYn;
|
||||
}
|
||||
public String getGrdPeriod() {
|
||||
return grdPeriod;
|
||||
}
|
||||
public void setGrdPeriod(String grdPeriod) {
|
||||
this.grdPeriod = grdPeriod;
|
||||
}
|
||||
public String getSearchGrdStatus() {
|
||||
return searchGrdStatus;
|
||||
}
|
||||
|
||||
@ -67,6 +67,11 @@ public class MberGrdDAO extends EgovAbstractDAO {
|
||||
public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception{
|
||||
update("mberGrdDAO.updateMberGrd", mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 등록 All => 기존대상자 제외
|
||||
public void insertMberGrdAllByExist(MberGrdVO mberGrdVO) throws Exception{
|
||||
insert("mberGrdDAO.insertMberGrdAllByExist", mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 일괄변경
|
||||
public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
|
||||
@ -78,12 +83,12 @@ public class MberGrdDAO extends EgovAbstractDAO {
|
||||
return update("mberGrdDAO.updateMberGrdAfterRefund", mberGrdVO);
|
||||
}
|
||||
|
||||
// 문자할인, B선라인 대상자 초기화
|
||||
// 문자할인, 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);
|
||||
}
|
||||
@ -98,6 +103,11 @@ public class MberGrdDAO extends EgovAbstractDAO {
|
||||
return update("mberGrdDAO.updateMberGrdRestoreByUser", mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급제 대상여부
|
||||
public int selectMberGrdCnt(String mberId) throws Exception{
|
||||
return (int) select("mberGrdDAO.selectMberGrdCnt", mberId);
|
||||
}
|
||||
|
||||
// 회원별 등급 진행여부
|
||||
public int selectMberGrdPrgCnt(String mberId) throws Exception{
|
||||
return (int) select("mberGrdDAO.selectMberGrdPrgCnt", mberId);
|
||||
|
||||
@ -14,7 +14,6 @@ import itn.let.sym.grd.service.MberGrdService;
|
||||
import itn.let.sym.grd.service.MberGrdVO;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.uss.umt.service.EgovMberManageService;
|
||||
import itn.let.uss.umt.service.MberManageVO;
|
||||
|
||||
@Service("mberGrdService")
|
||||
public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberGrdService {
|
||||
@ -147,6 +146,12 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
mberGrdDAO.updateMberGrd(mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 등록 All => 기존대상자 제외
|
||||
@Override
|
||||
public void insertMberGrdAllByExist(MberGrdVO mberGrdVO) throws Exception {
|
||||
mberGrdDAO.insertMberGrdAllByExist(mberGrdVO);
|
||||
}
|
||||
|
||||
// 회원별 등급 일괄변경
|
||||
@Override
|
||||
public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
|
||||
@ -157,9 +162,16 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
MberGrdVO mberGrdVO1 = new MberGrdVO();
|
||||
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
|
||||
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
||||
// 문자할인, B선라인 대상자 초기화
|
||||
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
|
||||
|
||||
// 대상자 추가
|
||||
insertMberGrdAllByExist(mberGrdVO);
|
||||
|
||||
// 문자할인, B선라인, 스팸회원 대상자 종료
|
||||
updateCnt1 = updateMberGrdEndBySale(mberGrdVO);
|
||||
|
||||
// 등급제 정상대상자 초기화(화이트등급)
|
||||
|
||||
// 회원별 등급 일괄변경
|
||||
updateCnt2 = mberGrdDAO.updateMberGrdAll(mberGrdVO);
|
||||
}
|
||||
@ -173,13 +185,13 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
return mberGrdDAO.updateMberGrdAfterRefund(mberGrdVO);
|
||||
}
|
||||
|
||||
// 문자할인, B선라인 대상자 초기화
|
||||
// 문자할인, B선라인 대상자 종료
|
||||
@Override
|
||||
public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
|
||||
return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO);
|
||||
}
|
||||
|
||||
// 전체회원 등급 초기화
|
||||
// 전체회원 등급 종료
|
||||
@Override
|
||||
public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
|
||||
return mberGrdDAO.updateMberGrdEndAll(mberGrdVO);
|
||||
@ -212,68 +224,65 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
|
||||
MberGrdVO mberGrdVO1 = new MberGrdVO();
|
||||
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
|
||||
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
||||
mberGrdVO.setGrdDate(mberGrdVO1.getGrdDate());
|
||||
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
|
||||
|
||||
// Step 2. /협의/스팸/비선등급 적용 제외
|
||||
// 문자할인여부(1: 할인, 0: 미할인)
|
||||
int isMsgSalePrice = mjonPayService.selectMsgSalePriceCnt(mberGrdVO.getMberId());
|
||||
if(isMsgSalePrice == 0) {
|
||||
// B선 전송사 이용고객 => 등급제대상 제외처리
|
||||
MberManageVO mberManageVO = new MberManageVO();
|
||||
mberManageVO.setMberId(mberGrdVO.getMberId());
|
||||
String blineCode = mberManageService.selectBlineCodeByMberId(mberManageVO);
|
||||
if (blineCode != null && blineCode.equals("N")) {
|
||||
// Step 2. 문자할인, B선라인, 스팸회원 대상자 제외
|
||||
int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상)
|
||||
if(isMberGrd == 1) {
|
||||
// Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회
|
||||
MberGrdVO mberGrdVO3 = new MberGrdVO();
|
||||
mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO);
|
||||
if (null != mberGrdVO3) {
|
||||
mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt());
|
||||
mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo());
|
||||
|
||||
// Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회
|
||||
MberGrdVO mberGrdVO3 = new MberGrdVO();
|
||||
mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO);
|
||||
if (null != mberGrdVO3) {
|
||||
mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt());
|
||||
mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo());
|
||||
|
||||
// Step 4. 등급제 설정값 조회
|
||||
MberGrdVO mberGrdVO4 = new MberGrdVO();
|
||||
mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO);
|
||||
if (null != mberGrdVO4) {
|
||||
mberGrdVO.setAmt(mberGrdVO.getAmt());
|
||||
mberGrdVO.setTotAmt(mberGrdVO.getTotAmt());
|
||||
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 업데이트
|
||||
MberGrdVO mberGrdVO5 = new MberGrdVO();
|
||||
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
|
||||
if (null != mberGrdVO5) {
|
||||
// 업데이트 => 기존등급보다 상위등급 대상만 업데이트
|
||||
if (mberGrdVO5.getGrdSetNo() > mberGrdVO.getGrdSetNo()) {
|
||||
updateMberGrd(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// 인서트
|
||||
insertMberGrd(mberGrdVO);
|
||||
// Step 4. 등급제 설정값 조회
|
||||
MberGrdVO mberGrdVO4 = new MberGrdVO();
|
||||
mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO);
|
||||
if (null != mberGrdVO4) {
|
||||
mberGrdVO.setAmt(mberGrdVO.getAmt());
|
||||
mberGrdVO.setTotAmt(mberGrdVO.getTotAmt());
|
||||
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 업데이트
|
||||
MberGrdVO mberGrdVO5 = new MberGrdVO();
|
||||
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
|
||||
if (null != mberGrdVO5) {
|
||||
updateMberGrd(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// 인서트
|
||||
insertMberGrd(mberGrdVO);
|
||||
|
||||
// 회원별 등급 히스토리 인서트
|
||||
insertMberGrdHist(mberGrdVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 회원별 등급제 대상여부
|
||||
@Override
|
||||
public int selectMberGrdCnt(String mberId) throws Exception{
|
||||
// 공백제거
|
||||
mberId = mberId.trim();
|
||||
|
||||
return mberGrdDAO.selectMberGrdCnt(mberId);
|
||||
}
|
||||
|
||||
// 회원별 등급 진행여부
|
||||
@Override
|
||||
public int selectMberGrdPrgCnt(String mberId) throws Exception{
|
||||
|
||||
@ -39,6 +39,7 @@ public class MberGrdMngController {
|
||||
|
||||
model.addAttribute("grdNoti", mberGrdVO.getGrdNoti());
|
||||
model.addAttribute("grdDate", mberGrdVO.getGrdDate());
|
||||
model.addAttribute("grdPeriod", mberGrdVO.getGrdPeriod());
|
||||
model.addAttribute("mberGrdSettingList", mberGrdSettingList);
|
||||
|
||||
return "/sym/grd/mberGrdSetting";
|
||||
@ -322,10 +323,16 @@ public class MberGrdMngController {
|
||||
mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID
|
||||
|
||||
try{
|
||||
|
||||
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
|
||||
mberGrdService.updateMberGrdAfterRefund(mberGrdVO);
|
||||
|
||||
// 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());
|
||||
|
||||
// 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트
|
||||
mberGrdService.updateMberGrdAfterRefund(mberGrdVO);
|
||||
}
|
||||
}
|
||||
catch(Exception e) {
|
||||
isSuccess = false;
|
||||
|
||||
@ -10,15 +10,23 @@
|
||||
UPDATE MJ_MBER_SETTING A
|
||||
SET
|
||||
A.GRD_NOTI = #grdNoti#
|
||||
, A.GRD_DATE = #grdDate#
|
||||
, A.GRD_DATE = #grdDate#
|
||||
, A.GRD_PERIOD = #grdPeriod#
|
||||
</update>
|
||||
|
||||
<!-- 등급제 시행여부 상세 -->
|
||||
<select id="mberGrdDAO.selectMberSettingDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
GRD_NOTI AS grdNoti
|
||||
, DATE_FORMAT(GRD_DATE, '%Y-%m-%d' ) AS grdDate
|
||||
GRD_NOTI AS grdNoti
|
||||
, DATE_FORMAT(GRD_DATE, '%Y-%m-%d') AS grdDate
|
||||
, DATE_FORMAT(DATE_ADD(NOW(), INTERVAL - GRD_PERIOD DAY), '%Y-%m-%d') AS grdPeriodDate
|
||||
, CASE
|
||||
WHEN DATE_FORMAT(GRD_DATE, '%Y-%m-%d') > DATE_FORMAT(DATE_ADD(NOW(), INTERVAL - GRD_PERIOD DAY), '%Y-%m-%d')
|
||||
THEN DATE_FORMAT(GRD_DATE, '%Y-%m-%d')
|
||||
ELSE DATE_FORMAT(DATE_ADD(NOW(), INTERVAL - GRD_PERIOD DAY), '%Y-%m-%d')
|
||||
END grdNewDate
|
||||
, GRD_PERIOD AS grdPeriod
|
||||
, CASE
|
||||
WHEN IFNULL(GRD_DATE, '') = ''
|
||||
THEN 'N'
|
||||
@ -217,12 +225,14 @@
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 회원 등급제 대상여부 정보(사용자화면용) -->
|
||||
<!-- 회원 등급제 대상여부 정보(사용자화면용) => 문자할인, B선라인, 스팸회원 대상자 제외 -->
|
||||
<select id="mberGrdDAO.selectMberGrdInfo" parameterClass="String" resultClass="mberGrdVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
M.mberId
|
||||
, blineCode
|
||||
, M.isSalePrice
|
||||
, M.blineCode
|
||||
, M.spamYn
|
||||
, M.grdSetNo
|
||||
, M.grdSetNm
|
||||
, CASE
|
||||
@ -250,6 +260,7 @@
|
||||
SELECT
|
||||
A.MBER_ID AS mberId
|
||||
, IFNULL(A.BLINE_CODE, 'N') AS blineCode
|
||||
, IFNULL(A.SPAM_YN, 'N') AS spamYn
|
||||
, G.GRD_SET_NO AS grdSetNo
|
||||
, S.GRD_SET_NM AS grdSetNm
|
||||
, DATE_FORMAT(G.GRD_DATE, '%Y-%m-%d') AS grdDate
|
||||
@ -278,6 +289,7 @@
|
||||
ON G.GRD_SET_NO = S.GRD_SET_NO
|
||||
JOIN MJ_MBER_SETTING B
|
||||
WHERE 1=1
|
||||
AND A.MBER_STTUS = 'Y'
|
||||
AND B.GRD_NOTI = 'Y'
|
||||
AND DATE_FORMAT(B.GRD_DATE, '%Y-%m-%d') <= DATE_FORMAT(NOW(), '%Y-%m-%d')
|
||||
AND G.GRD_STATUS = 'Y'
|
||||
@ -285,8 +297,9 @@
|
||||
AND G.MBER_ID = #mberId#
|
||||
) M
|
||||
WHERE M.isSalePrice = 'N'
|
||||
OR M.blineCode != 'N'
|
||||
LIMIT 1
|
||||
AND M.blineCode = 'N'
|
||||
AND M.spamYn = 'N'
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
@ -306,7 +319,7 @@
|
||||
, 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))
|
||||
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))
|
||||
) GRD_SET_NO
|
||||
FROM MJ_PG S
|
||||
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
|
||||
@ -316,7 +329,7 @@
|
||||
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')
|
||||
AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
|
||||
GROUP BY S.USER_ID
|
||||
) M
|
||||
WHERE M.GRD_SET_NO IS NOT NULL
|
||||
@ -387,6 +400,53 @@
|
||||
MBER_ID = #mberId#
|
||||
</update>
|
||||
|
||||
<!-- 회원별 등급 등록 All => 기존대상자 제외 -->
|
||||
<insert id="mberGrdDAO.insertMberGrdAllByExist" 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
|
||||
A.MBER_ID
|
||||
, S.GRD_SET_NO
|
||||
, S.SHORT_PRICE
|
||||
, S.LONG_PRICE
|
||||
, S.PICTURE_PRICE
|
||||
, S.PICTURE2_PRICE
|
||||
, S.PICTURE3_PRICE
|
||||
, 0
|
||||
, 0
|
||||
, #grdNewDate#
|
||||
, NOW()
|
||||
, '9999:12:31 23:59:59'
|
||||
, 'Y'
|
||||
, ''
|
||||
, NOW()
|
||||
, ''
|
||||
, NOW()
|
||||
FROM LETTNGNRLMBER A
|
||||
INNER JOIN MJ_MBER_GRD_SETTING S
|
||||
ON S.GRD_SET_NO = 12
|
||||
WHERE A.MBER_STTUS = 'Y'
|
||||
AND MBER_ID NOT IN (SELECT MBER_ID FROM MJ_MBER_GRD_INFO)
|
||||
</insert>
|
||||
|
||||
<!--
|
||||
회원별 등급 일괄변경
|
||||
=> 기존등급보다 상위등급 대상만 업데이트 됨.
|
||||
@ -409,7 +469,7 @@
|
||||
, 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))
|
||||
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))
|
||||
) GRD_SET_NO
|
||||
FROM MJ_PG S
|
||||
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
|
||||
@ -419,7 +479,7 @@
|
||||
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')
|
||||
AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
|
||||
GROUP BY S.USER_ID
|
||||
) M
|
||||
WHERE M.GRD_SET_NO IS NOT NULL
|
||||
@ -436,10 +496,9 @@
|
||||
, 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.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%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 A.GRD_STATUS = 'Y'
|
||||
AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
|
||||
]]>
|
||||
@ -466,7 +525,7 @@
|
||||
, 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))
|
||||
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))
|
||||
) GRD_SET_NO
|
||||
FROM MJ_PG S
|
||||
LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
|
||||
@ -476,7 +535,7 @@
|
||||
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')
|
||||
AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
|
||||
GROUP BY S.USER_ID
|
||||
) M
|
||||
WHERE M.GRD_SET_NO IS NOT NULL
|
||||
@ -493,7 +552,7 @@
|
||||
, 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.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
|
||||
@ -503,7 +562,7 @@
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 문자할인, B선라인 대상자 초기화 -->
|
||||
<!-- 문자할인, B선라인, 스팸회원 대상자 종료 -->
|
||||
<update id="mberGrdDAO.updateMberGrdEndBySale" parameterClass="mberGrdVO">
|
||||
<![CDATA[
|
||||
UPDATE MJ_MBER_GRD_INFO SET
|
||||
@ -517,6 +576,7 @@
|
||||
SELECT
|
||||
A.MBER_ID
|
||||
, IFNULL(A.BLINE_CODE, 'N') AS BLINE_CODE
|
||||
, IFNULL(A.SPAM_YN, 'N') AS SPAM_YN
|
||||
, CASE
|
||||
WHEN
|
||||
(A.SHORT_PRICE > 0
|
||||
@ -528,21 +588,23 @@
|
||||
)
|
||||
THEN 'Y'
|
||||
ELSE 'N'
|
||||
END isSalePrice
|
||||
END IS_SALE_PRICE
|
||||
FROM LETTNGNRLMBER A
|
||||
INNER JOIN MJ_MBER_GRD_INFO G
|
||||
ON A.MBER_ID = G.MBER_ID
|
||||
JOIN MJ_MBER_SETTING B
|
||||
WHERE 1=1
|
||||
AND A.MBER_STTUS = 'Y'
|
||||
AND G.GRD_STATUS != 'E'
|
||||
) M
|
||||
WHERE M.isSalePrice = 'Y'
|
||||
OR M.BLINE_CODE != 'N'
|
||||
WHERE M.IS_SALE_PRICE = 'Y'
|
||||
OR M.BLINE_CODE != 'N'
|
||||
OR M.SPAM_YN = 'Y'
|
||||
)
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 전체회원 등급 초기화 -->
|
||||
<!-- 전체회원 등급 종료 -->
|
||||
<update id="mberGrdDAO.updateMberGrdEndAll" parameterClass="mberGrdVO">
|
||||
UPDATE MJ_MBER_GRD_INFO SET
|
||||
GRD_END_DATE = NOW()
|
||||
@ -577,7 +639,40 @@
|
||||
GRD_STATUS != 'Y'
|
||||
AND MBER_ID = #mberId#
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 회원별 등급제 대상여부 -->
|
||||
<select id="mberGrdDAO.selectMberGrdCnt" parameterClass="String" resultClass="Integer">
|
||||
SELECT
|
||||
COUNT(0)
|
||||
FROM (
|
||||
SELECT
|
||||
A.MBER_ID AS mberId
|
||||
, 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
|
||||
JOIN MJ_MBER_SETTING B
|
||||
WHERE 1=1
|
||||
AND A.MBER_ID = #mberId#
|
||||
AND A.MBER_STTUS = 'Y'
|
||||
) M
|
||||
WHERE M.isSalePrice = 'N'
|
||||
AND M.blineCode = 'N'
|
||||
AND M.spamYn = 'N'
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 회원별 등급 진행여부 -->
|
||||
<select id="mberGrdDAO.selectMberGrdPrgCnt" parameterClass="String" resultClass="Integer">
|
||||
SELECT
|
||||
|
||||
@ -131,12 +131,12 @@ function setMberGrdRestoreByUser(mberId, grdDate) {
|
||||
}
|
||||
|
||||
//회원 등급제 갱신
|
||||
function setMberGrdUpdateByUser(mberId, grdDate) {
|
||||
function setMberGrdUpdateByUser(mberId) {
|
||||
if(confirm("등급제 갱신하시겠습니까?\n등급 다시 계산합니다.")) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/sym/grd/mberGrdUpdateByUserAjax.do",
|
||||
data: {"mberId" : mberId, "grdDate" : grdDate},
|
||||
data: {"mberId" : mberId},
|
||||
dataType:'json',
|
||||
async: false,
|
||||
success: function (data) {
|
||||
@ -246,7 +246,7 @@ function setMberGrdSave() {
|
||||
<col style="width: 12%">
|
||||
<col style="width: 12%">
|
||||
<col style="width: 5%">
|
||||
<col style="width: 8%">
|
||||
<col style="width: 9%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -307,13 +307,13 @@ function setMberGrdSave() {
|
||||
<td nowrap="nowrap">
|
||||
<c:out value="${result.grdStatusNm}"/>
|
||||
</td>
|
||||
<td nowrap="nowrap">
|
||||
<td nowrap="nowrap" class="left">
|
||||
<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="btnType2" onclick="setMberGrdUpdateByUser('${result.mberId}')" value="갱신">
|
||||
<input type="button" class="btnType1" onclick="setMberGrdEndByUser('${result.mberId}')" value="종료">
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
@ -100,20 +100,23 @@
|
||||
<div class="tableWrap">
|
||||
<table class="tbType2">
|
||||
<colgroup>
|
||||
<col width="20%">
|
||||
<col width="30%">
|
||||
<col width="20%">
|
||||
<col width="*">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>등급제 적용</th>
|
||||
<td>
|
||||
<td colspan="3">
|
||||
<input type="radio" name="grdNoti" id="grdNoti1" value="Y" <c:if test="${grdNoti eq 'Y'}">checked="checked"</c:if> /> ON
|
||||
|
||||
<input type="radio" name="grdNoti" id="grdNoti2" value="N" <c:if test="${grdNoti eq 'N'}">checked="checked"</c:if> /> OFF
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<th>누적결제 적용일자</th>
|
||||
<th>누적결제 시작일자</th>
|
||||
<td>
|
||||
<input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do">
|
||||
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);">
|
||||
@ -123,6 +126,10 @@
|
||||
<input type="button" class="calBtn">
|
||||
</a>
|
||||
</td>
|
||||
<th>누적결제 계산기간</th>
|
||||
<td>
|
||||
<input type="text" name="grdPeriod" value="<c:out value="${grdPeriod}" />" style="height: 20px; width: 150px; padding: 5px 5px 5px 5px;" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user