itn 2023-07-26
등급제 대량등록 수정
@f3f51805d026031f5ecb92898352eaef965b8627
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
@@ -46,6 +46,9 @@
 	// 회원별 등급 등록 All => 기존대상자 제외
 	public void insertMberGrdAllByExist(MberGrdVO mberGrdVO)  throws Exception;
 	
+	// 회원별 등급 히스토리 등록 All
+	public void insertMberGrdHistAll(MberGrdVO mberGrdVO)  throws Exception;
+	
 	// 회원별 등급 일괄변경
 	public int updateMberGrdAll(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
@@ -73,6 +73,11 @@
 		insert("mberGrdDAO.insertMberGrdAllByExist", mberGrdVO);
 	}
 	
+	// 회원별 등급 히스토리 등록 All
+	public void insertMberGrdHistAll(MberGrdVO mberGrdVO) throws Exception{
+		insert("mberGrdDAO.insertMberGrdHistAll", mberGrdVO);
+	}
+	
 	// 회원별 등급 일괄변경
 	public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
 		return update("mberGrdDAO.updateMberGrdAll", 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
@@ -152,6 +152,12 @@
 		mberGrdDAO.insertMberGrdAllByExist(mberGrdVO);
 	}
 	
+	// 회원별 등급 히스토리 등록 All
+	@Override
+	public void insertMberGrdHistAll(MberGrdVO mberGrdVO) throws Exception {
+		mberGrdDAO.insertMberGrdHistAll(mberGrdVO);
+	}
+	
 	// 회원별 등급 일괄변경
 	@Override
 	public int updateMberGrdAll(MberGrdVO mberGrdVO) throws Exception {
@@ -181,6 +187,8 @@
 			// Step5. 등급제 정상대상자 초기화(화이트등급)
 			updateCnt3 = updateMberGrdWhiteByTemp(mberGrdVO);
 			
+			// Step6. 회원별 등급 히스토리 등록
+			insertMberGrdHistAll(mberGrdVO);			
 			
 		}
 		
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
@@ -371,7 +371,7 @@
 			, #picture3Price#
 			, #amt#
 			, #totAmt#
-			, #grdDate#
+			, #grdNewDate#
 			, #grdStartDate#
 			, #grdEndDate#
 			, #grdStatus#
@@ -394,6 +394,7 @@
 			, PICTURE3_PRICE		= #picture3Price#
 			, AMT					= #amt#
 			, TOT_AMT				= #totAmt#
+			, GRD_DATE				= #grdNewDate#
 			, EDIT_ID				= #editId#
 			, EDIT_DATE				= NOW()
 		WHERE 
@@ -475,6 +476,44 @@
 			AND M.spamYn = 'N'	
 	</insert>			
 	
+	<!-- 회원별 등급 히스토리 등록 All -->
+	<insert id="mberGrdDAO.insertMberGrdHistAll" parameterClass="mberGrdVO">	
+		INSERT INTO MJ_MBER_GRD_HIST
+		(
+			MBER_ID
+			, GRD_SET_NO
+			, SHORT_PRICE
+			, LONG_PRICE
+			, PICTURE_PRICE
+			, PICTURE2_PRICE
+			, PICTURE3_PRICE
+			, AMT
+			, TOT_AMT
+			, GRD_DATE
+			, REG_ID
+			, REG_DATE
+			, EDIT_ID
+			, EDIT_DATE
+		)
+		SELECT
+			MBER_ID
+			, GRD_SET_NO
+			, SHORT_PRICE
+			, LONG_PRICE
+			, PICTURE_PRICE
+			, PICTURE2_PRICE
+			, PICTURE3_PRICE
+			, AMT
+			, TOT_AMT
+			, GRD_DATE
+			, REG_ID
+			, REG_DATE
+			, EDIT_ID
+			, EDIT_DATE
+		FROM MJ_MBER_GRD_INFO
+		WHERE GRD_STATUS = 'Y'
+	</insert>			
+
 	<!-- 회원별 등급 일괄변경 -->
 	<update id="mberGrdDAO.updateMberGrdAll" parameterClass="mberGrdVO">
 	<![CDATA[
@@ -519,6 +558,7 @@
 			, A.PICTURE_PRICE = C.PICTURE_PRICE
 			, A.PICTURE2_PRICE = C.PICTURE2_PRICE
 			, A.PICTURE3_PRICE = C.PICTURE3_PRICE
+			, A.AMT = B.AMT_SUM
 			, A.TOT_AMT = B.AMT_SUM
 			, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
 			, A.EDIT_DATE = NOW()
@@ -576,6 +616,7 @@
 			, A.PICTURE_PRICE = C.PICTURE_PRICE
 			, A.PICTURE2_PRICE = C.PICTURE2_PRICE
 			, A.PICTURE3_PRICE = C.PICTURE3_PRICE
+			, A.AMT = B.AMT_SUM
 			, A.TOT_AMT = B.AMT_SUM
 			, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
 			, A.EDIT_ID	= #editId#
@@ -808,7 +849,7 @@
 			, #picture3Price#
 			, #amt#
 			, #totAmt#
-			, #grdDate#
+			, #grdNewDate#
 			, #regId#
 			, NOW()
 			, #editId#
@@ -840,7 +881,9 @@
 			ON A.GRD_SET_NO = B.GRD_SET_NO		
 		WHERE 1=1 
 		AND A.MBER_ID = #mberId#
+		AND A.TOT_AMT > 0
 		AND A.GRD_DATE >= (SELECT S.GRD_DATE FROM MJ_MBER_GRD_INFO S WHERE S.MBER_ID = #mberId#)
+		GROUP BY A.TOT_AMT, A.AMT
 		ORDER BY A.REG_DATE DESC
 		LIMIT  #recordCountPerPage# OFFSET #firstIndex#	
 	</select>
src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdList.jsp
--- src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdList.jsp
+++ src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdList.jsp
@@ -238,8 +238,8 @@
 						<col style="width: 5%">
 						<col style="width: auto;">
 						<col style="width: 8%;">
-						<col style="width: 8%;">
-						<col style="width: 10%">
+						<col style="width: 7%;">
+						<col style="width: 9%">
 						<col style="width: 9%">
 						<col style="width: 8%">
 						<col style="width: 8%">
@@ -322,13 +322,13 @@
 					</c:forEach>
 					</tbody>
 					<c:if test="${empty resultList}">
-	         			<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
+	         			<tr><td colspan="12"><spring:message code="common.nodata.msg" /></td></tr>
 	         		</c:if>					
 				</table>
 			</div>
 			<div class="btnWrap">
-				<input type="text" name="mberId" value="" style="height: 50px; width: 120px;" />
-				<input type="button" class="btnType2" value="등급제 적용테스트" onclick="javascript:setMberGrdSave(); return false;">
+				<input type="text" name="mberId" value="" style="height: 50px; width: 120px;" placeholder="아이디" />
+				<input type="button" class="btnType2" value="등급 등록(테스트용)" onclick="javascript:setMberGrdSave(); return false;">
 			</div>	
 			
 			<c:if test="${!empty resultList}">
src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
--- src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
+++ src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
@@ -84,7 +84,7 @@
 		        async: false,
 		        success: function (data) {
 					if (data.isSuccess) { 
-						alert(numberWithCommas(data.updateMberCnt) + "명 저장 완료했습니다.");
+						alert(numberWithCommas(data.updateMberCnt) + "명 등급 업데이트 완료했습니다.");
 						location.reload();
 					} 
 					else {
@@ -110,7 +110,7 @@
 		        async: false,
 		        success: function (data) {
 					if (data.isSuccess) { 
-						alert(numberWithCommas(data.updateMberCnt) + "명 저장 완료했습니다.");
+						alert(numberWithCommas(data.updateMberCnt) + "명 업데이트 완료했습니다.");
 						location.reload();
 					} 
 					else {
Add a comment
List