이호영 이호영 2024-11-19
관리자 - 인증번호 수정 및 별칭 추가
@d48ac05becfa2ef94299f8361989c04294e5c83f
src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
@@ -187,6 +187,10 @@
 
 	public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO);
 
+	public StatusResponse findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO);
+
+	public StatusResponse updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO);
+
 	
 	
 }
src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
@@ -378,6 +378,10 @@
 	public void insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
 		insert("mjonMsgDataDAO.insertMberCertPhoneInfo", mberCertPhoneVO);
 	}
+	
+	public void updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
+		update("mjonMsgDataDAO.updateMberCertPhoneInfo", mberCertPhoneVO);
+	}
 
 
 	public void deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
@@ -388,5 +392,10 @@
 	public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO) {
 		return (List<MberCertPhoneVO>) list("mjonMsgDataDAO.selectMberCertPhoneListVO", mberCertPhoneVO);
 	}
+
+
+	public MberCertPhoneVO findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
+		return (MberCertPhoneVO) select("mjonMsgDataDAO.findByCertPhoneInfo", mberCertPhoneVO);
+	}
 	
 }
src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
@@ -3167,8 +3167,21 @@
 
 	@Override
 	public StatusResponse insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
+		MberCertPhoneVO mberCertPhoneReturnVO = mjonMsgDataDAO.findByCertPhoneInfo(mberCertPhoneVO);
+		if(mberCertPhoneReturnVO != null) {
+			return new StatusResponse(HttpStatus.CONFLICT, "중복 번호입니다.", LocalDateTime.now());
+		}
+		
+		
 		mjonMsgDataDAO.insertMberCertPhoneInfo(mberCertPhoneVO);
+		
 		return new StatusResponse(HttpStatus.OK, "등록하였습니다.", LocalDateTime.now());
+	}
+	
+	@Override
+	public StatusResponse updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
+		mjonMsgDataDAO.updateMberCertPhoneInfo(mberCertPhoneVO);
+		return new StatusResponse(HttpStatus.OK, "수정하였습니다.", LocalDateTime.now());
 	}
 	
 	
@@ -3183,4 +3196,10 @@
 		return mjonMsgDataDAO.selectMberCertPhoneListVO(mberCertPhoneVO);
 	}
 	
+	@Override
+	public StatusResponse findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
+		MberCertPhoneVO mberCertPhoneReturnVO = mjonMsgDataDAO.findByCertPhoneInfo(mberCertPhoneVO);
+		return new StatusResponse(HttpStatus.OK, mberCertPhoneReturnVO, LocalDateTime.now());
+	}
+	
 }
src/main/java/itn/let/uat/uia/service/MberCertPhoneVO.java
--- src/main/java/itn/let/uat/uia/service/MberCertPhoneVO.java
+++ src/main/java/itn/let/uat/uia/service/MberCertPhoneVO.java
@@ -27,6 +27,8 @@
 	
 	private String mberId;
 	private String mbtlnum;
+	private String certAlias;
+	private String certMemo;
 	private String certUseYn;
 	private String certMbtlnum;
 	
@@ -46,7 +48,18 @@
 	public void setMbtlnum(String mbtlnum) {
 		this.mbtlnum = mbtlnum;
 	}
-	
+	public String getCertAlias() {
+		return certAlias;
+	}
+	public void setCertAlias(String certAlias) {
+		this.certAlias = certAlias;
+	}
+	public String getCertMemo() {
+		return certMemo;
+	}
+	public void setCertMemo(String certMemo) {
+		this.certMemo = certMemo;
+	}
 	public String getCertUseYn() {
 		return certUseYn;
 	}
src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
--- src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
+++ src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
@@ -1657,6 +1657,22 @@
 		return modelAndView;
 	}	
 	
+	@RequestMapping(value = {"/uss/umt/user/findByCertPhoneInfo.do"})
+	public ResponseEntity<StatusResponse> findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) throws Exception {
+		
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.setViewName("jsonView");
+		
+		//로그인 권한정보 불러오기
+		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
+		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
+		
+		if(userId == null) {
+			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
+		}
+		return ResponseEntity.ok().body(mjonMsgDataService.findByCertPhoneInfo(mberCertPhoneVO));
+	}	
+	
 	@RequestMapping(value = {"/uss/umt/user/insertCertPhone.do"})
 	public ResponseEntity<StatusResponse> insertCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
 		
@@ -1673,10 +1689,28 @@
 		mberCertPhoneVO.setFrstRegisterId(userId);
 		
 		
-		
 		return ResponseEntity.ok().body(mjonMsgDataService.insertMberCertPhoneInfo(mberCertPhoneVO));
 	}	
 	
+	@RequestMapping(value = {"/uss/umt/user/updateCertPhone.do"})
+	public ResponseEntity<StatusResponse> updateCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
+		
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.setViewName("jsonView");
+		
+		//로그인 권한정보 불러오기
+		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
+		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
+		
+		if(userId == null) {
+			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
+		}
+		mberCertPhoneVO.setFrstRegisterId(userId);
+		
+		
+		return ResponseEntity.ok().body(mjonMsgDataService.updateMberCertPhoneInfo(mberCertPhoneVO));
+	}	
+	
 	@RequestMapping(value = {"/uss/umt/user/deleteCertPhone.do"})
 	public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
 		
src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
@@ -3758,16 +3758,21 @@
 	
 	
 	<select id="mjonMsgDataDAO.selectMberCertPhoneList" parameterClass="String" resultClass="mberCertPhoneVO">
+	/* mjonMsgDataDAO.selectMberCertPhoneList */
 		SELECT 
-		    MBTLNUM AS mbtlnum,
-		    '-' AS frstRegistPnttm
+			MBTLNUM AS mbtlnum
+			, '-' AS certMemo
+			, '대표번호' AS certAlias
+			, '-' AS frstRegistPnttm
 		FROM 
 		    lettngnrlmber
 		WHERE MBER_ID = #userId#
 		UNION ALL
 		SELECT 
-		    MBTLNUM AS mbtlnum,
-		    FRST_REGIST_PNTTM AS frstRegistPnttm
+			MBTLNUM AS mbtlnum
+			, CERT_MEMO AS certMemo
+			, CERT_ALIAS AS certAlias
+			, FRST_REGIST_PNTTM AS frstRegistPnttm
 		FROM 
 		    lettngnrlmber_cert_phone
 		WHERE MBER_ID = #userId#
@@ -3792,6 +3797,20 @@
 		AND CERT_USE_YN = 'Y'
 	</select>
 	
+	<select id="mjonMsgDataDAO.findByCertPhoneInfo" parameterClass="mberCertPhoneVO" resultClass="mberCertPhoneVO">
+			/*mjonMsgDataDAO.findByCertPhoneInfo*/
+		SELECT 
+			MBTLNUM AS mbtlnum
+			, CERT_MEMO AS certMemo
+			, CERT_ALIAS AS certAlias
+			, FRST_REGIST_PNTTM AS frstRegistPnttm
+		FROM 
+			lettngnrlmber_cert_phone
+		WHERE MBER_ID = #mberId#
+		AND MBTLNUM = #mbtlnum#
+		AND CERT_USE_YN = 'Y'
+	</select>
+	
 	
 	<insert id="mjonMsgDataDAO.insertMberCertPhoneInfo" parameterClass="mberCertPhoneVO">
 	
@@ -3800,6 +3819,8 @@
 		       (
 					MBER_ID
 					, MBTLNUM
+					, CERT_ALIAS
+					, CERT_MEMO
 					, FRST_REGIST_PNTTM
 					, FRST_REGISTER_ID
 				)
@@ -3807,6 +3828,8 @@
 				(
 					#mberId#
 					, #mbtlnum#
+					, #certAlias#
+					, #certMemo#
 					, now()
 					, #frstRegisterId#
 				)
@@ -3820,6 +3843,20 @@
 		WHERE 
 			MBER_ID = #mberId#
 		AND MBTLNUM = #mbtlnum#
+	</update>
+	
+	
+	
+	<update id="mjonMsgDataDAO.updateMberCertPhoneInfo" parameterClass="mberCertPhoneVO">
+	
+		UPDATE LETTNGNRLMBER_CERT_PHONE
+			SET 
+			LAST_UPDUSR_ID = #lastUpdusrId#
+			, CERT_MEMO = #certMemo#
+			, CERT_ALIAS = #certAlias#
+		WHERE 
+			MBER_ID = #mberId#
+		AND MBTLNUM = #mbtlnum#
 				
 				
 	</update>
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
@@ -2072,23 +2072,22 @@
 	
 }
 
-//이벤트 수정하기
+//인증번호 등록
 function fn_certPhoneReg(){
 	var mberId = $('#cashUserId').val();
 	
 	var mbtlnum = $('#pop_mbtlnum').val();
 	if(mbtlnum == ''){
-		
 		alert("등록할 인증번호를 입력해주세요.");
 		return false;
-		
 	}
-	
-	
+
 	var params = {
 		"mberId" : mberId
-    	, "mbtlnum" : mbtlnum
-    }
+		, "mbtlnum" : mbtlnum
+		, "certAlias" : $('#pop_certAlias').val()
+		, "certMemo" : $('#pop_certMemo').val()
+	}
 	console.log('params : ', params);
 	
 	if(!confirm("인증번호를 등록 하시겠습니까?")){
@@ -2096,27 +2095,133 @@
 	}
 	
 	$.ajax({
-        type: "POST",
-        url: "/uss/umt/user/insertCertPhone.do",
-        data: params,
-        dataType:'json',
-        async: false,
-        success: function (returnData) {
-
-        	console.log('returnData : ', returnData);
-        	if(returnData.status == 'OK'){
+		type: "POST",
+		url: "/uss/umt/user/insertCertPhone.do",
+		data: params,
+		dataType:'json',
+		async: false,
+		success: function (returnData) {
+			if(returnData.status == 'OK'){
 					alert(returnData.message);
 					location.reload();
-        	}else{
+			}else if(returnData.status == 'CONFLICT'){
+					alert(returnData.message);
+			}else{
 					alert("오류가 발생하였습니다.");
-        	}
+			}
 		},
-        error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
-    });
+		error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
+	});
+}
+
+//인증번호 수정
+function fn_certPhoneUdt(){
+	var mberId = $('#cashUserId').val();
+	
+	var mbtlnum = $('#pop_udt_mbtlnum').val();
+
+	var params = {
+		"mberId" : mberId
+		, "mbtlnum" : mbtlnum
+		, "certAlias" : $('#pop_udt_certAlias').val()
+		, "certMemo" : $('#pop_udt_certMemo').val()
+	}
+	console.log('params : ', params);
+	
+	if(!confirm("수정 하시겠습니까?")){
+		return false;
+	}
+
+	$.ajax({
+		type: "POST",
+		url: "/uss/umt/user/updateCertPhone.do",
+		data: params,
+		dataType:'json',
+		async: false,
+		success: function (returnData) {
+			if(returnData.status == 'OK'){
+					alert(returnData.message);
+					location.reload();
+			}else{
+					alert("오류가 발생하였습니다.");
+			}
+		},
+		error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
+	});
+}
+
+function fn_certPhoneUpdatePopOpen(mbtlnum){
+	var mberId = $('#cashUserId').val();
+	var mbtlnum = mbtlnum;
+	
+	var params = {
+		"mberId" : mberId
+		, "mbtlnum" : mbtlnum
+	}
+
+	$.ajax({
+		type: "POST",
+		url: "/uss/umt/user/findByCertPhoneInfo.do",
+		data: params,
+		dataType:'json',
+		async: false,
+		success: function (returnData) {
+		
+			console.log('returnData : ', returnData);
+			if(returnData.status == 'OK'){
+				
+				console.log('returnData.object.mbtlnum : ', returnData.object.mbtlnum);
+				$('#pop_udt_mbtlnum').val(returnData.object.mbtlnum); 
+				$('#pop_udt_certAlias').val(returnData.object.certAlias);
+				$('#pop_udt_certMemo').val(returnData.object.certMemo); 
+				
+				layerPopOpen('certPhoneUdt');
+			}else{
+					alert("오류가 발생하였습니다.");
+			}
+		},
+		error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
+	});
+	
 	
 }
 
 
+//이벤트 수정하기
+function fn_certPhoneDel(mbtlnum){
+	var mberId = $('#cashUserId').val();
+	var mbtlnum = mbtlnum;
+	
+	var params = {
+		"mberId" : mberId
+		, "mbtlnum" : mbtlnum
+	}
+	console.log('params : ', params);
+	
+	if(!confirm(mbtlnum+" 번호를 정말 삭제하시겠습니까?")){
+		return false;
+	}
+	
+	$.ajax({
+		type: "POST",
+		url: "/uss/umt/user/deleteCertPhone.do",
+		data: params,
+		dataType:'json',
+		async: false,
+		success: function (returnData) {
+		
+			console.log('returnData : ', returnData);
+			if(returnData.status == 'OK'){
+					alert(returnData.message);
+					location.reload();
+			}else{
+					alert("오류가 발생하였습니다.");
+			}
+		},
+		error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
+	});
+	
+}
 
 //이벤트 수정하기
 function fn_certPhoneDel(mbtlnum){
@@ -5202,12 +5307,16 @@
 					</div>
 					<table class="user_table_col">
 						<colgroup>
-							<col style="width:calc(70%);">
-							<col style="width:calc(30%);">
+							<col style="width:calc(20%);">
+							<col style="width:calc(20%);">
+							<col style="width:calc(45%);">
+							<col style="width:calc(15%);">
 						</colgroup>
 						<thead>
 							<tr>
 								<th>인증번호</th>
+								<th>별칭</th>
+								<th>메모</th>
 								<th>삭제</th>
 							</tr>
 						</thead>
@@ -5216,8 +5325,25 @@
 								<c:when test="${not empty mberCertPhoneList}">
 									<c:forEach var="list" items="${mberCertPhoneList}" varStatus="status">
 										<tr>
+											<c:choose>
+												<c:when test="${list.frstRegistPnttm eq '-'}">
+													<td>
+														<c:out value="${list.mbtlnum}" />
+													</td>
+												</c:when>
+												<c:otherwise>
+													<td onclick="fn_certPhoneUpdatePopOpen('${list.mbtlnum}')" style="cursor: pointer;">
+														<span style="text-decoration: underline; color: blue;">
+															<c:out value="${list.mbtlnum}" />
+														</span>
+													</td>
+												</c:otherwise>
+											</c:choose>
 											<td>
-												<c:out value="${list.mbtlnum}"/>
+												<c:out value="${list.certAlias}"/>
+											</td>
+											<td>
+												<c:out value="${list.certMemo}"/>
 											</td>
 											<td>
 											<c:choose>
@@ -5236,7 +5362,7 @@
 								</c:when>
 								<c:otherwise>
 									<tr>
-										<td colspan="2">등록된 인증번호가 없습니다.</td>
+										<td colspan="4">등록된 인증번호가 없습니다.</td>
 									</tr>
 								</c:otherwise>
 							</c:choose>
@@ -6398,13 +6524,48 @@
 			</div>
 		</div>
 		
+		<!-- 인증번호 수정 -->
+		<div class="layer_popup layer_certPhoneUdt">
+			<div class="title_box">인증번호 등록<button type="button" class="close_btn" onclick="layerPopClose(this);"></button></div>
+			<div class="layer_content">
+				<table>
+					<colgroup>
+						<col style="width:80px;">
+						<col style="width:auto;">
+					</colgroup>
+					<tbody>
+						<tr>
+							<th>인증번호</th>
+							<td>
+								<input type="text" id="pop_udt_mbtlnum" title="인증번호" maxlength="20" readonly="readonly"/>
+							</td>
+						</tr>
+						<tr>
+							<th>별칭</th>
+							<td>
+								<input type="text" id="pop_udt_certAlias" title="별칭" maxlength="50"/>
+							</td>
+						</tr>
+						<tr>
+							<th>메모</th>
+							<td>
+								<input type="text" id="pop_udt_certMemo" title="메모" maxlength="100"/>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<div class="button_box">
+					<button type="button" onclick="fn_certPhoneUdt(); return false;">인증번호 수정</button>
+				</div>
+			</div>
+		</div>
 		<!-- 인증번호 등록 -->
 		<div class="layer_popup layer_certPhoneReg">
 			<div class="title_box">인증번호 등록<button type="button" class="close_btn" onclick="layerPopClose(this);"></button></div>
 			<div class="layer_content">
 				<table>
 					<colgroup>
-						<col style="width:150px;">
+						<col style="width:80px;">
 						<col style="width:auto;">
 					</colgroup>
 					<tbody>
@@ -6414,10 +6575,21 @@
 								<input type="text" id="pop_mbtlnum" title="인증번호" maxlength="20"  oninput="this.value=this.value.replace(/[^0-9]/g,'')"/>
 							</td>
 						</tr>
+						<tr>
+							<th>별칭</th>
+							<td>
+								<input type="text" id="pop_certAlias" title="별칭" maxlength="50"/>
+							</td>
+						</tr>
+						<tr>
+							<th>메모</th>
+							<td>
+								<input type="text" id="pop_certMemo" title="메모" maxlength="100"/>
+							</td>
+						</tr>
 					</tbody>
 				</table>
 				<div class="button_box">
-<!-- 					<button type="button" onclick="fnEventEdit(); return false;">인증번호 등록</button> -->
 					<button type="button" onclick="fn_certPhoneReg(); return false;">인증번호 등록</button>
 				</div>
 			</div>
src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp
--- src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp
@@ -197,7 +197,7 @@
 			    		data.mberCertPhoneList.forEach(function(item) {
 			    			$select.append($('<option>', {
 			    				value: item.mbtlnum, // option의 value 값
-			    				text: item.mbtlnum  // option의 화면에 보이는 텍스트
+			    				text: item.mbtlnum+'('+item.certAlias+')'  // option의 화면에 보이는 텍스트
 			    			}));
 			    		});
 			    	  
Add a comment
List