결제하기 기능에 등급제 저장 기능 추가

This commit is contained in:
itn 2023-07-28 11:58:26 +09:00
parent 13cfae9b7e
commit 01c178573a
4 changed files with 102 additions and 72 deletions

View File

@ -39,6 +39,7 @@ import itn.let.mjo.pay.service.StVcVO;
import itn.let.mjo.tax.service.TaxVO;
import itn.let.mjo.tax.service.impl.TaxDAO;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;
import itn.let.sym.site.service.JoinSettingVO;
import itn.let.uat.uia.service.impl.MberManageDAO;
import itn.let.uss.umt.service.MberManageVO;
@ -407,15 +408,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
}
/*
// 등급제 Start
// 회원별 등급 적용
MberGrdVO mberGrdVO = new MberGrdVO();
mberGrdVO.setMberId(mjonPayVO.getUserId());
mberGrdVO.setAmt(mjonPayVO.getAmt());
mberGrdVO.setMoid(mjonPayVO.getMoid());
mberGrdService.mberGrdSaveByUser(mberGrdVO);
// End
*/
mjonPayVO.setPaySuccess(true);
return mjonPayVO;
@ -722,15 +724,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
}
/*
// 등급제 Start
// 회원별 등급 적용
MberGrdVO mberGrdVO = new MberGrdVO();
mberGrdVO.setMberId(mjonPayVO.getUserId());
mberGrdVO.setAmt(mjonPayVO.getAmt());
mberGrdVO.setMoid(mjonPayVO.getMoid());
mberGrdService.mberGrdSaveByUser(mberGrdVO);
// End
*/
//세금계산서/현금영수증 발행 처리해주기
@ -2033,15 +2036,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
}
/*
// 등급제 Start
// 회원별 등급 적용
MberGrdVO mberGrdVO = new MberGrdVO();
mberGrdVO.setMberId(mjonPayVO.getUserId());
mberGrdVO.setAmt(mjonPayVO.getAmt());
mberGrdVO.setMoid(mjonPayVO.getMoid());
mberGrdService.mberGrdSaveByUser(mberGrdVO);
// End
*/
mjonPayVO.setPaySuccess(true);
}
@ -2200,15 +2204,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
}
}
/*
// 등급제 Start
// 회원별 등급 적용
MberGrdVO mberGrdVO = new MberGrdVO();
mberGrdVO.setMberId(mjonPayVO.getUserId());
mberGrdVO.setAmt(mjonPayVO.getAmt());
mberGrdVO.setMoid(mjonPayVO.getMoid());
mberGrdService.mberGrdSaveByUser(mberGrdVO);
// End
*/
mjonPayVO.setPaySuccess(true);
}

View File

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

View File

@ -9,6 +9,7 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import itn.let.mjo.mjocommon.MjonCommon;
import itn.let.mjo.pay.service.MjonPayService;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;
@ -28,6 +29,9 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
@Resource(name="MjonCommon")
private MjonCommon mjonCommon;
// 등급제 단가 추출 => 시스템 단가에 적용
@Override
public JoinSettingVO selectMberGrdDefaultInfo(JoinSettingVO sysJoinSetVO, String mberId) throws Exception {
@ -40,7 +44,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
MberGrdVO mberGrdVO = new MberGrdVO();
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
if (mberGrdVO1.getGrdNoti().equals("Y")) {
mberGrdVO = new MberGrdVO();
mberGrdVO = selectMberGrdInfo(mberId);
if (null != mberGrdVO) {
@ -168,7 +172,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// Step 1. 등급제 시행 ON 일경우
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
if (mberGrdVO1.getGrdNoti().equals("Y")) {
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// Step1. 대상자 추가
@ -246,66 +250,77 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// 회원별 등급 적용
@Override
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception {
// 현재 날짜 구하기
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의
String nowDate = now.format(formatter); // 포맷 적용
try {
// 현재 날짜 구하기
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의
String nowDate = now.format(formatter); // 포맷 적용
mberGrdVO.setRegId(mberGrdVO.getMberId());
mberGrdVO.setEditId(mberGrdVO.getMberId());
mberGrdVO.setRegId(mberGrdVO.getMberId());
mberGrdVO.setEditId(mberGrdVO.getMberId());
// Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
if (mberGrdVO1.getGrdNoti().equals("Y")) {
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// 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 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 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 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);
// Step 5. 인서트 Or 업데이트
MberGrdVO mberGrdVO5 = new MberGrdVO();
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
if (null != mberGrdVO5) {
updateMberGrd(mberGrdVO);
// 회원별 등급 히스토리 인서트
insertMberGrdHist(mberGrdVO);
}
else {
// 인서트
insertMberGrd(mberGrdVO);
// 회원별 등급 히스토리 인서트
insertMberGrdHist(mberGrdVO);
}
else {
// 인서트
insertMberGrd(mberGrdVO);
// 회원별 등급 히스토리 인서트
insertMberGrdHist(mberGrdVO);
}
}
}
}
}
}
catch (Exception e) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] " + mberGrdVO.getMberId() + "님 결제중 회원등급 저장 오류 알림 => 개발팀에게 문의해주세요.";
mjonCommon.sendSimpleSlackMsg(msg);
System.out.println("#############################################################");
System.out.println(mberGrdVO.getMberId() + "님 결제중 회원등급 저장 오류");
}
// 회원별 등급 히스토리 인서트
insertMberGrdHist(mberGrdVO);
}
}
}
}
}
}
// 회원별 등급제 대상여부

View File

@ -833,6 +833,7 @@
, AMT
, TOT_AMT
, GRD_DATE
, MOID
, REG_ID
, REG_DATE
, EDIT_ID
@ -850,6 +851,7 @@
, #amt#
, #totAmt#
, #grdNewDate#
, #moid#
, #regId#
, NOW()
, #editId#
@ -858,6 +860,7 @@
</insert>
<!-- 회원별 등급 히스토리 목록 => 등급제 시행일이후 목록(사용자화면용) -->
<!-- AND A.GRD_DATE >= (SELECT S.GRD_DATE FROM MJ_MBER_GRD_INFO S WHERE S.MBER_ID = #mberId#) -->
<select id="mberGrdDAO.selectMberGrdHistByGrdDateList" parameterClass="mberGrdVO" resultClass="mberGrdVO">
SELECT
COUNT(MBER_ID) OVER() AS totCnt
@ -872,6 +875,7 @@
, A.AMT AS amt
, A.TOT_AMT AS totAmt
, A.GRD_DATE AS grdDate
, A.MOID AS moid
, A.REG_ID AS regId
, DATE_FORMAT(A.REG_DATE, '%Y-%m-%d %H:%i') AS regDate
, A.EDIT_ID AS editId
@ -881,9 +885,8 @@
ON A.GRD_SET_NO = B.GRD_SET_NO
WHERE 1=1
AND A.MBER_ID = #mberId#
AND IFNULL(TRIM(A.MOID), '') != ''
AND A.TOT_AMT > 0
AND A.GRD_DATE >= (SELECT S.GRD_DATE FROM MJ_MBER_GRD_INFO S WHERE S.MBER_ID = #mberId#)
GROUP BY A.TOT_AMT, A.AMT
ORDER BY A.REG_DATE DESC
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>