itn 2023-07-07
등급제 관리 일괄등록 로직 수정
@d7cbc1b30158dc61a4f6c6e2f3b7bfeb4db4e3c1
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
@@ -38,6 +38,9 @@
 	// 회원별 등급 일괄변경
 	public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception;
 	
+	// 문자할인, B선라인 대상자 초기화
+	public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception;
+	
 	// 회원별 등급 초기화
 	public int updateMberGrdEndAll(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
@@ -68,6 +68,11 @@
 		return update("mberGrdDAO.updateMberGrdAll", mberGrdVO);
 	}		
 	
+	// 문자할인, B선라인 대상자 초기화
+	public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
+		return update("mberGrdDAO.updateMberGrdEndBySale", mberGrdVO);
+	}		
+	
 	// 회원별 등급 초기화
 	public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
 		return update("mberGrdDAO.updateMberGrdEndAll", 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
@@ -106,27 +106,38 @@
 		mberGrdDAO.updateMberGrd(mberGrdVO);
 	}	
 	
-	// 회원별 등급 초기화
+	// 회원별 등급 일괄변경
 	@Override
 	public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
-		int updateCnt = 0;
+		int updateCnt1 = 0;
+		int updateCnt2 = 0;
 		
 		// Step 1. 등급제 시행 ON 일경우
 		MberGrdVO mberGrdVO1 = new MberGrdVO();
 		mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
 		if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate()) {
-			updateCnt = mberGrdDAO.updateMberGrdAll(mberGrdVO);
+			// 문자할인, B선라인 대상자 초기화
+			updateCnt1 = updateMberGrdEndBySale(mberGrdVO);
+			
+			// 회원별 등급 일괄변경
+			updateCnt2 = mberGrdDAO.updateMberGrdAll(mberGrdVO);
 		}
 		
-		return updateCnt;
+		return updateCnt1 + updateCnt2;
 	}	
 	
-	// 회원별 등급 일괄변경
+	// 회원별 등급 초기화
 	@Override
 	public int updateMberGrdEndAll(MberGrdVO mberGrdVO) throws Exception {
 		return mberGrdDAO.updateMberGrdEndAll(mberGrdVO);
 	}	
 	
+	// 문자할인, B선라인 대상자 초기화
+	@Override
+	public int updateMberGrdEndBySale(MberGrdVO mberGrdVO) throws Exception {
+		return mberGrdDAO.updateMberGrdEndBySale(mberGrdVO);
+	}	
+	
 	// 회원별 등급 적용
 	@Override
 	public void mberGrdSaveByUser(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
@@ -303,6 +303,45 @@
 	]]>
 	</update>	
 
+	<!-- 문자할인, B선라인 대상자 초기화 -->
+	<update id="mberGrdDAO.updateMberGrdEndBySale" parameterClass="mberGrdVO">
+	<![CDATA[
+		UPDATE MJ_MBER_GRD_INFO SET
+			GRD_END_DATE			= NOW()
+			, GRD_STATUS			= 'E'
+			, EDIT_DATE				= NOW()
+		WHERE MBER_ID IN (
+			SELECT
+				M.MBER_ID
+			FROM (
+				SELECT 
+					A.MBER_ID
+					, IFNULL(A.BLINE_CODE, 'N') AS BLINE_CODE
+					, 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
+				JOIN MJ_MBER_SETTING B
+				WHERE 1=1
+					AND G.GRD_STATUS != 'E'
+			) M
+			WHERE M.isSalePrice = 'Y'
+			OR M.BLINE_CODE != 'N'
+		)
+	]]>
+	</update>	
+	
 	<!-- 회원별 등급 초기화 -->
 	<update id="mberGrdDAO.updateMberGrdEndAll" parameterClass="mberGrdVO">
 		UPDATE MJ_MBER_GRD_INFO SET
Add a comment
List