jsshin 5 лет назад
Родитель
Сommit
ca45b922cb

+ 67 - 34
src/main/webapp/WEB-INF/views/web/planning/PlanningCustGradeBenefitFormWeb.html

@@ -97,16 +97,19 @@
 									</div>
 								</div>
 								<div class="benefit_txt">
-									<p id="etcGradeDp">
+									<p id="etcGrade">
 										<span id="ordSpan">	구매 건수 <strong id="ordCnt" class="c_primary" >0회</strong> </span>
 										<span id="realOrdAmtSpan">, 구매 금액 <strong id="realOrdAmt" class="c_primary">0원 </span>
 										</strong> 더 구매하시면 <strong>
 										<span id="nextGrde" class="c_black"></span>로 등급UP!</strong>
 									</p> <!-- 등급 상승까지 남은 정보 안내 -->
-									<p id="vipGradeDp" style="display: none;">
+									<p id="sameVipGrade" style="display: none;">
 										<strong>등급 유지 조건 달성!</strong> 다음달에도
 										<strong class="c_primary"><span>VIP</span> 등급 혜택</strong>을 받으실 수 있습니다.
 									</p>
+									<p id="vipGrade" style="display: none;">
+										<strong class="c_primary"><span>VIP</span> 등급 혜택</strong>을 받으실 수 있습니다.
+									</p>
 								</div>
 							</div>
 							<!-- //회원 등급 progress바 -->
@@ -265,69 +268,99 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
  	let exptCustGrdeMap = [[${exptCustGrdeMap}]]
-	$(document).ready(function() {
-
-		fnInit();
-
-	});
+	let custGradeNm = [[${customerInfo.custGradeNm}]];
 
  	var fnInit = function () {
-		let expctCustGrade = exptCustGrdeMap.expctCustGrade;
-		let custGradePolicy = exptCustGrdeMap.custGradePolicy;
-		let nextCustGrade;
+		let expctCustGrade = exptCustGrdeMap.expctCustGrade;	// 예상등급
 
+		//expctCustGrade.custGradeNo 10:VIP, 20: GOLD, 30:SILVER, 40:BRONZE, 50:WELCOME
 
+		// 예정등급이 VIP가 아닌경우
+		let nextCustGradePolicy;		// 다음등급정책
 		if (Number(expctCustGrade.custGradeNo) > 10) {
-
+			let nextGradeNo = Number(expctCustGrade.custGradeNo)-10;     // 다음등급번호
+			nextCustGradePolicy = fnGetNextGradePolicyInfo(nextGradeNo);
+			fnNextGradeCondition(nextCustGradePolicy, expctCustGrade);
+		} else {
+			fnDisplayVipText(expctCustGrade);
 		}
 
+	};
 
+ 	// 다음 등급정책
+ 	var fnGetNextGradePolicyInfo = function (nextGradeNo) {
+		let custGradePolicy = exptCustGrdeMap.custGradePolicy;	// 등급별정책
 		$(custGradePolicy).each(function(idx, item) {
-			if (Number(item.gradeCdNo) === (Number(expctCustGrade.gradeCdNo)-10)) {
-				nextCustGrade = item;
+			if (Number(item.gradeCdNo) === nextGradeNo ) {
+				return nextCustGrade = item;
 			}
 		});
+	}
 
-		let buyAmt = 0;
-		if (nextCustGrade.minBuyAmt > expctCustGrade.sumRealOrdAmt) {
-			buyAmt = nextCustGrade.minBuyAmt - expctCustGrade.sumRealOrdAmt;
-		} else {
-			buyAmt = nextCustGrade.minBuyAmt;
-		}
-
-		let buyCnt = 0;
-		if (nextCustGrade.minBuyCnt > expctCustGrade.ordCnt) {
-			buyCnt = nextCustGrade.minBuyCnt -  expctCustGrade.ordCnt;
-		} else {
-			buyCnt = nextCustGrade.minBuyCnt;
-		}
-
+	// 다음등급 조건 알림
+	var fnNextGradeCondition = function (nextCustGradePolicy, expctCustGrade) {
+		let $etcGrade = $('#etcGrade');
+		let $sameVipGrade = $('#sameVipGrade');
+		let $vipGrade = $('#vipGrade');
 		let $ordCnt = $('#ordCnt');
 		let $ordSpan = $('#ordSpan');
 		let $realOrdAmt = $('#realOrdAmt');
 		let $realOrdAmtSpan = $('#realOrdAmtSpan');
 		let $nextGrde = $('#nextGrde');
 
-		if (buyAmt > 0) {
+		let remnantBuyAmt = 0;
+		if (nextCustGradePolicy.minBuyAmt > expctCustGrade.sumRealOrdAmt) {
+			remnantBuyAmt = nextCustGradePolicy.minBuyAmt - expctCustGrade.sumRealOrdAmt;
+		}
+
+		let remnantBuyCnt = 0;
+		if (nextCustGradePolicy.minBuyCnt > expctCustGrade.ordCnt) {
+			remnantBuyCnt = nextCustGradePolicy.minBuyCnt -  expctCustGrade.ordCnt;
+		}
+
+		$etcGrade.show();
+		$sameVipGrade.hide();
+		$vipGrade.hide();
+
+		if (remnantBuyAmt > 0) {
 			$realOrdAmtSpan.show()
-			$realOrdAmt.text(buyAmt.addComma()+'원');
+			$realOrdAmt.text(remnantBuyAmt.addComma()+'원');
 		} else {
 			$realOrdAmtSpan.hide()
 		}
 
-		if (buyCnt > 0) {
+		if (remnantBuyCnt > 0) {
 			$ordSpan.show();
-			$ordCnt.text(buyCnt.addComma()+'회');
+			$ordCnt.text(remnantBuyCnt.addComma()+'회');
 		} else {
 			$ordSpan.hide();
 		}
 
-		if (buyAmt > 0 || buyCnt > 0) {
-			$nextGrde.text(nextCustGrade.gradeCdNm)
+		if (remnantBuyAmt > 0 || remnantBuyCnt > 0) {
+			$nextGrde.text(nextCustGradePolicy.gradeCdNm);
+		}
+	}
+
+	// 기존 VIP / 새로운 VIP 구분
+	var fnDisplayVipText = function (expctCustGrade) {
+		let $etcGrade = $('#etcGrade');
+		let $sameVipGrade = $('#sameVipGrade');
+		let $vipGrade = $('#vipGrade');
+		$etcGrade.hide();
+		if (expctCustGrade.gradeCdNm === custGradeNm) {
+			$vipGrade.hide();
+			$sameVipGrade.show();
+		} else {
+			$sameVipGrade.hide();
+			$vipGrade.show();
 		}
+	}
 
+	$(document).ready(function() {
 
-	};
+		fnInit();
+
+	});
 
 /*]]>*/
 </script>