itn 2023-08-08
회원상세 등급 표시 추가
@2b2e065ed736d964ee3b521d58926418cd0be1ce
src/main/java/itn/let/sym/grd/service/MberGrdService.java
--- src/main/java/itn/let/sym/grd/service/MberGrdService.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdService.java
@@ -34,6 +34,9 @@
 	// 회원 등급제 대상여부 정보(사용자화면용)
 	public MberGrdVO selectMberGrdInfo(String mberId) throws Exception;
 	
+	// 회원 등급 예외 정보
+	public MberGrdVO selectMberEtcInfo(String mberId) throws Exception;
+	
 	// 회원별 등급 누적결제액 상세
 	public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception;
 	
src/main/java/itn/let/sym/grd/service/MberGrdVO.java
--- src/main/java/itn/let/sym/grd/service/MberGrdVO.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdVO.java
@@ -48,6 +48,9 @@
 	private String grdPeriod;		// 회원등급제 누적결제 계산기간
 	private String tempYn;
 	private String moid;			// 결제번호
+	private String isSalePrice;		// 협의회원
+	private String blineCode;		// B선회원
+	private String spamYn;			// 스팸회원
 	
 	// 검색필터
 	private String searchGrdStatus;
@@ -287,5 +290,23 @@
 	}
 	public void setSearchGrdStatus(String searchGrdStatus) {
 		this.searchGrdStatus = searchGrdStatus;
+	}
+	public String getIsSalePrice() {
+		return isSalePrice;
+	}
+	public void setIsSalePrice(String isSalePrice) {
+		this.isSalePrice = isSalePrice;
+	}
+	public String getBlineCode() {
+		return blineCode;
+	}
+	public void setBlineCode(String blineCode) {
+		this.blineCode = blineCode;
+	}
+	public String getSpamYn() {
+		return spamYn;
+	}
+	public void setSpamYn(String spamYn) {
+		this.spamYn = spamYn;
 	}	
 }
src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
@@ -53,6 +53,11 @@
 		return (MberGrdVO) select("mberGrdDAO.selectMberGrdInfo", mberId);
 	}
 	
+	// 회원 등급 예외 정보
+	public MberGrdVO selectMberEtcInfo(String mberId) throws Exception{
+		return (MberGrdVO) select("mberGrdDAO.selectMberEtcInfo", mberId);
+	}
+	
 	// 회원별 등급 누적결제액 상세
 	public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception{
 		return (MberGrdVO) select("mberGrdDAO.selectMberGrdAmtDetail", mberGrdVO);
src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
@@ -130,6 +130,15 @@
 		return mberGrdDAO.selectMberGrdInfo(mberId);
 	}	
 	
+	// 회원 등급 예외 정보
+	@Override
+	public MberGrdVO selectMberEtcInfo(String mberId) throws Exception {
+		// 공백제거
+		mberId = mberId.trim();
+		
+		return mberGrdDAO.selectMberEtcInfo(mberId);
+	}	
+
 	// 회원별 등급 누적결제액 상세
 	@Override
 	public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception {
src/main/java/itn/let/sym/grd/web/MberGrdMngController.java
--- src/main/java/itn/let/sym/grd/web/MberGrdMngController.java
+++ src/main/java/itn/let/sym/grd/web/MberGrdMngController.java
@@ -353,6 +353,56 @@
 		return modelAndView;
 	}
 	
+	// 회원 등급 예외 정보
+	@RequestMapping(value = "/sym/grd/mberGrdEtcChkAjax.do")
+	public ModelAndView mberGrdEtcChkAjax(
+			@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
+
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.setViewName("jsonView");
+
+		boolean isSuccess = false;
+		boolean isEvent = false;
+		String msg = "";
+   		MberGrdVO rtnMberGrdVO = new MberGrdVO();
+   		
+    	// 로그인VO에서  사용자 정보 가져오기
+    	LoginVO	loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
+    	String frstRegisterId = loginVO == null ? "" : loginVO.getId();
+    	mberGrdVO.setEditId(frstRegisterId);		// 최초등록자ID
+	
+        try{
+        	if (StringUtils.isNotEmpty(mberGrdVO.getMberId())) {
+
+	        	// Step 2. 회원별 이벤트 진행여부
+	        	int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId());
+	        	if (mberEventPrgCnt == 0) {
+	           		rtnMberGrdVO = mberGrdService.selectMberEtcInfo(mberGrdVO.getMberId());
+	           		if (null != rtnMberGrdVO) {
+	           			isSuccess = true;
+	           		}
+	           		else {
+	        			msg = "종료";       			
+	           		}
+	        	}
+	        	else {
+	        		isEvent = true;
+	        	}
+
+        	}
+		}
+		catch(Exception e) {
+			msg = e.getMessage();
+		}		
+
+        modelAndView.addObject("rtnMberGrdVO", rtnMberGrdVO);
+		modelAndView.addObject("isSuccess", isSuccess);
+		modelAndView.addObject("isEvent", isEvent);
+		modelAndView.addObject("msg", msg);
+		
+		return modelAndView;
+	}
+	
 	// 회원 등급제 종료
 	@RequestMapping(value = "/sym/grd/mberGrdEndByUserAjax.do")
 	public ModelAndView mberGrdEndByUserAjax(
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
@@ -303,6 +303,41 @@
 	]]>
 	</select>
 	
+	<!-- 회원 등급 예외 정보 -->
+	<select id="mberGrdDAO.selectMberEtcInfo" parameterClass="String" resultClass="mberGrdVO">
+	<![CDATA[
+		SELECT
+			M.mberId
+			, M.isSalePrice
+			, M.blineCode
+			, M.spamYn
+		FROM (
+			SELECT 
+				A.MBER_ID						AS mberId
+				, IFNULL(A.BLINE_CODE, 'N') 	AS blineCode
+				, IFNULL(A.SPAM_YN, 'N') 		AS spamYn
+				, CASE
+					WHEN 
+						(A.SHORT_PRICE > 0 
+							AND (B.SHORT_PRICE > A.SHORT_PRICE 
+								OR B.LONG_PRICE > A.LONG_PRICE 
+								OR B.PICTURE_PRICE > A.PICTURE_PRICE 
+								OR B.PICTURE2_PRICE > A.PICTURE2_PRICE 
+								OR B.PICTURE3_PRICE > A.PICTURE3_PRICE)
+						)
+					THEN 'Y'
+					ELSE 'N'
+				END isSalePrice
+			FROM LETTNGNRLMBER A 
+			JOIN MJ_MBER_SETTING B
+			WHERE 1=1
+				AND A.MBER_STTUS = 'Y'
+				AND A.MBER_ID = #mberId#
+		) M
+		LIMIT 1	
+	]]>
+	</select>	
+	
 	<!-- 회원별 등급 누적결제액 상세 -->
 	<select id="mberGrdDAO.selectMberGrdAmtDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO">
 	<![CDATA[
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
@@ -191,6 +191,48 @@
 				$(".grdSetNm").html(data.rtnMberGrdVO.grdSetNm);
 			} 
 			else {
+				//회원 등급 예외 정보
+				getMberGrdEtc();
+				//alert("Msg : " + data.msg);
+			}
+		},
+        error: function (e) { 
+        	//alert("ERROR : " + JSON.stringify(e)); 
+        }
+    });				
+}	
+
+//회원 등급 예외 정보
+function getMberGrdEtc() {
+	$(".grdSetNm").html("");											
+	
+	var mberId = document.mberManageVO.mberSearchId.value;
+	
+	$.ajax({
+        type: "POST",
+        url: "/sym/grd/mberGrdEtcChkAjax.do",
+        data: {"mberId" : mberId},
+        dataType:'json',
+        async: false,
+        success: function (data) {
+			if (data.isSuccess) {
+				var gradeNm = "";
+				if (data.isEvent) {
+					gradeNm += "(할인이벤트회원) ";
+				}
+				else if (data.rtnMberGrdVO.isSalePrice == "Y") {
+					gradeNm += "(단가협의회원) ";
+				}
+				else if (data.rtnMberGrdVO.blineCode == "Y") {
+					gradeNm += "(B선회원) ";
+				}
+				else if (data.rtnMberGrdVO.spamYn == "Y") {
+					gradeNm += "(스팸회원) ";
+				}
+				
+				$(".grdSetNm").html(gradeNm);
+			} 
+			else {
 				//alert("Msg : " + data.msg);
 			}
 		},
src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
@@ -25,9 +25,6 @@
 		$("#btnDdedicatedAccount").trigger("click");
 	}
 	
-	//등급제 시행 ON/OFF 체크
-	getMberSettingDetail();
-		
 	// 등급제 대상 여부
 	getMberGrdChk();		
 });
@@ -432,29 +429,6 @@
 	setPriceMake();	
 }
 
-//등급제 시행 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({
@@ -471,7 +445,10 @@
 				sHtml += "(누적결제액 : &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  &nbsp;  &nbsp;<span>" + numberWithCommas(data.rtnMberGrdVO.totAmt) + "</span>원)</span></p>";
 				$("#grdShowArea").html(sHtml);
 				$("#grdShowArea").show();
-				$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");				
+				$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
+				
+				// 문자(등급별 요금 안내)
+				$("#mberGrdSettingArea").show();				
 			} 
 			else {
 				//alert("Msg : " + data.msg);
src/main/webapp/WEB-INF/jsp/web/pay/PayViewV2.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayViewV2.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayViewV2.jsp
@@ -29,9 +29,6 @@
 		$("#btnDdedicatedAccount").trigger("click");
 	}
 	
-	//등급제 시행 ON/OFF 체크
-	getMberSettingDetail();
-		
 	// 등급제 대상 여부
 	getMberGrdChk();	
 });
@@ -618,30 +615,6 @@
 	setPriceMake();	
 }
 
-
-//등급제 시행 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({
@@ -658,7 +631,10 @@
 				sHtml += "(누적결제액 : &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  &nbsp;  &nbsp;<span>" + numberWithCommas(data.rtnMberGrdVO.totAmt) + "</span>원)</span></p>";
 				$("#grdShowArea").html(sHtml);
 				$("#grdShowArea").show();
-				$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");				
+				$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
+				
+				// 문자(등급별 요금 안내)
+				$("#mberGrdSettingArea").show();				
 			} 
 			else {
 				//alert("Msg : " + data.msg);
Add a comment
List