itn 2023-07-04
등급제 적용 온/오프 기능 추가
@fdf52e92fba096eded3857adcfa3304368e1e9b5
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
@@ -4,6 +4,14 @@
 
 public interface MberGrdService {
 	
+	// 등급제 설정 일괄변경
+	public int updateMberSetting(MberGrdVO mberGrdVO) throws Exception;
+	
+	// 등급제 시행여부 상세
+	public MberGrdVO selectMberSettingDetail(MberGrdVO mberGrdVO) throws Exception;
+	
+	
+	// 등급제 설정 목록
 	List<MberGrdVO> selectMberGrdSettingList(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
@@ -34,6 +34,9 @@
 	private String grdStatus;
 	private int mberGrdHistNo;
 
+	private String grdNoti;		// 회원등급제 시행 여부
+	private String grdDate;		// 회원등급제 시행일자
+
 
 	public int getGrdSetNo() {
 		return grdSetNo;
@@ -198,5 +201,17 @@
 	}
 	public void setMberGrdHistNo(int mberGrdHistNo) {
 		this.mberGrdHistNo = mberGrdHistNo;
+	}
+	public String getGrdNoti() {
+		return grdNoti;
+	}
+	public void setGrdNoti(String grdNoti) {
+		this.grdNoti = grdNoti;
+	}
+	public String getGrdDate() {
+		return grdDate;
+	}
+	public void setGrdDate(String grdDate) {
+		this.grdDate = grdDate;
 	}	
 }
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
@@ -10,6 +10,17 @@
 @Repository("mberGrdDAO")
 public class MberGrdDAO extends EgovAbstractDAO {
 
+	// 등급제 시행여부 변경
+	public int updateMberSetting(MberGrdVO mberGrdVO) throws Exception {
+		return update("mberGrdDAO.updateMberSetting", mberGrdVO);
+	}	
+
+	// 등급제 시행여부 상세
+	public MberGrdVO selectMberSettingDetail(MberGrdVO mberGrdVO) throws Exception{
+		return (MberGrdVO) select("mberGrdDAO.selectMberSettingDetail", mberGrdVO);
+	}	
+	
+	// 등급제 설정 목록
 	@SuppressWarnings("unchecked")
 	public List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception{
 		return (List<MberGrdVO>)list("mberGrdDAO.selectMberGrdSettingList", 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
@@ -16,6 +16,19 @@
 	@Resource(name="mberGrdDAO")
 	MberGrdDAO mberGrdDAO;
 
+	// 등급제 시행여부 변경
+	@Override
+	public int updateMberSetting(MberGrdVO mberGrdVO) throws Exception {
+		return mberGrdDAO.updateMberSetting(mberGrdVO);
+	}
+	
+	// 등급제 시행여부 상세
+	@Override
+	public MberGrdVO selectMberSettingDetail(MberGrdVO mberGrdVO) throws Exception {
+		return mberGrdDAO.selectMberSettingDetail(mberGrdVO);
+	}	
+	
+	
 	@Override
 	public List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception {
 		return mberGrdDAO.selectMberGrdSettingList(mberGrdVO);
src/main/java/itn/let/sym/grd/web/MberGrdController.java
--- src/main/java/itn/let/sym/grd/web/MberGrdController.java
+++ src/main/java/itn/let/sym/grd/web/MberGrdController.java
@@ -34,6 +34,10 @@
     	
     	List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO);
     	
+    	mberGrdVO = mberGrdService.selectMberSettingDetail(mberGrdVO);
+
+    	model.addAttribute("grdNoti", mberGrdVO.getGrdNoti());
+    	model.addAttribute("grdDate", mberGrdVO.getGrdDate());
     	model.addAttribute("mberGrdSettingList", mberGrdSettingList);
     	
     	return "/sym/grd/mberGrdSetting";
@@ -56,8 +60,16 @@
     	mberGrdVO.setEditId(frstRegisterId);		// 최초등록자ID
 
         try{
-        	// 등급제 업데이트
-        	mberGrdService.updateGrdSettingList(mberGrdVO);
+        	// 등급제 시행여부 변경
+        	int updateCnt = mberGrdService.updateMberSetting(mberGrdVO);
+        	if (updateCnt == 0) {
+    			isSuccess = false;
+    			msg = "등급제 시행여부 변경에 실패했습니다.";        		
+        	}
+        	else {
+	        	// 등급제 업데이트
+	        	mberGrdService.updateGrdSettingList(mberGrdVO);
+        	}
 		}
 		catch(Exception e) {
 			isSuccess = false;
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
@@ -5,7 +5,27 @@
 	
     <typeAlias  alias="mberGrdVO"      type = "itn.let.sym.grd.service.MberGrdVO"/>
     
-     <select id="mberGrdDAO.selectMberGrdSettingList" parameterClass="mberGrdVO" resultClass="mberGrdVO">
+	<!-- 등급제 시행여부 변경 -->
+	<update id="mberGrdDAO.updateMberSetting" parameterClass="mberGrdVO">
+		UPDATE MJ_MBER_SETTING A 
+		SET 
+			A.GRD_NOTI = #grdNoti#
+			, A.GRD_DATE = #grdDate# 
+	</update>
+	
+	<!-- 등급제 시행여부 상세 -->
+	<select id="mberGrdDAO.selectMberSettingDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO">
+		SELECT
+			GRD_NOTI AS grdNoti
+			, GRD_DATE AS grdDate 
+		FROM
+			MJ_MBER_SETTING
+		LIMIT 1
+	</select>
+		
+	
+	<!-- 등급제 설정 목록 -->
+	<select id="mberGrdDAO.selectMberGrdSettingList" parameterClass="mberGrdVO" resultClass="mberGrdVO">
 		SELECT 
 			A.GRD_SET_NO AS grdSetNo
 			, A.GRD_SET_NM AS grdSetNm
@@ -22,8 +42,7 @@
 			, A.EDIT_DATE AS editDate 
 		FROM mj_mber_grd_setting A
 		ORDER BY A.GRD_SET_NO ASC
-
-    </select>
+	</select>
 
 	<!-- 등급제 설정 일괄변경 일괄변경 -->
 	<update id="mberGrdDAO.updateGrdSetting" parameterClass="mberGrdVO">
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
@@ -9,42 +9,50 @@
 	<meta charset="UTF-8">
 	<title>등급제 관리</title>
 	<script type="text/javascript">
-
-	function doUpdate() {
-
-	}
 	
 	// 등급제 일괄변경
 	function setMassEdit() {
-		if(!confirm("등급별 단가를 변경 하시겠습니까?")) {
-			return;
-		}
-
-		// 콤마 제거
-		$('input[name=stdAmts]').each(function(index,item){
-			$(this).val($(this).val().replace(/,/gi, ""));
-		});
 		
-		$.ajax({
-	        type: "POST",
-	        url: "/sym/grd/mberGrdSettingMassUpdateAjax.do",
-	        data: $("#listForm").serialize(),
-	        dataType:'json',
-	        async: false,
-	        success: function (data) {
-	        	console.log(data);
-				if (data.isSuccess) { 
-					alert("저장 완료했습니다.");
-					location.reload();
-				} 
-				else {
-					alert("Msg : " + data.msg);
-				}
-			},
-	        error: function (e) { 
-	        	alert("ERROR : " + JSON.stringify(e)); 
-	        }
-	    });				
+		if ($("input[name='grdNoti']:checked").val() == "") {
+			alert("등급제 적용 온/오프를 선택해주세요.");
+			return false;			
+		}
+		
+		// 누적결제 적용일자
+		if ($("#ntceBgndeYYYMMDD").val() == "") {
+			alert("누적결제 적용일자를 선택해주세요.");
+			return false;
+		}		
+		
+		if(confirm("등급별 단가를 변경 하시겠습니까?")) {
+			$("#grdDate").val($("#ntceBgndeYYYMMDD").val());
+			
+			// 콤마 제거
+			$('input[name=stdAmts]').each(function(index,item){
+				$(this).val($(this).val().replace(/,/gi, ""));
+			});
+			
+			$.ajax({
+		        type: "POST",
+		        url: "/sym/grd/mberGrdSettingMassUpdateAjax.do",
+		        data: $("#listForm").serialize(),
+		        dataType:'json',
+		        async: false,
+		        success: function (data) {
+		        	console.log(data);
+					if (data.isSuccess) { 
+						alert("저장 완료했습니다.");
+						location.reload();
+					} 
+					else {
+						alert("Msg : " + data.msg);
+					}
+				},
+		        error: function (e) { 
+		        	alert("ERROR : " + JSON.stringify(e)); 
+		        }
+		    });				
+		}
 	}	
 	
 	</script>
@@ -58,6 +66,40 @@
 		</div>
 		<div class="pageCont">
 			<form id="listForm" name="listForm" method="post">
+			<input type="hidden" name="grdDate" id="grdDate" />
+			
+			<div class="tableWrap">
+				<table class="tbType2">
+					<colgroup>
+						<col width="30%">
+						<col width="*">
+					</colgroup>
+					<tbody>
+						<tr>
+							<th>등급제 적용</th>
+							<td>
+							<input type="radio" name="grdNoti" id="grdNoti1" value="Y" <c:if test="${grdNoti eq 'Y'}">checked="checked"</c:if> /> ON
+							&nbsp;&nbsp;&nbsp;
+							<input type="radio" name="grdNoti" id="grdNoti2" value="N" <c:if test="${grdNoti eq 'N'}">checked="checked"</c:if> /> OFF
+							</td>
+						</tr>					
+						<tr>
+							<th>누적결제 적용일자</th>
+							<td>
+								<input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do">
+							    <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);">
+			
+							    <input style="width:auto;min-width: 100px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly=""
+							    value="<c:out value="${grdDate}" />" >
+							   	 	<input type="button" class="calBtn">
+						    	</a>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+			<br /><br />
+						
 			<div class="tableWrap">
 				<table class="tbType1">
 					<colgroup>
Add a comment
List