이준호 이준호 2025-08-11
[사용자] 문자전송 > 주소록에 등록 시 기존 휴대폰번호 중복 정제 불가 및 등록속도 관련 확인요청
http://pms.iten.co.kr:9999/issues/5374
@a53b2e0805982500b452596cdfb7d538e6f27554
src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
@@ -569,10 +569,8 @@
 			on A.ADDR_GRP_ID = mag.ADDR_GRP_ID 
 		WHERE
 			A.MBER_ID = #mberId#
-			AND (A.RECV_STATUS = 'Y'
-				or A.RECV_STATUS = 'S'
-				or A.RECV_STATUS is null)
-			AND mag.DELETE_YN = 'N'
+			AND (A.RECV_STATUS IN ('Y', 'S') OR A.RECV_STATUS IS NULL)
+			AND (A.ADDR_GRP_ID IS NULL OR MAG.DELETE_YN = 'N')
 	</select>
 	
 	<!-- 주소록 상세  조회 -->
@@ -1354,34 +1352,32 @@
 			, BOOKMARK
 			, RECV_STATUS
 		) 
-		SELECT 
-			ADDR_GRP_ID
-			, MBER_ID
-			, ADDR_NM
-			, ADDR_PHONE_NO
-			, ADDR_INFO1
-			, ADDR_INFO2
-			, ADDR_INFO3
-			, ADDR_INFO4
-			, ADDR_COMMENT
-			, FRST_REGIST_PNTTM
-			, FRST_REGISTER_ID
-			, LAST_UPDT_PNTTM
-			, LAST_UPDUSR_ID
-			, DELETE_YN
-			, BOOKMARK
-			, RECV_STATUS
-		FROM TEMP_MJ_ADDR
-		WHERE MBER_ID = #mberId#
-			AND ADDR_GRP_ID = #addrGrpId# 
-			AND BOOKMARK = #bookmark# 
-			AND ADDR_PHONE_NO NOT IN 
-			(
-				SELECT ADDR_PHONE_NO FROM MJ_ADDR 
-				WHERE MBER_ID = #mberId#
-					AND ADDR_GRP_ID = #addrGrpId# 
-					AND BOOKMARK = #bookmark# 
-			)  
+		SELECT t.ADDR_GRP_ID,
+		       t.MBER_ID,
+		       t.ADDR_NM,
+		       FN_GETHYPHEN(t.ADDR_PHONE_NO),
+		       t.ADDR_INFO1,
+		       t.ADDR_INFO2,
+		       t.ADDR_INFO3,
+		       t.ADDR_INFO4,
+		       t.ADDR_COMMENT,
+		       t.FRST_REGIST_PNTTM,
+		       t.FRST_REGISTER_ID,
+		       t.LAST_UPDT_PNTTM,
+		       t.LAST_UPDUSR_ID,
+		       t.DELETE_YN,
+		       t.BOOKMARK,
+		       t.RECV_STATUS
+		FROM TEMP_MJ_ADDR AS t
+		         LEFT JOIN MJ_ADDR AS m
+		                   ON m.MBER_ID = t.MBER_ID
+		                       AND m.ADDR_GRP_ID = t.ADDR_GRP_ID
+		                       AND m.BOOKMARK = t.BOOKMARK
+		                       AND replace(m.ADDR_PHONE_NO, '-', '') = replace(t.ADDR_PHONE_NO, '-', '')
+		WHERE t.MBER_ID =     #mberId#
+		  AND t.ADDR_GRP_ID = #addrGrpId#
+		  AND t.BOOKMARK =    #bookmark#
+		  AND m.MBER_ID IS NULL
 	</insert>	
 		
 	
src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
@@ -112,16 +112,17 @@
 	//	return;
 	//}
 	
-	if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사
-		if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사
-			
+	if(!isValidPhoneNumber(form.addrPhoneNo.value)){//일반전화 유효성 검사
+		const formattedNumber =formatPhoneNumber(form.addrPhoneNo.value); // 번호 표준화
+		if(!isValidPhoneNumber(formattedNumber)){
 			alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다.");
 			return false;
-			
 		}
-		
 	}
 	
+	//휴대폰번호 포맷 맞추기
+	form.addrPhoneNo.value = formatPhoneNumber(form.addrPhoneNo.value);
+	
 	var data = new FormData(form);
 
 	$.ajax({
Add a comment
List