이호영 이호영 2025-01-09
테스트문자 개선 완료
@2ad5dec494dae5e5520f50b499de1f9d0bdd593f
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
@@ -4155,11 +4155,16 @@
 		}
 
 		// 분할 최대건수가 되면 디비에 입력하기
+		// 여러시도 했지만 일단 보류
+		// 무시해도 됨
 //		int instCnt = mjonMsgDataDAO.insertMsgDataInfo_advc(mjonMsgSendVOList);
 //		int instCnt = mjonMsgDataDAO.insertMsgDataInfo_jdbc_advc(mjonMsgSendVOList);
 
 		// 총 발송 건수
 		returnMap.put("resultSts", instTotalCnt);
+		
+		// TEST발송 시 발송 후 캐시가 있어야함.
+		returnMap.put("afterCash", priceAndPoint.getBefCash(userId));
 		log.debug("총 단가 합계: [{}]", mjonMsgVO.getTotPrice());
 //		
 
src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
@@ -3447,6 +3447,8 @@
 		    @RequestBody MjonMsgVO mjonMsgVO,
 		    HttpServletRequest request,
 	        ModelMap model) throws Exception {
+		System.out.println(" :: sendMsgData_advc :: ");
+		
 
 	    // 디버깅 출력
 //	    System.out.println("mjonMsgVO : " + mjonMsgVO.getMjonMsgSendVOList().toString());
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
@@ -3354,7 +3354,7 @@
 
 	if($('#nowMsgType').text() == "그림"){
 		
-		msgType = 'P';
+		msgType = '6';
 		
 		if(imgFilePath.length == 1) {
 		
@@ -3380,7 +3380,7 @@
 
 	}else if($('#nowMsgType').text() == "장문"){
 		
-		msgType = 'L';
+		msgType = '6';
 		
 		form.eachPrice.value = '<c:out value="${longPrice}" />';
 		
@@ -3393,7 +3393,7 @@
 		
 	}else{
 		
-		msgType = 'S';
+		msgType = '4';
 		
 		form.eachPrice.value = '<c:out value="${shortPrice}" />';
 		
src/main/webapp/WEB-INF/jsp/web/pop/testSmsSendPop.jsp
--- src/main/webapp/WEB-INF/jsp/web/pop/testSmsSendPop.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pop/testSmsSendPop.jsp
@@ -134,7 +134,8 @@
 		
 		//광고, 선거문자 후처리
 		var msgKind = form.msgKind.value;
-		form.smsTxt.value = $(".preview_auto").find("pre").text();
+// 		form.smsTxt.value = $(".preview_auto").find("pre").text();
+		form.smsTxtArea.value = $(".preview_auto").find("pre").text();
 		/* if(msgKind == 'A') {	//광고
 			var adTxt = $('.ad_tit').text();
 			var denyTxt = $('.deny_receipt').text();
@@ -180,6 +181,10 @@
 		];
 		// 기존 callToList 제거
 		delete formData.callToList;
+
+		 // 빈 값 제거
+		 removeEmptyValues(formData);
+		
 		// JSON 데이터 확인
 	 	console.log("최종 formData:", JSON.stringify(formData, null, 4));
 		
@@ -191,70 +196,68 @@
 		// url = "/web/mjon/msgdata/sendMsgDataAjax.do";
 		var url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
 		
+		
 		$.ajax({
-	        type: "POST",
-	        url: url,
-	        data: JSON.stringify(formData),
-	        dataType:'json',
-	        // async: false,
-	        // processData: false,
-	        // contentType: false,
-	        // cache: false,
-	        success: function (returnData, status) {
-	        	if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
-					if("fail" == returnData.result){
-						
-						alert(returnData.message);
-						return false;
-						
-					}else if("loginFail" == returnData.result){
-						
-						alert(returnData.message);
-						return false;
-							
-					}else if("smsLengFail" == returnData.result){
-						
-						alert(returnData.message);
-						return false;
-							
-					}else if("imgSourceFail" == returnData.result){
-						alert(returnData.message);
-					}else{
-						var resultCnt = returnData.resultSts;
-						var resultBlockCnt = returnData.resultBlockSts;
-						//차단한 번호 제외하고 발송건수가 1 미만인 경우는 발송이 안된 것
-						if(resultCnt < 1) {
-							alert("테스트 문자가 발송되지 않았습니다. \n"+ resultBlockCnt + "건의 번호가 수신거부 상태입니다.");
-						} else if (resultCnt >= 1) {
-							alert("테스트 문자가 발송되었습니다.");
-						}
-						
-						//내 충전금액 변경해 주기 - 헤더, 충전금액 두군데 수정
-						var afterCash = opener.numberWithCommas(returnData.afterCash);
-						//$("#hdUserMoney").text(afterCash); // 헤더 보유잔액 부분
-						//$("#spUserMoney").text(afterCash); // 문자발송 내 충전금
-						//$("#userMoney").attr('placeholder', afterCash);  // 문자발송 내 충전금
-						
-						$("#hdUserMoney",opener.document).text(afterCash); // 헤더 보유잔액 부분
-						$("#spUserMoney",opener.document).text(afterCash); // 문자발송 내 충전금
-						$("#userMoney",opener.document).text(afterCash);  // 문자발송 내 충전금
-						$("#userMoney",opener.document).attr('placeholder', afterCash);  // 문자발송 내 충전금
-						
-						window.close();
-						
+			type: "POST",
+			url: url,
+			data: JSON.stringify(formData),
+			contentType: 'application/json',
+			dataType:'json',
+			// async: false,
+			// processData: false,
+			// contentType: false,
+			// cache: false,
+			success: function (data) {
+					
+
+				var status = data.status;
+				if("OK" == status){
+
+					var resultCnt = Number(data.object.resultSts);
+					var resultBlockCnt = Number(data.object.resultBlockSts);
+					
+					
+					//차단한 번호 제외하고 발송건수가 1 미만인 경우는 발송이 안된 것
+					if(resultCnt < 1) {
+						alert("테스트 문자가 발송되지 않았습니다. \n"+ resultBlockCnt + "건의 번호가 수신거부 상태입니다.");
+					} else if (resultCnt >= 1) {
+						alert("테스트 문자가 발송되었습니다.");
 					}
 					
-				} else if(status== 'fail'){
-					alert(returnData.message);
+					//내 충전금액 변경해 주기 - 헤더, 충전금액 두군데 수정
+					var afterCash = opener.numberWithCommas(data.object.afterCash);
+					
+					$("#hdUserMoney",opener.document).text(afterCash); // 헤더 보유잔액 부분
+					$("#spUserMoney",opener.document).text(afterCash); // 문자발송 내 충전금
+					$("#userMoney",opener.document).text(afterCash);  // 문자발송 내 충전금
+					$("#userMoney",opener.document).attr('placeholder', afterCash);  // 문자발송 내 충전금
+					
+					window.close();
+				}else{
+					alert(data.message);
+					return false;
 				}
+				
 			},
-	        error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
+	        error: function (xhr, status, error) { 
+	        	alert("문자 발송에 실패하였습니다.");
+				console.log("상태:", status);
+				console.log("에러:", error);
+				console.log("응답:", xhr.responseText);}
 	    });
 		
 	}
 	
 }
 
+//빈 값이나 null 값을 제거하는 함수
+function removeEmptyValues(obj) {
+    Object.keys(obj).forEach(function(key) {
+        if (obj[key] === null || obj[key] === '') {
+            delete obj[key];
+        }
+    });
+}
 </script>
 <form id="msgForm" name="msgForm" method="post">
 	<input type="hidden" id="msgKind" name="msgKind" value="${searchVO.msgKind}" /><!-- 문자종류(일반:N, 광고:A , 선거:C,관리자:S) -->
@@ -274,7 +277,7 @@
 	<input type="hidden" id="imgCnt" value="0" />
 	<input type="hidden" id="templateYn" name="templateYn" value="" />
 	<input type="hidden" id="templateYnAdvc" name="templateYnAdvc" value="" />
-	<input type="hidden" id="smsTxt" name="smsTxt" value=""/><!-- 문자발송 문자 내용 -->
+	<input type="hidden" id="smsTxtArea" name="smsTxtArea" value=""/><!-- 문자발송 문자 내용 -->
 	<input type="hidden" id="myPrice" name="myPrice" value="<c:out value="${userMoney}"/>"/><!-- 보유 캐시금액 -->
 	<input type="hidden" id="txtReplYn" name="txtReplYn" value="N"/><!-- 변환문자 유무 -->
 	<!-- <input type="hidden" id="shortMsgCnt" name="shortMsgCnt" value="0"/> --><!-- 단문 변환문자 건수  -->
src/main/webapp/js/web/msgdata/msgDataView.js
--- src/main/webapp/js/web/msgdata/msgDataView.js
+++ src/main/webapp/js/web/msgdata/msgDataView.js
@@ -1229,8 +1229,6 @@
 	
 	// JSON 데이터 확인
  	console.log("최종 formData:", JSON.stringify(formData));
-	// 
-	return false;
 	
 	var url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
 	 // 시작 시간
@@ -1239,7 +1237,6 @@
 	
 	 // 프로그래스파 시간을 위한 계산
 	var estimtedTime = calculateEstimatedTime($selectedData.length);
-	console.log('estimtedTime  : ', estimtedTime);
 	
 	 
 	$.ajax({
@@ -1250,23 +1247,7 @@
 		dataType: 'json',
 		success: function (data) {
 			
-			// 요청 종료 시간 및 경과 시간 계산
-			/*const endTime = new Date();
-			const elapsed = (endTime - startTime) / 1000; // 밀리초 -> 초로 변환
-			console.log('AJAX 요청 성공, 경과 시간 : ', elapsed);
-			if (elapsed >= 60) {
-				const minutes = Math.floor(elapsed / 60); // 분 계산
-				const seconds = Math.floor(elapsed % 60); // 초 계산
-				console.log('AJAX 요청 성공, 경과 시간 : ' + minutes + '분 ' + seconds + '초');
-			} else {
-				console.log('AJAX 요청 성공, 경과 시간 : ' + elapsed + '초');
-			}
-			*/
-			
-			
 			console.log('data : ', data);
-			/*  message:"특정문구 일괄변환 치환문자 데이터가 없습니다."
-				status:"BAD_REQUEST" */
 			
 			var status = data.status;
 			if("OK" == status){
@@ -1287,16 +1268,7 @@
 					
 					var reserYn = $("input[name=reserYn]:checked").val(); 
 					var resText = (reserYn === 'Y') ? '예약' : '발송';
-					/* 
-					if(reserYn == 'Y')
-					{
-						resText = "예약";
-					}
-					else
-					{
-						resText = "발송";
-					} 
-					*/
+
 					$('.pop_msg_success .msg_text').html(resText+" 성공 : <strong>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 "+resText+" 되었습니다.");
 					
 					$('.mask').addClass('on');
@@ -1327,18 +1299,12 @@
 		},
 		beforeSend : function(xmlHttpRequest) {
 			// 프로그래스 바 실행
-			// 프로그래스 바 실행
 			progressStart(estimtedTime);
-			//로딩창 show
-// 			$('.loading_layer').addClass('active');
 		},
 		complete : function(xhr, textStatus) {
 
 			// 프로그래스 바 종료
-			// 프로그래스 바 종료
 			progressComplete();;
-// 			로딩창 hide
-// 			$('.loading_layer').removeClass('active');
 		},
 		error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
 	});
Add a comment
List