등급제 요금안내 기능추가
@63e3547633228bdf98a1accb36717a24f728a980
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
... | ... | @@ -83,6 +83,8 @@ |
| 83 | 83 |
import itn.let.mjo.tax.service.TaxService; |
| 84 | 84 |
import itn.let.mjo.tax.service.TaxVO; |
| 85 | 85 |
import itn.let.schdlr.service.SchdlrManageService; |
| 86 |
+import itn.let.sym.grd.service.MberGrdService; |
|
| 87 |
+import itn.let.sym.grd.service.MberGrdVO; |
|
| 86 | 88 |
import itn.let.sym.site.service.EgovSiteManagerService; |
| 87 | 89 |
import itn.let.sym.site.service.JoinSettingVO; |
| 88 | 90 |
import itn.let.uat.uia.service.AuthCertVO; |
... | ... | @@ -157,6 +159,9 @@ |
| 157 | 159 |
/** 사이트 설정 */ |
| 158 | 160 |
@Resource(name = "egovSiteManagerService") |
| 159 | 161 |
EgovSiteManagerService egovSiteManagerService; |
| 162 |
+ |
|
| 163 |
+ @Resource(name = "mberGrdService") |
|
| 164 |
+ MberGrdService mberGrdService; |
|
| 160 | 165 |
|
| 161 | 166 |
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
|
| 162 | 167 |
private String[][] sendPayExcelValue ={
|
... | ... | @@ -1627,6 +1632,10 @@ |
| 1627 | 1632 |
} |
| 1628 | 1633 |
model.addAttribute("tabType", tabType);
|
| 1629 | 1634 |
|
| 1635 |
+ MberGrdVO mberGrdVO = new MberGrdVO(); |
|
| 1636 |
+ List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO); |
|
| 1637 |
+ model.addAttribute("mberGrdSettingList", mberGrdSettingList);
|
|
| 1638 |
+ |
|
| 1630 | 1639 |
return "/web/pay/PayGuide"; |
| 1631 | 1640 |
} |
| 1632 | 1641 |
|
--- src/main/java/itn/let/sym/grd/web/MberGrdController.java
+++ src/main/java/itn/let/sym/grd/web/MberGrdController.java
... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 |
import javax.annotation.Resource; |
| 6 | 6 |
import javax.servlet.http.HttpServletRequest; |
| 7 | 7 |
|
| 8 |
+import org.apache.commons.lang.StringUtils; |
|
| 8 | 9 |
import org.springframework.stereotype.Controller; |
| 9 | 10 |
import org.springframework.ui.ModelMap; |
| 10 | 11 |
import org.springframework.web.bind.annotation.ModelAttribute; |
... | ... | @@ -77,8 +78,36 @@ |
| 77 | 78 |
return "/web/grd/MberGrdHistListAjax"; |
| 78 | 79 |
} |
| 79 | 80 |
|
| 81 |
+ // 등급제 시행 ON/OFF 체크 |
|
| 82 |
+ @RequestMapping(value = "/web/grd/mberSettDetailAjax.do") |
|
| 83 |
+ public ModelAndView mberSettingDetailAjax( |
|
| 84 |
+ @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
|
|
| 85 |
+ |
|
| 86 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 87 |
+ modelAndView.setViewName("jsonView");
|
|
| 88 |
+ |
|
| 89 |
+ boolean isSuccess = false; |
|
| 90 |
+ String msg = ""; |
|
| 91 |
+ |
|
| 92 |
+ try{
|
|
| 93 |
+ MberGrdVO mberGrdVO1 = new MberGrdVO(); |
|
| 94 |
+ mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); |
|
| 95 |
+ if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
|
|
| 96 |
+ isSuccess = true; |
|
| 97 |
+ } |
|
| 98 |
+ } |
|
| 99 |
+ catch(Exception e) {
|
|
| 100 |
+ msg = e.getMessage(); |
|
| 101 |
+ } |
|
| 102 |
+ |
|
| 103 |
+ modelAndView.addObject("isSuccess", isSuccess);
|
|
| 104 |
+ modelAndView.addObject("msg", msg);
|
|
| 105 |
+ |
|
| 106 |
+ return modelAndView; |
|
| 107 |
+ } |
|
| 108 |
+ |
|
| 80 | 109 |
// 등급제 적용여부 체크 |
| 81 |
- @RequestMapping(value = "/web/member/grd/mberGrdChkAjax.do") |
|
| 110 |
+ @RequestMapping(value = "/web/grd/mberGrdChkAjax.do") |
|
| 82 | 111 |
public ModelAndView mberGrdChkAjax( |
| 83 | 112 |
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
|
| 84 | 113 |
|
... | ... | @@ -88,25 +117,28 @@ |
| 88 | 117 |
// 로그인VO에서 사용자 정보 가져오기 |
| 89 | 118 |
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
| 90 | 119 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
| 91 |
- mberGrdVO.setMberId(userId); |
|
| 120 |
+ |
|
| 92 | 121 |
|
| 93 | 122 |
boolean isSuccess = false; |
| 94 | 123 |
String msg = ""; |
| 95 | 124 |
MberGrdVO rtnMberGrdVO = new MberGrdVO(); |
| 96 | 125 |
|
| 97 | 126 |
try{
|
| 98 |
- // 회원별 이벤트 진행여부 |
|
| 99 |
- int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); |
|
| 100 |
- if (mberEventPrgCnt == 0) {
|
|
| 101 |
- rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); |
|
| 102 |
- if (null != rtnMberGrdVO) {
|
|
| 103 |
- isSuccess = true; |
|
| 104 |
- } |
|
| 105 |
- else {
|
|
| 106 |
- msg = "종료"; |
|
| 107 |
- } |
|
| 127 |
+ if (StringUtils.isNotEmpty(userId)) {
|
|
| 128 |
+ mberGrdVO.setMberId(userId); |
|
| 129 |
+ |
|
| 130 |
+ // 회원별 이벤트 진행여부 |
|
| 131 |
+ int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); |
|
| 132 |
+ if (mberEventPrgCnt == 0) {
|
|
| 133 |
+ rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); |
|
| 134 |
+ if (null != rtnMberGrdVO) {
|
|
| 135 |
+ isSuccess = true; |
|
| 136 |
+ } |
|
| 137 |
+ else {
|
|
| 138 |
+ msg = "종료"; |
|
| 139 |
+ } |
|
| 140 |
+ } |
|
| 108 | 141 |
} |
| 109 |
- |
|
| 110 | 142 |
} |
| 111 | 143 |
catch(Exception e) {
|
| 112 | 144 |
msg = e.getMessage(); |
... | ... | @@ -117,6 +149,6 @@ |
| 117 | 149 |
modelAndView.addObject("msg", msg);
|
| 118 | 150 |
|
| 119 | 151 |
return modelAndView; |
| 120 |
- } |
|
| 152 |
+ } |
|
| 121 | 153 |
|
| 122 | 154 |
} |
--- src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
... | ... | @@ -181,6 +181,7 @@ |
| 181 | 181 |
|
| 182 | 182 |
<!-- 회원 등급제 대상여부 정보(사용자화면용) --> |
| 183 | 183 |
<select id="mberGrdDAO.selectMberGrdInfo" parameterClass="String" resultClass="mberGrdVO"> |
| 184 |
+ <![CDATA[ |
|
| 184 | 185 |
SELECT |
| 185 | 186 |
M.mberId |
| 186 | 187 |
, blineCode |
... | ... | @@ -239,6 +240,8 @@ |
| 239 | 240 |
ON G.GRD_SET_NO = S.GRD_SET_NO |
| 240 | 241 |
JOIN MJ_MBER_SETTING B |
| 241 | 242 |
WHERE 1=1 |
| 243 |
+ AND B.GRD_NOTI = 'Y' |
|
| 244 |
+ AND DATE_FORMAT(B.GRD_DATE, '%Y-%m-%d') <= DATE_FORMAT(NOW(), '%Y-%m-%d') |
|
| 242 | 245 |
AND G.GRD_STATUS = 'Y' |
| 243 | 246 |
AND NOW() BETWEEN G.GRD_START_DATE AND G.GRD_END_DATE |
| 244 | 247 |
AND G.MBER_ID = #mberId# |
... | ... | @@ -246,6 +249,7 @@ |
| 246 | 249 |
WHERE M.isSalePrice = 'N' |
| 247 | 250 |
OR M.blineCode != 'N' |
| 248 | 251 |
LIMIT 1 |
| 252 |
+ ]]> |
|
| 249 | 253 |
</select> |
| 250 | 254 |
|
| 251 | 255 |
<!-- 회원별 등급 누적결제액 상세 --> |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp
... | ... | @@ -65,6 +65,12 @@ |
| 65 | 65 |
$("#btnEstimate").trigger("click");
|
| 66 | 66 |
} |
| 67 | 67 |
|
| 68 |
+ //등급제 시행 ON/OFF 체크 |
|
| 69 |
+ //getMberSettingDetail(); |
|
| 70 |
+ |
|
| 71 |
+ // 등급제 대상 여부 |
|
| 72 |
+ //getMberGrdChk(); |
|
| 73 |
+ |
|
| 68 | 74 |
}); |
| 69 | 75 |
|
| 70 | 76 |
//품목정보 추가 |
... | ... | @@ -318,21 +324,70 @@ |
| 318 | 324 |
} |
| 319 | 325 |
|
| 320 | 326 |
|
| 321 |
- //체크박스 전체선택/해제 |
|
| 322 |
- $(document).on("click", "#chkAll", function(e) {
|
|
| 323 |
- var isChecked = $(this).is(":checked");
|
|
| 324 |
- $("input[name=chkEach]:checkbox").prop("checked", isChecked);
|
|
| 325 |
- }); |
|
| 327 |
+//체크박스 전체선택/해제 |
|
| 328 |
+$(document).on("click", "#chkAll", function(e) {
|
|
| 329 |
+ var isChecked = $(this).is(":checked");
|
|
| 330 |
+ $("input[name=chkEach]:checkbox").prop("checked", isChecked);
|
|
| 331 |
+}); |
|
| 326 | 332 |
|
| 327 |
- /* 윈도우팝업 열기 */ |
|
| 328 |
- function infoPop(pageUrl){
|
|
| 329 |
- document.infoPopForm.pageType.value = pageUrl; |
|
| 330 |
- document.infoPopForm.action = "/web/pop/infoPop.do"; |
|
| 331 |
- document.infoPopForm.method = "post"; |
|
| 332 |
- window.open("about:blank", 'infoPop', 'width=790, height=280, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 333 |
- document.infoPopForm.target = "infoPop"; |
|
| 334 |
- document.infoPopForm.submit(); |
|
| 335 |
- } |
|
| 333 |
+/* 윈도우팝업 열기 */ |
|
| 334 |
+function infoPop(pageUrl){
|
|
| 335 |
+ document.infoPopForm.pageType.value = pageUrl; |
|
| 336 |
+ document.infoPopForm.action = "/web/pop/infoPop.do"; |
|
| 337 |
+ document.infoPopForm.method = "post"; |
|
| 338 |
+ window.open("about:blank", 'infoPop', 'width=790, height=280, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 339 |
+ document.infoPopForm.target = "infoPop"; |
|
| 340 |
+ document.infoPopForm.submit(); |
|
| 341 |
+} |
|
| 342 |
+ |
|
| 343 |
+ |
|
| 344 |
+//등급제 시행 ON/OFF 체크 |
|
| 345 |
+function getMberSettingDetail() {
|
|
| 346 |
+ $.ajax({
|
|
| 347 |
+ type: "POST", |
|
| 348 |
+ url: "/web/grd/mberSettDetailAjax.do", |
|
| 349 |
+ data: {},
|
|
| 350 |
+ dataType:'json', |
|
| 351 |
+ async: false, |
|
| 352 |
+ success: function (data) {
|
|
| 353 |
+ if (data.isSuccess) {
|
|
| 354 |
+ // 문자(등급별 요금 안내) |
|
| 355 |
+ $("#mberGrdSettingArea").show();
|
|
| 356 |
+ } |
|
| 357 |
+ else {
|
|
| 358 |
+ //alert("Msg : " + data.msg);
|
|
| 359 |
+ } |
|
| 360 |
+ }, |
|
| 361 |
+ error: function (e) {
|
|
| 362 |
+ //alert("ERROR : " + JSON.stringify(e));
|
|
| 363 |
+ } |
|
| 364 |
+ }); |
|
| 365 |
+} |
|
| 366 |
+ |
|
| 367 |
+// 등급제 대상 여부 |
|
| 368 |
+function getMberGrdChk() {
|
|
| 369 |
+ $.ajax({
|
|
| 370 |
+ type: "POST", |
|
| 371 |
+ url: "/web/grd/mberGrdChkAjax.do", |
|
| 372 |
+ data: {},
|
|
| 373 |
+ dataType:'json', |
|
| 374 |
+ async: false, |
|
| 375 |
+ success: function (data) {
|
|
| 376 |
+ if (data.isSuccess) {
|
|
| 377 |
+ // 등급제 누적결제액 세부내역 |
|
| 378 |
+ $("#grdShowArea").html("(등급 : " + data.rtnMberGrdVO.grdSetNm + ")");
|
|
| 379 |
+ $("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
|
|
| 380 |
+ } |
|
| 381 |
+ else {
|
|
| 382 |
+ //alert("Msg : " + data.msg);
|
|
| 383 |
+ } |
|
| 384 |
+ }, |
|
| 385 |
+ error: function (e) {
|
|
| 386 |
+ //alert("ERROR : " + JSON.stringify(e));
|
|
| 387 |
+ } |
|
| 388 |
+ }); |
|
| 389 |
+} |
|
| 390 |
+ |
|
| 336 | 391 |
</script> |
| 337 | 392 |
|
| 338 | 393 |
<form name="popForm" method="post"> |
... | ... | @@ -376,7 +431,7 @@ |
| 376 | 431 |
<div class="fee_cont current" id="tab1_1"> |
| 377 | 432 |
<div> |
| 378 | 433 |
<p class="tType1_title"> |
| 379 |
- <img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자 |
|
| 434 |
+ <img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span class="level_first" id="grdShowArea"></span> |
|
| 380 | 435 |
</p> |
| 381 | 436 |
<table class="tType2"> |
| 382 | 437 |
<caption></caption> |
... | ... | @@ -412,6 +467,57 @@ |
| 412 | 467 |
</table> |
| 413 | 468 |
<span class="reqTxt4">* 텍스트 용량(Byte)에 대한 안내 : 한글2Byte, 영문·숫자 1Byte를 차지.</span> |
| 414 | 469 |
|
| 470 |
+ <!--문자_등급별 요금 안내 추가 시작--> |
|
| 471 |
+ <div id="mberGrdSettingArea" style="display: none;"> |
|
| 472 |
+ <p class="tType1_title level"><img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span>(등급별 요금 안내)</span></p> |
|
| 473 |
+ <table class="tType2 tType2_level"> |
|
| 474 |
+ <caption></caption> |
|
| 475 |
+ <colgroup> |
|
| 476 |
+ <col style="width: 13%;"> |
|
| 477 |
+ <col style="width: auto;"> |
|
| 478 |
+ <col style="width: 11%;"> |
|
| 479 |
+ <col style="width: 11%;"> |
|
| 480 |
+ <col style="width: 11%;"> |
|
| 481 |
+ <col style="width: 11%;"> |
|
| 482 |
+ <col style="width: 11%;"> |
|
| 483 |
+ </colgroup> |
|
| 484 |
+ <thead> |
|
| 485 |
+ <tr> |
|
| 486 |
+ <th>등급</th> |
|
| 487 |
+ <th class="th_second">누적결제액<span id="levelSubTitle"></span></th> |
|
| 488 |
+ <th>단문</th> |
|
| 489 |
+ <th>장문</th> |
|
| 490 |
+ <th>그림(1장)</th> |
|
| 491 |
+ <th>그림(2장)</th> |
|
| 492 |
+ <th>그림(3장)</th> |
|
| 493 |
+ </tr> |
|
| 494 |
+ </thead> |
|
| 495 |
+ <tbody> |
|
| 496 |
+ <c:forEach var="result" items="${mberGrdSettingList}" varStatus="status">
|
|
| 497 |
+ <tr class="level_table"> |
|
| 498 |
+ <th><c:out value="${result.grdSetNm}"/></th>
|
|
| 499 |
+ <td class="level_price"><c:out value="${result.stdAmtComma}"/></td>
|
|
| 500 |
+ <td><c:out value="${result.shortPrice}"/></td>
|
|
| 501 |
+ <td><c:out value="${result.longPrice}"/></td>
|
|
| 502 |
+ <td><c:out value="${result.picturePrice}"/></td>
|
|
| 503 |
+ <td><c:out value="${result.picture2Price}"/></td>
|
|
| 504 |
+ <td><c:out value="${result.picture3Price}"/></td>
|
|
| 505 |
+ </tr> |
|
| 506 |
+ </c:forEach> |
|
| 507 |
+ </tbody> |
|
| 508 |
+ </table> |
|
| 509 |
+ <span class="reqTxt4"> |
|
| 510 |
+ * 등급별 요금제는 당사의 정책 및 운영의 필요상 수정, 중단 또는 변경될 수 있습니다. <br> |
|
| 511 |
+ * 누적결제액은 등급별 요금제 적용일로부터 적립된 결제금액을 말하며, 누적결제액에 따라 등급은 자동으로 적용됩니다. <br> |
|
| 512 |
+ * "첫결제 이벤트" 등 이벤트 결제금액은 등급별 요금제 누적결제액에서 제외됩니다. <br> |
|
| 513 |
+ </span> |
|
| 514 |
+ <p class="reqTxt4 reqTxt4_last"> |
|
| 515 |
+ * 문자피싱, 스미싱, 주식, 도박, 로또, 스팸, 사기, 협박, 범죄, 유사투자, 유사수신 등을 목적으로 하거나 교사 또는 방조하는 내용의 정보, 발신번호 조작 등으로 인지되는 문자에 대해서는 사전 또는 즉시 발송을 차단하고 |
|
| 516 |
+ 이용을 정지시킬 수 있으며, 이에 대한 어떠한 환불이나 보상을 실시하지 않습니다. 또한, 상기 문자를 발송한 회원에 대해서는 그 즉시 등급별 요금제 혜택을 취소합니다. |
|
| 517 |
+ </p> |
|
| 518 |
+ </div> |
|
| 519 |
+ <!--문자_등급별 요금 안내 추가 끝--> |
|
| 520 |
+ |
|
| 415 | 521 |
<p class="tType1_title"><img src="/publish/images/content/icon_fee2.png" alt="알림톡 아이콘 이미지"> 알림톡</p> |
| 416 | 522 |
<table class="tType2"> |
| 417 | 523 |
<colgroup> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
... | ... | @@ -111,7 +111,7 @@ |
| 111 | 111 |
function getMberGrdChk() {
|
| 112 | 112 |
$.ajax({
|
| 113 | 113 |
type: "POST", |
| 114 |
- url: "/web/member/grd/mberGrdChkAjax.do", |
|
| 114 |
+ url: "/web/grd/mberGrdChkAjax.do", |
|
| 115 | 115 |
data: {},
|
| 116 | 116 |
dataType:'json', |
| 117 | 117 |
async: false, |
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?