rosewiper 2024-01-29
Merge branch 'master' into kakaoFT
@48582b616d609996196f91c49902fc0a4d679a32
src/main/java/itn/com/cmm/util/MJUtil.java
--- src/main/java/itn/com/cmm/util/MJUtil.java
+++ src/main/java/itn/com/cmm/util/MJUtil.java
@@ -279,6 +279,14 @@
     	return beforeMonthDay;
     }
     
+    public static String getBefore1DayDate() throws Exception {
+    	Calendar mon = Calendar.getInstance();    
+    	mon.add(Calendar.DAY_OF_MONTH , -1);    
+    	String beforeMonthDay = new java.text.SimpleDateFormat("yyyy-MM-dd").format(mon.getTime());    
+   	
+    	return beforeMonthDay;
+    }
+    
     public static void main(String args[]) throws Exception {
     	System.out.println(new Date(System.currentTimeMillis()));
     	System.out.println(checkHpNum("070-85326650"));
src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
--- src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
@@ -241,7 +241,7 @@
 		
 		// 기간검색 설정
     	String toDay = MJUtil.getTodayDate();	//오늘    
-    	String beforeMonthDay = MJUtil.getBefore1MonthDate();	//한달 전        
+    	String beforeMonthDay = MJUtil.getBefore1DayDate();	//하루 전        
     	if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) {
     		searchVO.setNtceBgnde(beforeMonthDay);
     		//searchVO.setNtceEndde(toDay); 
@@ -1206,9 +1206,13 @@
 		searchVO.setReserveYn("Y");
 		searchVO.setReserveCYn("N");//예약 취소건은 보여주지 않는다.
 		
-		// 기간검색 설정
+		/*
+		 * 2024.01.26 우영두 변경
+		 * 기존 한달전 시작일자 지정에서 하루전으로 변경
+		 * 데이터 양이 너무 많이 검색되어 하루전으로 변경해 달라는 기획팀 요청
+		 * */ 
     	String toDay = MJUtil.getTodayDate();	//오늘    
-    	String beforeMonthDay = MJUtil.getBefore1MonthDate();	//한달 전        
+    	String beforeMonthDay = MJUtil.getBefore1DayDate();	//하루 전        
     	if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) {
     		searchVO.setNtceBgnde(beforeMonthDay);
     		//searchVO.setNtceEndde(toDay); 
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
@@ -3166,6 +3166,7 @@
 		, pay.fileName3                                                 AS fileName3
 		, pay.orderByCode                                               AS orderByCode
 		, pay.msgId                                                     AS msgId
+		, pay.reqDate 													AS reqDate
 	FROM
 	(
 		SELECT
@@ -3194,6 +3195,7 @@
 			, M.fileName3		AS fileName3 
 			, M.orderByCode		AS orderByCode
 			, M.msgId			AS msgId
+			, M.reqDate			AS reqDate
 		FROM
 			(SELECT
 				 DATE_FORMAT(B.REGDATE, '%Y-%m-%d %H:%i' )	AS regDate
@@ -3266,6 +3268,7 @@
 			, ""                                                              AS fileName3
 			, ""                                            				  AS orderByCode
 			, pf.SEQ                                                          AS msgId
+			, DATE_FORMAT(pf.ReqDate, '%Y-%m-%d %H:%i' )					  AS reqDate
 		FROM
 			pgi_faxtran pf
 			LEFT JOIN mj_fax_group_data mjf
@@ -3306,12 +3309,12 @@
 		</isNotEmpty>
 		<isNotEmpty property="startDate">
 			<![CDATA[ 
-				AND DATE_FORMAT(pay.regDate, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d')
+				AND DATE_FORMAT(pay.reqDate, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d')
 			]]>
 		</isNotEmpty>
 		<isNotEmpty property="endDate">
 			<![CDATA[
-				AND	DATE_FORMAT(pay.regDate, '%Y-%m-%d')  <=  DATE_FORMAT(#endDate#, '%Y-%m-%d')
+				AND	DATE_FORMAT(pay.reqDate, '%Y-%m-%d')  <=  DATE_FORMAT(#endDate#, '%Y-%m-%d')
 			]]>
 		</isNotEmpty>
 		
@@ -3493,9 +3496,10 @@
 	
 	<!-- 사용자 요금 사용내역 Sum 리스트 -->
 	<select id="mjonMsgDAO.selectPayUserSumList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">		
+		/* 2024.01.26 검색 기준을 regdate 에서 reqdate로 기준을 잡자고 장건영팀장 요청으로 변경처리 */
 		SELECT
-			MAX(DATE_FORMAT(M.REGDATE, '%Y-%m-%d' )) AS maxRegDate
-			, MIN(DATE_FORMAT(M.REGDATE, '%Y-%m-%d' )) AS minRegDate 
+			MAX(DATE_FORMAT(M.REQ_DATE, '%Y-%m-%d' )) AS maxRegDate
+			, MIN(DATE_FORMAT(M.REQ_DATE, '%Y-%m-%d' )) AS minRegDate 
 			, M.msgTypeName
 			, M.orderByCode
 			, SUM(IF(M.msgTypeName = '단문(SMS)', 1, 0)) AS shtSendCount 
@@ -3510,6 +3514,7 @@
 		FROM (
 			SELECT 
 				B.REGDATE
+				, B.REQ_DATE
 				, B.MSG_GROUP_CNT
 				, (B.EACH_PRICE * B.MSG_GROUP_CNT) AS supplyPrice
 				, B.EACH_PRICE
src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
@@ -65,7 +65,9 @@
 		
 		//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다.
 		tableL.clearData(); //기존 받는사람 목록을 삭제.
-		tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		//tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		tableL.addData(getSpupDupliPhoneDataChk(tableData)); // 속도 개선된 중복 검사 호출
+		
 		_fileForm2 = []; //form file data 초기화
 		_fileIdx = 0;	//form file idx 초기화
 		
@@ -2429,7 +2431,9 @@
         url: url,
         data: data,
         dataType:'json',
-        async: false,
+        async: true,
+        processData: false,
+        contentType: false,
         cache: false,
         success: function (returnData, status) {
 			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
@@ -2467,7 +2471,17 @@
 				alert("주소록 불러오기에 실패하였습니다. !!");
 			}
 		},
-        error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
+        error: function (e) { 
+        	alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); 
+        },
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		}
     });
 	
 }
src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
@@ -2564,13 +2564,14 @@
         url: url,
         data: data,
         dataType:'json',
-        async: false,
+        async: true,
+        processData: false,
+        contentType: false,
         cache: false,
         success: function (returnData, status) {
 			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
 				
 				if(returnData.result == "success"){
-					
 					var addrList = returnData.resultAddrList;
 					var tableData = [];
 					
@@ -2580,14 +2581,12 @@
 						tableAddr.setData(tableData);
 						return false;
 					}
-					
 					//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
 					for(var i=0; i < addrList.length; i++){
 						
 						tableData.push({addrGroupNm: addrList[i].addrGrpNm, addrPhone: removeDash(addrList[i].addrPhoneNo) , addrName: addrList[i].addrNm, addrRep1: addrList[i].addrInfo1, addrRep2: addrList[i].addrInfo2, addrRep3: addrList[i].addrInfo3, addrRep4: addrList[i].addrInfo4});
 						
 					}
-					
 					//우측 주소록 리스트 Tabulator에 입력해주기
 					tableAddr.setData(tableData);
 					
@@ -2602,7 +2601,17 @@
 				alert("주소록 불러오기에 실패하였습니다. !!");
 			}
 		},
-        error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
+        error: function (e) { 
+        	alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); 
+        },
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		}
     });
 	
 }
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
@@ -65,7 +65,9 @@
 		
 		//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다.
 		tableL.clearData(); //기존 받는사람 목록을 삭제.
-		tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		//tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		tableL.addData(getSpupDupliPhoneDataChk(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		
 		_fileForm2 = []; //form file data 초기화
 		_fileIdx = 0;	//form file idx 초기화
 		
@@ -2688,7 +2690,9 @@
         url: url,
         data: data,
         dataType:'json',
-        async: false,
+        async: true,
+        processData: false,
+        contentType: false,
         cache: false,
         success: function (returnData, status) {
 			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
@@ -2726,7 +2730,17 @@
 				alert("주소록 불러오기에 실패하였습니다. !!");
 			}
 		},
-        error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
+        error: function (e) { 
+        	alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); 
+        },
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		}
     });
 	
 }
src/main/webapp/js/MJUtill.js
--- src/main/webapp/js/MJUtill.js
+++ src/main/webapp/js/MJUtill.js
@@ -575,6 +575,7 @@
 
 //중복 전화번호 체크하기
 function dupliPhoneData(data){
+	
 	var chk = true; //중복값 유무
 	var uniqData = []; // 중복값 삭제 후 데이터 저장
 	var dupCnt = 0;
@@ -622,6 +623,23 @@
 	return uniqData;
 }
 
+
+//연락처 중복검사 속도 개선 버전
+function getSpupDupliPhoneDataChk(data){
+	
+	var dataLen = data.length;
+	const arrUnique = data.filter((character, idx, arr)=>{
+	    return arr.findIndex((item) => item.phone === character.phone) === idx
+	});
+
+	var uniqLen = arrUnique.length;
+	var dupCnt = dataLen - uniqLen;
+	//중복건수 텍스트 입력해 주기
+	$("#rowDupCnt").text(dupCnt);
+	
+	return arrUnique;
+}
+
 // Get 중복 연락처 
 function GetDupliPhoneDataReal(item) {
 	var isDuplicate = false;
Add a comment
List