Forráskód Böngészése

다음 등급까지 남은 구매건수,금액 수정

jsshin 5 éve
szülő
commit
ec7457b084

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java

@@ -169,6 +169,16 @@ public interface TsfCustomerDao {
 	 */
 	CustGrade getExpectedCustGrde(CustGrade custGrade);
 
+	/**
+	 * 고객 등급 기준 주문정보 조회
+	 *
+	 * @param custGrade - 사이트 코드
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 04. 06
+	 */
+	CustGrade getCustGradeOrderInfo(CustGrade custGrade);
+
 	/**
 	 * 고객 생년월일 저장
 	 *

+ 1 - 1
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -1059,7 +1059,7 @@ public class TsfCustomerService {
 		CustGrade nextCustGradePolicy = custGradePolicy.get(0);
 		nextCustGradePolicy.setCustNo(custGrade.getCustNo());
 		// 2.고객 예상등급 이후 정보로 주문금액 확인
-		CustGrade nextCustGrade = customerDao.getExpectedCustGrde(nextCustGradePolicy);
+		CustGrade nextCustGrade = customerDao.getCustGradeOrderInfo(nextCustGradePolicy);
 		if (nextCustGrade != null) {
 			nextCustGradePolicy.setOrdCnt(nextCustGrade.getOrdCnt());
 			nextCustGradePolicy.setSumRealOrdAmt(nextCustGrade.getSumRealOrdAmt());

+ 24 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCustomer.xml

@@ -631,6 +631,30 @@
 		OR    B.SUM_REAL_ORD_AMT >= #{minBuyAmt}
 	</select>
 
+	<!--고객 등급 기준 주문정보-->
+	<select id="getCustGradeOrderInfo" parameterType="CustGrade" resultType="CustGrade">
+		/* TsfCustomer.getCustGradeOrderInfo */
+		SELECT   COUNT(DISTINCT A.ORD_NO) AS ORD_NO_CNT
+		       , SUM(A.SUM_REAL_ORD_AMT)  AS SUM_REAL_ORD_AMT
+		FROM (
+		      SELECT O.ORD_NO
+		           , SUM(OD.REAL_ORD_AMT + OD.GFCD_USE_AMT) AS SUM_REAL_ORD_AMT
+		      FROM   TB_ORDER O
+		      INNER JOIN
+		             TB_ORDER_DETAIL OD
+		      ON     O.ORD_NO = OD.ORD_NO
+		      INNER JOIN
+		             TB_CUSTOMER C
+		      ON     O.CUST_NO = C.CUST_NO
+		      WHERE  OD.ORD_DTL_STAT = 'G013_70' /*구매확정*/
+		      AND    C.CUST_NO = #{custNo}
+		      AND    O.ORD_DT >= DATE_ADD(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), INTERVAL -#{calMonths} MONTH)
+		      AND    O.ORD_DT <![CDATA[<]]> DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY) /*익월 1일*/
+		      GROUP BY O.ORD_NO
+		      HAVING SUM(OD.REAL_ORD_AMT + OD.GFCD_USE_AMT) >= #{buyExceptAmt}
+		) A
+	</select>
+
 	<!--배치 생년월일 -->
 	<insert id="saveBatchBirth" parameterType="Customer">
 		/*TsfCustomer.saveBatchBirth*/

+ 10 - 15
src/main/webapp/WEB-INF/views/mob/planning/PlanningCustGradeBenefitFormMob.html

@@ -304,9 +304,8 @@
 
 		// 예정등급이 VIP가 아닌경우
 		if (Number(expctCustGrade.gradeCdNo) > 10) {
-			let nextGradeNo = Number(expctCustGrade.gradeCdNo)-10;				// 다음등급번호
-			let nextCustGradePolicy = fnGetNextGradePolicyInfo(nextGradeNo);	// 다음등급정책정보
-			fnNextGradeCondition(nextCustGradePolicy, expctCustGrade);			// 다음조건 알림
+			let nextGradeNo = 'G110_'+(Number(expctCustGrade.gradeCdNo)-10); // 다음등급번호
+			fnGetNextGradePolicyInfo(nextGradeNo);							 // 다음등급정책정보
 		} else {
 			fnDisplayVipText(expctCustGrade);
 		}
@@ -315,18 +314,14 @@
 
  	// 다음 등급정책
  	var fnGetNextGradePolicyInfo = function (nextGradeNo) {
-		let custGradePolicy = exptCustGradeMap.custGradePolicy;	// 등급별정책
-		let nextCustGradePolicy;
-		$(custGradePolicy).each(function(idx, item) {
-			if (Number(item.gradeCdNo) === nextGradeNo ) {
-				nextCustGradePolicy = item;
-			}
+		$.get('/planning/next/custgrade/info/' + nextGradeNo
+			, function (data) {
+				fnNextGradeCondition(data.nextCustGradePolicy);			// 다음조건 알림
 		});
-		return nextCustGradePolicy;
 	}
 
 	// 다음등급 조건 알림
-	var fnNextGradeCondition = function (nextCustGradePolicy, expctCustGrade) {
+	var fnNextGradeCondition = function (nextCustGradePolicy) {
 		let $etcGrade = $('#etcGrade');
 		let $sameVipGrade = $('#sameVipGrade');
 		let $vipGrade = $('#vipGrade');
@@ -337,13 +332,13 @@
 		let $nextGrde = $('#nextGrde');
 
 		let remnantBuyAmt = 0;
-		if (nextCustGradePolicy.minBuyAmt > expctCustGrade.sumRealOrdAmt) {
-			remnantBuyAmt = nextCustGradePolicy.minBuyAmt - expctCustGrade.sumRealOrdAmt;
+		if (nextCustGradePolicy.minBuyAmt > nextCustGradePolicy.sumRealOrdAmt) {
+			remnantBuyAmt = nextCustGradePolicy.minBuyAmt - nextCustGradePolicy.sumRealOrdAmt;
 		}
 
 		let remnantBuyCnt = 0;
-		if (nextCustGradePolicy.minBuyCnt > expctCustGrade.ordCnt) {
-			remnantBuyCnt = nextCustGradePolicy.minBuyCnt -  expctCustGrade.ordCnt;
+		if (nextCustGradePolicy.minBuyCnt > nextCustGradePolicy.ordCnt) {
+			remnantBuyCnt = nextCustGradePolicy.minBuyCnt -  nextCustGradePolicy.ordCnt;
 		}
 
 		$etcGrade.show();

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

@@ -277,8 +277,8 @@
 
 		// 예정등급이 VIP가 아닌경우
 		if (Number(expctCustGrade.gradeCdNo) > 10) {
-			let nextGradeNo = 'G110_'+(Number(expctCustGrade.gradeCdNo)-10);				// 다음등급번호
-			fnGetNextGradePolicyInfo(nextGradeNo);	// 다음등급정책정보
+			let nextGradeNo = 'G110_'+(Number(expctCustGrade.gradeCdNo)-10); // 다음등급번호
+			fnGetNextGradePolicyInfo(nextGradeNo);							 // 다음등급정책정보
 		} else {
 			fnDisplayVipText(expctCustGrade);
 		}
@@ -290,7 +290,7 @@
 		$.get('/planning/next/custgrade/info/' + nextGradeNo
 			, function (data) {
 				fnNextGradeCondition(data.nextCustGradePolicy);			// 다음조건 알림
-			});
+		});
 	}
 
 	// 다음등급 조건 알림