itn 2023-07-07
회원 등급제 대상여부 정보(사용자화면용) 추가
@45d8771ba5ae33e5542ce778e1c7806e363b9a7d
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
@@ -26,6 +26,9 @@
 	// 회원별 등급 상세
 	public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception;
 
+	// 회원 등급제 대상여부 정보(사용자화면용)
+	public MberGrdVO selectMberGrdInfo(MberGrdVO mberGrdVO) throws Exception;
+	
 	// 회원별 등급 누적결제액 상세
 	public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception;
 	
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
@@ -48,6 +48,11 @@
 		return (MberGrdVO) select("mberGrdDAO.selectMberGrdDetail", mberGrdVO);
 	}
 
+	// 회원 등급제 대상여부 정보(사용자화면용)
+	public MberGrdVO selectMberGrdInfo(MberGrdVO mberGrdVO) throws Exception{
+		return (MberGrdVO) select("mberGrdDAO.selectMberGrdInfo", mberGrdVO);
+	}
+	
 	// 회원별 등급 누적결제액 상세
 	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
@@ -88,6 +88,12 @@
 		return mberGrdDAO.selectMberGrdDetail(mberGrdVO);
 	}	
 	
+	// 회원 등급제 대상여부 정보(사용자화면용)
+	@Override
+	public MberGrdVO selectMberGrdInfo(MberGrdVO mberGrdVO) throws Exception {
+		return mberGrdDAO.selectMberGrdInfo(mberGrdVO);
+	}	
+	
 	// 회원별 등급 누적결제액 상세
 	@Override
 	public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception {
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
@@ -99,13 +99,13 @@
 			, DATE_FORMAT(A.GRD_END_DATE, '%Y-%m-%d')			AS grdEndDate
 			, A.GRD_STATUS				AS grdStatus
 			, CASE
-				WHEN A.GRD_STATUS = 'Y'
+				WHEN A.GRD_STATUS = 'Y' AND A.GRD_END_DATE >= NOW()  
 				THEN '진행중'
 				WHEN A.GRD_STATUS = 'N'
 				THEN '미진행'
 				WHEN A.GRD_STATUS = 'E'
-				THEN '종료'				
-				ELSE ''
+				THEN '종료'
+				ELSE '종료'
 			END	AS grdStatusNm
 			, A.REG_ID					AS regId
 			, DATE_FORMAT(A.REG_DATE, '%Y-%m-%d %H:%i')				AS regDate
@@ -163,8 +163,60 @@
 			MJ_MBER_GRD_INFO
 		WHERE 
 			MBER_ID = #mberId#
+		LIMIT 1
 	</select>
 
+	<!-- 회원 등급제 대상여부 정보(사용자화면용) -->
+	<select id="mberGrdDAO.selectMberGrdInfo" parameterClass="mberGrdVO" resultClass="mberGrdVO">
+		SELECT
+			M.mberId
+			, blineCode
+			, M.grdSetNo
+			, M.grdSetNm
+			, M.shortPrice
+			, M.longPrice
+			, M.picturePrice
+			, M.picture2Price
+			, M.picture3Price
+		FROM (
+			SELECT 
+				A.MBER_ID						AS mberId
+				, IFNULL(A.BLINE_CODE, 'N') 	AS blineCode
+				, G.GRD_SET_NO					AS grdSetNo
+				, S.GRD_SET_NM					AS grdSetNm
+				, G.SHORT_PRICE					AS shortPrice
+				, G.LONG_PRICE					AS longPrice
+				, G.PICTURE_PRICE				AS picturePrice
+				, G.PICTURE2_PRICE				AS picture2Price
+				, G.PICTURE3_PRICE				AS picture3Price
+				, 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 
+			INNER JOIN MJ_MBER_GRD_INFO G
+				ON A.MBER_ID = G.MBER_ID
+			INNER JOIN MJ_MBER_GRD_SETTING S
+				ON G.GRD_SET_NO = S.GRD_SET_NO					
+			JOIN MJ_MBER_SETTING B
+			WHERE 1=1
+				AND G.GRD_STATUS = 'Y'
+				AND NOW() BETWEEN G.GRD_START_DATE AND G.GRD_END_DATE				
+				AND G.MBER_ID = #mberId#
+		) M
+		WHERE M.isSalePrice = 'N'
+		OR M.blineCode != 'N'
+		LIMIT 1
+	</select>
+	
 	<!-- 회원별 등급 누적결제액 상세 -->
 	<select id="mberGrdDAO.selectMberGrdAmtDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO">
 	<![CDATA[
@@ -298,8 +350,8 @@
 			, A.EDIT_DATE = NOW()
 		WHERE B.GRD_SET_NO IS NOT NULL
 			AND A.GRD_SET_NO > B.GRD_SET_NO
-			AND GRD_STATUS NOT IN ('N', 'E')
-			AND NOW() BETWEEN GRD_START_DATE AND GRD_END_DATE
+			AND A.GRD_STATUS = 'Y'
+			AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
 	]]>
 	</update>	
 
@@ -359,8 +411,8 @@
 			COUNT(0)
 		FROM MJ_MBER_GRD_INFO A 
 		WHERE A.MBER_ID = #mberId#
-			AND GRD_STATUS NOT IN ('N', 'E')
-			AND NOW() BETWEEN GRD_START_DATE AND GRD_END_DATE
+			AND A.GRD_STATUS = 'Y'
+			AND NOW() BETWEEN A.GRD_START_DATE AND A.GRD_END_DATE
 		LIMIT 1
 	</select>
 	
Add a comment
List