결제하기 기능에 등급제 저장 기능 추가
@01c178573aac304cf7789db69a0ea8874796b898
--- src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java
+++ src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java
... | ... | @@ -39,6 +39,7 @@ |
| 39 | 39 |
import itn.let.mjo.tax.service.TaxVO; |
| 40 | 40 |
import itn.let.mjo.tax.service.impl.TaxDAO; |
| 41 | 41 |
import itn.let.sym.grd.service.MberGrdService; |
| 42 |
+import itn.let.sym.grd.service.MberGrdVO; |
|
| 42 | 43 |
import itn.let.sym.site.service.JoinSettingVO; |
| 43 | 44 |
import itn.let.uat.uia.service.impl.MberManageDAO; |
| 44 | 45 |
import itn.let.uss.umt.service.MberManageVO; |
... | ... | @@ -407,15 +408,16 @@ |
| 407 | 408 |
|
| 408 | 409 |
} |
| 409 | 410 |
|
| 410 |
- /* |
|
| 411 |
+ |
|
| 411 | 412 |
// 등급제 Start |
| 412 | 413 |
// 회원별 등급 적용 |
| 413 | 414 |
MberGrdVO mberGrdVO = new MberGrdVO(); |
| 414 | 415 |
mberGrdVO.setMberId(mjonPayVO.getUserId()); |
| 415 | 416 |
mberGrdVO.setAmt(mjonPayVO.getAmt()); |
| 417 |
+ mberGrdVO.setMoid(mjonPayVO.getMoid()); |
|
| 416 | 418 |
mberGrdService.mberGrdSaveByUser(mberGrdVO); |
| 417 | 419 |
// End |
| 418 |
- */ |
|
| 420 |
+ |
|
| 419 | 421 |
|
| 420 | 422 |
mjonPayVO.setPaySuccess(true); |
| 421 | 423 |
return mjonPayVO; |
... | ... | @@ -722,15 +724,16 @@ |
| 722 | 724 |
|
| 723 | 725 |
} |
| 724 | 726 |
|
| 725 |
- /* |
|
| 727 |
+ |
|
| 726 | 728 |
// 등급제 Start |
| 727 | 729 |
// 회원별 등급 적용 |
| 728 | 730 |
MberGrdVO mberGrdVO = new MberGrdVO(); |
| 729 | 731 |
mberGrdVO.setMberId(mjonPayVO.getUserId()); |
| 730 | 732 |
mberGrdVO.setAmt(mjonPayVO.getAmt()); |
| 733 |
+ mberGrdVO.setMoid(mjonPayVO.getMoid()); |
|
| 731 | 734 |
mberGrdService.mberGrdSaveByUser(mberGrdVO); |
| 732 | 735 |
// End |
| 733 |
- */ |
|
| 736 |
+ |
|
| 734 | 737 |
|
| 735 | 738 |
|
| 736 | 739 |
//세금계산서/현금영수증 발행 처리해주기 |
... | ... | @@ -2033,15 +2036,16 @@ |
| 2033 | 2036 |
|
| 2034 | 2037 |
} |
| 2035 | 2038 |
|
| 2036 |
- /* |
|
| 2039 |
+ |
|
| 2037 | 2040 |
// 등급제 Start |
| 2038 | 2041 |
// 회원별 등급 적용 |
| 2039 | 2042 |
MberGrdVO mberGrdVO = new MberGrdVO(); |
| 2040 | 2043 |
mberGrdVO.setMberId(mjonPayVO.getUserId()); |
| 2041 | 2044 |
mberGrdVO.setAmt(mjonPayVO.getAmt()); |
| 2045 |
+ mberGrdVO.setMoid(mjonPayVO.getMoid()); |
|
| 2042 | 2046 |
mberGrdService.mberGrdSaveByUser(mberGrdVO); |
| 2043 | 2047 |
// End |
| 2044 |
- */ |
|
| 2048 |
+ |
|
| 2045 | 2049 |
|
| 2046 | 2050 |
mjonPayVO.setPaySuccess(true); |
| 2047 | 2051 |
} |
... | ... | @@ -2200,15 +2204,16 @@ |
| 2200 | 2204 |
} |
| 2201 | 2205 |
} |
| 2202 | 2206 |
|
| 2203 |
- /* |
|
| 2207 |
+ |
|
| 2204 | 2208 |
// 등급제 Start |
| 2205 | 2209 |
// 회원별 등급 적용 |
| 2206 | 2210 |
MberGrdVO mberGrdVO = new MberGrdVO(); |
| 2207 | 2211 |
mberGrdVO.setMberId(mjonPayVO.getUserId()); |
| 2208 | 2212 |
mberGrdVO.setAmt(mjonPayVO.getAmt()); |
| 2213 |
+ mberGrdVO.setMoid(mjonPayVO.getMoid()); |
|
| 2209 | 2214 |
mberGrdService.mberGrdSaveByUser(mberGrdVO); |
| 2210 | 2215 |
// End |
| 2211 |
- */ |
|
| 2216 |
+ |
|
| 2212 | 2217 |
|
| 2213 | 2218 |
mjonPayVO.setPaySuccess(true); |
| 2214 | 2219 |
} |
--- src/main/java/itn/let/sym/grd/service/MberGrdVO.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdVO.java
... | ... | @@ -47,6 +47,7 @@ |
| 47 | 47 |
private String grdDatePrgYn; // 회원등급제 시작일자 진행여부(오늘보다 이전날짜이면 Y, 이후이면 N) |
| 48 | 48 |
private String grdPeriod; // 회원등급제 누적결제 계산기간 |
| 49 | 49 |
private String tempYn; |
| 50 |
+ private String moid; // 결제번호 |
|
| 50 | 51 |
|
| 51 | 52 |
// 검색필터 |
| 52 | 53 |
private String searchGrdStatus; |
... | ... | @@ -275,6 +276,12 @@ |
| 275 | 276 |
public void setTempYn(String tempYn) {
|
| 276 | 277 |
this.tempYn = tempYn; |
| 277 | 278 |
} |
| 279 |
+ public String getMoid() {
|
|
| 280 |
+ return moid; |
|
| 281 |
+ } |
|
| 282 |
+ public void setMoid(String moid) {
|
|
| 283 |
+ this.moid = moid; |
|
| 284 |
+ } |
|
| 278 | 285 |
public String getSearchGrdStatus() {
|
| 279 | 286 |
return searchGrdStatus; |
| 280 | 287 |
} |
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
... | ... | @@ -9,6 +9,7 @@ |
| 9 | 9 |
import org.springframework.stereotype.Service; |
| 10 | 10 |
|
| 11 | 11 |
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; |
| 12 |
+import itn.let.mjo.mjocommon.MjonCommon; |
|
| 12 | 13 |
import itn.let.mjo.pay.service.MjonPayService; |
| 13 | 14 |
import itn.let.sym.grd.service.MberGrdService; |
| 14 | 15 |
import itn.let.sym.grd.service.MberGrdVO; |
... | ... | @@ -28,6 +29,9 @@ |
| 28 | 29 |
@Resource(name = "mberManageService") |
| 29 | 30 |
private EgovMberManageService mberManageService; |
| 30 | 31 |
|
| 32 |
+ @Resource(name="MjonCommon") |
|
| 33 |
+ private MjonCommon mjonCommon; |
|
| 34 |
+ |
|
| 31 | 35 |
// 등급제 단가 추출 => 시스템 단가에 적용 |
| 32 | 36 |
@Override |
| 33 | 37 |
public JoinSettingVO selectMberGrdDefaultInfo(JoinSettingVO sysJoinSetVO, String mberId) throws Exception {
|
... | ... | @@ -40,7 +44,7 @@ |
| 40 | 44 |
MberGrdVO mberGrdVO = new MberGrdVO(); |
| 41 | 45 |
MberGrdVO mberGrdVO1 = new MberGrdVO(); |
| 42 | 46 |
mberGrdVO1 = selectMberSettingDetail(mberGrdVO); |
| 43 |
- if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
|
| 47 |
+ if (mberGrdVO1.getGrdNoti().equals("Y")) {
|
|
| 44 | 48 |
mberGrdVO = new MberGrdVO(); |
| 45 | 49 |
mberGrdVO = selectMberGrdInfo(mberId); |
| 46 | 50 |
if (null != mberGrdVO) {
|
... | ... | @@ -168,7 +172,7 @@ |
| 168 | 172 |
// Step 1. 등급제 시행 ON 일경우 |
| 169 | 173 |
MberGrdVO mberGrdVO1 = new MberGrdVO(); |
| 170 | 174 |
mberGrdVO1 = selectMberSettingDetail(mberGrdVO); |
| 171 |
- if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
|
| 175 |
+ if (mberGrdVO1.getGrdNoti().equals("Y")) {
|
|
| 172 | 176 |
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); |
| 173 | 177 |
|
| 174 | 178 |
// Step1. 대상자 추가 |
... | ... | @@ -246,66 +250,77 @@ |
| 246 | 250 |
// 회원별 등급 적용 |
| 247 | 251 |
@Override |
| 248 | 252 |
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception {
|
| 249 |
- // 현재 날짜 구하기 |
|
| 250 |
- LocalDate now = LocalDate.now(); |
|
| 251 |
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의
|
|
| 252 |
- String nowDate = now.format(formatter); // 포맷 적용 |
|
| 253 |
- |
|
| 254 |
- mberGrdVO.setRegId(mberGrdVO.getMberId()); |
|
| 255 |
- mberGrdVO.setEditId(mberGrdVO.getMberId()); |
|
| 256 |
- |
|
| 257 |
- // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) |
|
| 258 |
- MberGrdVO mberGrdVO1 = new MberGrdVO(); |
|
| 259 |
- mberGrdVO1 = selectMberSettingDetail(mberGrdVO); |
|
| 260 |
- if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
|
| 261 |
- mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); |
|
| 262 |
- |
|
| 263 |
- // Step 2. 문자할인, B선라인, 스팸회원 대상자 제외 |
|
| 264 |
- int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상) |
|
| 265 |
- if(isMberGrd == 1) {
|
|
| 266 |
- // Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회 |
|
| 267 |
- MberGrdVO mberGrdVO3 = new MberGrdVO(); |
|
| 268 |
- mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO); |
|
| 269 |
- if (null != mberGrdVO3) {
|
|
| 270 |
- mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt()); |
|
| 271 |
- mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo()); |
|
| 272 |
- |
|
| 273 |
- // Step 4. 등급제 설정값 조회 |
|
| 274 |
- MberGrdVO mberGrdVO4 = new MberGrdVO(); |
|
| 275 |
- mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO); |
|
| 276 |
- if (null != mberGrdVO4) {
|
|
| 277 |
- mberGrdVO.setAmt(mberGrdVO.getAmt()); |
|
| 278 |
- mberGrdVO.setTotAmt(mberGrdVO.getTotAmt()); |
|
| 279 |
- mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice()); |
|
| 280 |
- mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice()); |
|
| 281 |
- mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice()); |
|
| 282 |
- mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price()); |
|
| 283 |
- mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price()); |
|
| 284 |
- mberGrdVO.setGrdDate(mberGrdVO.getGrdDate()); |
|
| 285 |
- mberGrdVO.setGrdStartDate(nowDate + " 00:00:00"); |
|
| 286 |
- mberGrdVO.setGrdEndDate("9999:12:31 23:59:59");
|
|
| 287 |
- mberGrdVO.setGrdStatus("Y");
|
|
| 288 |
- |
|
| 289 |
- // Step 5. 인서트 Or 업데이트 |
|
| 290 |
- MberGrdVO mberGrdVO5 = new MberGrdVO(); |
|
| 291 |
- mberGrdVO5 = selectMberGrdDetail(mberGrdVO); |
|
| 292 |
- if (null != mberGrdVO5) {
|
|
| 293 |
- updateMberGrd(mberGrdVO); |
|
| 294 |
- |
|
| 295 |
- // 회원별 등급 히스토리 인서트 |
|
| 296 |
- insertMberGrdHist(mberGrdVO); |
|
| 297 |
- } |
|
| 298 |
- else {
|
|
| 299 |
- // 인서트 |
|
| 300 |
- insertMberGrd(mberGrdVO); |
|
| 301 |
- |
|
| 302 |
- // 회원별 등급 히스토리 인서트 |
|
| 303 |
- insertMberGrdHist(mberGrdVO); |
|
| 304 |
- } |
|
| 305 |
- } |
|
| 306 |
- } |
|
| 307 |
- } |
|
| 308 |
- } |
|
| 253 |
+ try {
|
|
| 254 |
+ // 현재 날짜 구하기 |
|
| 255 |
+ LocalDate now = LocalDate.now(); |
|
| 256 |
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의
|
|
| 257 |
+ String nowDate = now.format(formatter); // 포맷 적용 |
|
| 258 |
+ |
|
| 259 |
+ mberGrdVO.setRegId(mberGrdVO.getMberId()); |
|
| 260 |
+ mberGrdVO.setEditId(mberGrdVO.getMberId()); |
|
| 261 |
+ |
|
| 262 |
+ // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) |
|
| 263 |
+ MberGrdVO mberGrdVO1 = new MberGrdVO(); |
|
| 264 |
+ mberGrdVO1 = selectMberSettingDetail(mberGrdVO); |
|
| 265 |
+ if (mberGrdVO1.getGrdNoti().equals("Y")) {
|
|
| 266 |
+ mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); |
|
| 267 |
+ |
|
| 268 |
+ // Step 2. 문자할인, B선라인, 스팸회원 대상자 제외 |
|
| 269 |
+ int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상) |
|
| 270 |
+ if(isMberGrd == 1) {
|
|
| 271 |
+ // Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회 |
|
| 272 |
+ MberGrdVO mberGrdVO3 = new MberGrdVO(); |
|
| 273 |
+ mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO); |
|
| 274 |
+ if (null != mberGrdVO3) {
|
|
| 275 |
+ mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt()); |
|
| 276 |
+ mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo()); |
|
| 277 |
+ |
|
| 278 |
+ // Step 4. 등급제 설정값 조회 |
|
| 279 |
+ MberGrdVO mberGrdVO4 = new MberGrdVO(); |
|
| 280 |
+ mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO); |
|
| 281 |
+ if (null != mberGrdVO4) {
|
|
| 282 |
+ mberGrdVO.setAmt(mberGrdVO.getAmt()); |
|
| 283 |
+ mberGrdVO.setTotAmt(mberGrdVO.getTotAmt()); |
|
| 284 |
+ mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice()); |
|
| 285 |
+ mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice()); |
|
| 286 |
+ mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice()); |
|
| 287 |
+ mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price()); |
|
| 288 |
+ mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price()); |
|
| 289 |
+ mberGrdVO.setGrdDate(mberGrdVO.getGrdDate()); |
|
| 290 |
+ mberGrdVO.setGrdStartDate(nowDate + " 00:00:00"); |
|
| 291 |
+ mberGrdVO.setGrdEndDate("9999:12:31 23:59:59");
|
|
| 292 |
+ mberGrdVO.setGrdStatus("Y");
|
|
| 293 |
+ |
|
| 294 |
+ // Step 5. 인서트 Or 업데이트 |
|
| 295 |
+ MberGrdVO mberGrdVO5 = new MberGrdVO(); |
|
| 296 |
+ mberGrdVO5 = selectMberGrdDetail(mberGrdVO); |
|
| 297 |
+ if (null != mberGrdVO5) {
|
|
| 298 |
+ updateMberGrd(mberGrdVO); |
|
| 299 |
+ |
|
| 300 |
+ // 회원별 등급 히스토리 인서트 |
|
| 301 |
+ insertMberGrdHist(mberGrdVO); |
|
| 302 |
+ } |
|
| 303 |
+ else {
|
|
| 304 |
+ // 인서트 |
|
| 305 |
+ insertMberGrd(mberGrdVO); |
|
| 306 |
+ |
|
| 307 |
+ // 회원별 등급 히스토리 인서트 |
|
| 308 |
+ insertMberGrdHist(mberGrdVO); |
|
| 309 |
+ } |
|
| 310 |
+ } |
|
| 311 |
+ } |
|
| 312 |
+ } |
|
| 313 |
+ } |
|
| 314 |
+ } |
|
| 315 |
+ catch (Exception e) {
|
|
| 316 |
+ // Slack 메시지 발송(단순본문) |
|
| 317 |
+ String msg = "[문자온] " + mberGrdVO.getMberId() + "님 결제중 회원등급 저장 오류 알림 => 개발팀에게 문의해주세요."; |
|
| 318 |
+ mjonCommon.sendSimpleSlackMsg(msg); |
|
| 319 |
+ |
|
| 320 |
+ System.out.println("#############################################################");
|
|
| 321 |
+ System.out.println(mberGrdVO.getMberId() + "님 결제중 회원등급 저장 오류"); |
|
| 322 |
+ } |
|
| 323 |
+ |
|
| 309 | 324 |
} |
| 310 | 325 |
|
| 311 | 326 |
// 회원별 등급제 대상여부 |
--- src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
... | ... | @@ -833,6 +833,7 @@ |
| 833 | 833 |
, AMT |
| 834 | 834 |
, TOT_AMT |
| 835 | 835 |
, GRD_DATE |
| 836 |
+ , MOID |
|
| 836 | 837 |
, REG_ID |
| 837 | 838 |
, REG_DATE |
| 838 | 839 |
, EDIT_ID |
... | ... | @@ -850,6 +851,7 @@ |
| 850 | 851 |
, #amt# |
| 851 | 852 |
, #totAmt# |
| 852 | 853 |
, #grdNewDate# |
| 854 |
+ , #moid# |
|
| 853 | 855 |
, #regId# |
| 854 | 856 |
, NOW() |
| 855 | 857 |
, #editId# |
... | ... | @@ -858,6 +860,7 @@ |
| 858 | 860 |
</insert> |
| 859 | 861 |
|
| 860 | 862 |
<!-- 회원별 등급 히스토리 목록 => 등급제 시행일이후 목록(사용자화면용) --> |
| 863 |
+ <!-- AND A.GRD_DATE >= (SELECT S.GRD_DATE FROM MJ_MBER_GRD_INFO S WHERE S.MBER_ID = #mberId#) --> |
|
| 861 | 864 |
<select id="mberGrdDAO.selectMberGrdHistByGrdDateList" parameterClass="mberGrdVO" resultClass="mberGrdVO"> |
| 862 | 865 |
SELECT |
| 863 | 866 |
COUNT(MBER_ID) OVER() AS totCnt |
... | ... | @@ -872,6 +875,7 @@ |
| 872 | 875 |
, A.AMT AS amt |
| 873 | 876 |
, A.TOT_AMT AS totAmt |
| 874 | 877 |
, A.GRD_DATE AS grdDate |
| 878 |
+ , A.MOID AS moid |
|
| 875 | 879 |
, A.REG_ID AS regId |
| 876 | 880 |
, DATE_FORMAT(A.REG_DATE, '%Y-%m-%d %H:%i') AS regDate |
| 877 | 881 |
, A.EDIT_ID AS editId |
... | ... | @@ -881,9 +885,8 @@ |
| 881 | 885 |
ON A.GRD_SET_NO = B.GRD_SET_NO |
| 882 | 886 |
WHERE 1=1 |
| 883 | 887 |
AND A.MBER_ID = #mberId# |
| 888 |
+ AND IFNULL(TRIM(A.MOID), '') != '' |
|
| 884 | 889 |
AND A.TOT_AMT > 0 |
| 885 |
- AND A.GRD_DATE >= (SELECT S.GRD_DATE FROM MJ_MBER_GRD_INFO S WHERE S.MBER_ID = #mberId#) |
|
| 886 |
- GROUP BY A.TOT_AMT, A.AMT |
|
| 887 | 890 |
ORDER BY A.REG_DATE DESC |
| 888 | 891 |
LIMIT #recordCountPerPage# OFFSET #firstIndex# |
| 889 | 892 |
</select> |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?