itn 2023-07-13
등급제 요금안내 기능추가
@63e3547633228bdf98a1accb36717a24f728a980
src/main/java/itn/let/mjo/pay/web/MjonPayController.java
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
@@ -83,6 +83,8 @@
 import itn.let.mjo.tax.service.TaxService;
 import itn.let.mjo.tax.service.TaxVO;
 import itn.let.schdlr.service.SchdlrManageService;
+import itn.let.sym.grd.service.MberGrdService;
+import itn.let.sym.grd.service.MberGrdVO;
 import itn.let.sym.site.service.EgovSiteManagerService;
 import itn.let.sym.site.service.JoinSettingVO;
 import itn.let.uat.uia.service.AuthCertVO;
@@ -157,6 +159,9 @@
 	/** 사이트 설정 */ 
 	@Resource(name = "egovSiteManagerService")
 	EgovSiteManagerService egovSiteManagerService;	
+	
+	@Resource(name = "mberGrdService")
+	MberGrdService mberGrdService;	
 	
 	//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
 	private String[][] sendPayExcelValue ={
@@ -1627,6 +1632,10 @@
    		}
     	model.addAttribute("tabType", tabType);
     	
+    	MberGrdVO mberGrdVO = new MberGrdVO();
+    	List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO);
+    	model.addAttribute("mberGrdSettingList", mberGrdSettingList);
+    	
 		return "/web/pay/PayGuide";
 	}
     
src/main/java/itn/let/sym/grd/web/MberGrdController.java
--- src/main/java/itn/let/sym/grd/web/MberGrdController.java
+++ src/main/java/itn/let/sym/grd/web/MberGrdController.java
@@ -5,6 +5,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.ModelAttribute;
@@ -77,8 +78,36 @@
     	return "/web/grd/MberGrdHistListAjax";
     }	
 	
+	// 등급제 시행 ON/OFF 체크
+	@RequestMapping(value = "/web/grd/mberSettDetailAjax.do")
+	public ModelAndView mberSettingDetailAjax(
+			@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
+
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.setViewName("jsonView");
+   	
+		boolean isSuccess = false;
+		String msg = "";
+   		
+        try{
+        	MberGrdVO mberGrdVO1 = new MberGrdVO();
+			mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO);
+			if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
+       			isSuccess = true;			
+			}
+		}
+		catch(Exception e) {
+			msg = e.getMessage();
+		}		
+
+		modelAndView.addObject("isSuccess", isSuccess);
+		modelAndView.addObject("msg", msg);
+		
+		return modelAndView;
+	}		
+	
 	// 등급제 적용여부 체크
-	@RequestMapping(value = "/web/member/grd/mberGrdChkAjax.do")
+	@RequestMapping(value = "/web/grd/mberGrdChkAjax.do")
 	public ModelAndView mberGrdChkAjax(
 			@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
 
@@ -88,25 +117,28 @@
     	// 로그인VO에서  사용자 정보 가져오기
     	LoginVO	loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
     	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
-    	mberGrdVO.setMberId(userId);
+
     	
 		boolean isSuccess = false;
 		String msg = "";
    		MberGrdVO rtnMberGrdVO = new MberGrdVO();
    		
         try{
-        	// 회원별 이벤트 진행여부
-        	int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId());
-        	if (mberEventPrgCnt == 0) {
-           		rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId());
-           		if (null != rtnMberGrdVO) {
-           			isSuccess = true;
-           		}
-           		else {
-        			msg = "종료";       			
-           		}
+        	if (StringUtils.isNotEmpty(userId)) {
+	        	mberGrdVO.setMberId(userId);
+	        	
+	        	// 회원별 이벤트 진행여부
+	        	int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId());
+	        	if (mberEventPrgCnt == 0) {
+	           		rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId());
+	           		if (null != rtnMberGrdVO) {
+	           			isSuccess = true;
+	           		}
+	           		else {
+	        			msg = "종료";       			
+	           		}
+	        	}
         	}
-        	
 		}
 		catch(Exception e) {
 			msg = e.getMessage();
@@ -117,6 +149,6 @@
 		modelAndView.addObject("msg", msg);
 		
 		return modelAndView;
-	}		
+	}			
 	
 }
src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
--- 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 @@
 
 	<!-- 회원 등급제 대상여부 정보(사용자화면용) -->
 	<select id="mberGrdDAO.selectMberGrdInfo" parameterClass="String" resultClass="mberGrdVO">
+	<![CDATA[
 		SELECT
 			M.mberId
 			, blineCode
@@ -239,6 +240,8 @@
 				ON G.GRD_SET_NO = S.GRD_SET_NO					
 			JOIN MJ_MBER_SETTING B
 			WHERE 1=1
+				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'
 				AND NOW() BETWEEN G.GRD_START_DATE AND G.GRD_END_DATE				
 				AND G.MBER_ID = #mberId#
@@ -246,6 +249,7 @@
 		WHERE M.isSalePrice = 'N'
 		OR M.blineCode != 'N'
 		LIMIT 1
+	]]>
 	</select>
 	
 	<!-- 회원별 등급 누적결제액 상세 -->
src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp
@@ -65,6 +65,12 @@
 		$("#btnEstimate").trigger("click");
 	}
 	
+	//등급제 시행 ON/OFF 체크
+	//getMberSettingDetail();
+		
+	// 등급제 대상 여부
+	//getMberGrdChk();
+	
 });
 
 //품목정보 추가
@@ -318,21 +324,70 @@
 }
 
 
-	//체크박스 전체선택/해제
-	$(document).on("click", "#chkAll", function(e) {
-		var isChecked = $(this).is(":checked");
-		$("input[name=chkEach]:checkbox").prop("checked", isChecked);
-	});	
+//체크박스 전체선택/해제
+$(document).on("click", "#chkAll", function(e) {
+	var isChecked = $(this).is(":checked");
+	$("input[name=chkEach]:checkbox").prop("checked", isChecked);
+});	
 
-	/* 윈도우팝업 열기 */
-	function infoPop(pageUrl){
-		document.infoPopForm.pageType.value = pageUrl;
-		document.infoPopForm.action = "/web/pop/infoPop.do";
-		document.infoPopForm.method = "post"; 
-		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');
-		document.infoPopForm.target = "infoPop";
-		document.infoPopForm.submit();
-	}
+/* 윈도우팝업 열기 */
+function infoPop(pageUrl){
+	document.infoPopForm.pageType.value = pageUrl;
+	document.infoPopForm.action = "/web/pop/infoPop.do";
+	document.infoPopForm.method = "post"; 
+	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');
+	document.infoPopForm.target = "infoPop";
+	document.infoPopForm.submit();
+}
+
+
+//등급제 시행 ON/OFF 체크
+function getMberSettingDetail() {
+	$.ajax({
+        type: "POST",
+        url: "/web/grd/mberSettDetailAjax.do",
+        data: {},
+        dataType:'json',
+        async: false,
+        success: function (data) {
+			if (data.isSuccess) {
+				// 문자(등급별 요금 안내)
+				$("#mberGrdSettingArea").show();
+			} 
+			else {
+				//alert("Msg : " + data.msg);
+			}
+		},
+        error: function (e) { 
+        	//alert("ERROR : " + JSON.stringify(e)); 
+        }
+    });				
+}		
+
+// 등급제 대상 여부
+function getMberGrdChk() {
+	$.ajax({
+        type: "POST",
+        url: "/web/grd/mberGrdChkAjax.do",
+        data: {},
+        dataType:'json',
+        async: false,
+        success: function (data) {
+			if (data.isSuccess) {
+				// 등급제 누적결제액 세부내역
+				$("#grdShowArea").html("(등급 : " + data.rtnMberGrdVO.grdSetNm + ")");
+				$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");				
+			} 
+			else {
+				//alert("Msg : " + data.msg);
+			}
+		},
+        error: function (e) { 
+        	//alert("ERROR : " + JSON.stringify(e)); 
+        }
+    });				
+}		
+
 </script>
 
 <form name="popForm" method="post">
@@ -376,7 +431,7 @@
 				<div class="fee_cont current" id="tab1_1">
 					<div>
 						<p class="tType1_title">
-							<img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자
+							<img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span class="level_first" id="grdShowArea"></span>
 						</p>
 						<table class="tType2">
 							<caption></caption>
@@ -412,6 +467,57 @@
 						</table>
 						<span class="reqTxt4">* 텍스트 용량(Byte)에 대한 안내 : 한글2Byte, 영문·숫자 1Byte를 차지.</span>
 					
+						<!--문자_등급별 요금 안내 추가 시작-->
+						<div id="mberGrdSettingArea" style="display: none;">
+							<p class="tType1_title level"><img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span>(등급별 요금 안내)</span></p>
+							<table class="tType2 tType2_level">
+								<caption></caption>
+								<colgroup>
+									<col style="width: 13%;">
+									<col style="width: auto;">
+									<col style="width: 11%;">
+									<col style="width: 11%;">
+									<col style="width: 11%;">
+									<col style="width: 11%;">
+									<col style="width: 11%;">
+								</colgroup>
+								<thead>
+									<tr>
+										<th>등급</th>
+										<th class="th_second">누적결제액<span id="levelSubTitle"></span></th>
+										<th>단문</th>
+										<th>장문</th>
+										<th>그림(1장)</th>
+										<th>그림(2장)</th>
+										<th>그림(3장)</th>
+									</tr>
+								</thead>
+								<tbody>
+				    				<c:forEach var="result" items="${mberGrdSettingList}" varStatus="status">
+									<tr class="level_table">
+										<th><c:out value="${result.grdSetNm}"/></th>
+										<td class="level_price"><c:out value="${result.stdAmtComma}"/></td>
+										<td><c:out value="${result.shortPrice}"/></td>
+										<td><c:out value="${result.longPrice}"/></td>
+										<td><c:out value="${result.picturePrice}"/></td>
+										<td><c:out value="${result.picture2Price}"/></td>
+										<td><c:out value="${result.picture3Price}"/></td>
+									</tr>
+									</c:forEach>													
+								</tbody>
+							</table>
+							<span class="reqTxt4">
+								* 등급별 요금제는 당사의 정책 및 운영의 필요상 수정, 중단 또는 변경될 수 있습니다. <br>
+								* 누적결제액은 등급별 요금제 적용일로부터 적립된 결제금액을 말하며, 누적결제액에 따라 등급은 자동으로 적용됩니다. <br>
+								* "첫결제 이벤트" 등 이벤트 결제금액은 등급별 요금제 누적결제액에서 제외됩니다. <br>
+							</span> 
+							<p class="reqTxt4 reqTxt4_last">
+								* 문자피싱, 스미싱, 주식, 도박, 로또, 스팸, 사기, 협박, 범죄, 유사투자, 유사수신 등을 목적으로 하거나 교사 또는 방조하는 내용의 정보, 발신번호 조작 등으로 인지되는 문자에 대해서는 사전 또는 즉시 발송을 차단하고
+   								이용을 정지시킬 수 있으며, 이에 대한 어떠한 환불이나 보상을 실시하지 않습니다. 또한, 상기 문자를 발송한 회원에 대해서는 그 즉시 등급별 요금제 혜택을 취소합니다. 
+							</p>
+						</div>
+						<!--문자_등급별 요금 안내 추가 끝-->					
+					
 						<p class="tType1_title"><img src="/publish/images/content/icon_fee2.png" alt="알림톡 아이콘 이미지"> 알림톡</p>
 						<table class="tType2">
 							<colgroup>
src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
@@ -111,7 +111,7 @@
 function getMberGrdChk() {
 	$.ajax({
         type: "POST",
-        url: "/web/member/grd/mberGrdChkAjax.do",
+        url: "/web/grd/mberGrdChkAjax.do",
         data: {},
         dataType:'json',
         async: false,
Add a comment
List