JIWOO 2025-08-08
Merge branch '5102_친구톡_발송속도_개선' into 5361_알림톡_환불수정
@9384b6776cbfee56d990b32f569f1af25bfcc977
src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
@@ -1820,8 +1820,19 @@
 		    , a.failCount
 		    , a.kakaoResendSuccCount
 		    , a.kakaoResendFailCount
-		    , a.successCount * bkp.BIZ_KAKAO_AT_PRICE                                        AS successPrice
-		    , (a.smsCnt      * bkp.BIZ_SMS_PRICE) + (a.mmsCnt * bkp.BIZ_MMS_PRICE)			 AS kakaoResendSuccPrice
+		    <!-- , a.successCount * bkp.BIZ_KAKAO_AT_PRICE                                        AS successPrice -->
+		    ,case
+	           when a.msgType = '8' then a.successCount * bkp.BIZ_KAKAO_AT_PRICE
+	           when a.msgType = '9' and a.bizKakaoImageType = 'I' then a.successCount * bkp.BIZ_KAKAO_FT_IMG_PRICE
+	           when a.msgType = '9' and a.bizKakaoImageType = 'W' then a.successCount * bkp.BIZ_KAKAO_FT_WIDE_IMG_PRICE
+	           when a.msgType = '9' and a.bizKakaoImageType != 'I' and a.bizKakaoImageType != 'W' then a.successCount * bkp.BIZ_KAKAO_FT_PRICE
+	       end successPrice
+		    <!-- , (a.smsCnt      * bkp.BIZ_SMS_PRICE) + (a.mmsCnt * bkp.BIZ_MMS_PRICE)			 AS kakaoResendSuccPrice -->
+		    ,case
+	           when a.msgType = '8' then (a.smsCnt * bkp.BIZ_SMS_PRICE) + (a.mmsCnt * bkp.BIZ_MMS_PRICE)
+	           when a.msgType = '9' and (a.bizKakaoImageType = 'I' or a.bizKakaoImageType = 'W') then a.mmsCnt * bkp.BIZ_PICTURE_PRICE
+	           when a.msgType = '9' and a.bizKakaoImageType != 'I' and a.bizKakaoImageType != 'W' then (a.smsCnt * bkp.BIZ_SMS_PRICE) + (a.mmsCnt * bkp.BIZ_MMS_PRICE)
+           end kakaoResendSuccPrice
 		    , a.divideYn
 		    , a.bizKakaoResendYn
 		    , MKPI.YELLOW_ID AS yellowId
@@ -1947,6 +1958,7 @@
 					, MD.BIZ_KAKAO_RESEND_YN as bizKakaoResendYn
 					, MD.MSG_NOTICETALK_SENDER_KEY
 					, MD.MSG_NOTICETALK_TMP_KEY
+					, MGD.BIZ_KAKAO_IMAGE_TYPE                                        as bizKakaoImageType
 				FROM     MJ_MSG_DATA MD
 		        inner join MJ_MSG_GROUP_DATA MGD on
 					MGD.MSG_GROUP_ID = MD.MSG_GROUP_ID
src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
@@ -65,21 +65,20 @@
 		
 	});
 	
-	//웹링크 버튼명 
+// 웹링크 버튼명 변경 시 미리보기에도 적용 (여러 개일 때 정확하게)
 	$(document).on('keyup', '#btnNmWeb', function(){
-		var inputTxt = $(this).val();
-		if(!inputTxt){
-			inputTxt = '웹링크';
-		}
-		$('#btnViewWL').text(inputTxt);
+		var inputTxt = $(this).val() || '웹링크';
+		// 웹링크용 인풋만 골라서 현재 인덱스를 구함
+		var $webNmInputs = $('input#btnNmWeb');
+		var idx = $webNmInputs.index(this);
+		// 미리보기 영역의 웹링크 버튼들 중, 동일한 인덱스의 버튼 텍스트를 바꿔줌
+		$('.btnViewArea .btn_kakao_type.btnEmpty[id^=btnViewWL]').eq(idx).text(inputTxt);
 	});
-	//앱링크 버튼명 
 	$(document).on('keyup', '#btnNmApp', function(){
-		var inputTxt = $(this).val();
-		if(!inputTxt){
-			inputTxt = '앱링크';
-		}
-		$('#btnViewAL').text(inputTxt);
+		var inputTxt = $(this).val() || '앱링크';
+		var $appNmInputs = $('input#btnNmApp');
+		var idx = $appNmInputs.index(this);
+		$('.btnViewArea .btn_kakao_type.btnEmpty[id^=btnViewAL]').eq(idx).text(inputTxt);
 	});
 
 	$(".friend_talk_wrap #ad_Y").click(function () {
@@ -166,6 +165,7 @@
 			$('#sendFailImg').hide();
 			$('#sendFailImgSrc').attr('src', '');
 			$('#atchFileId').val('');
+			thisFnByteString($('#smsTxtArea').val());
 		}
 		
 		
@@ -179,6 +179,19 @@
 	resultLatestMsgList();
 	//자주보내는 번호
 	resultBookMarkMsgList();
+	
+	
+	
+
+	// 대체문자 초기화
+	$('#failCheckInit').on('click', function(){
+		console.log('::failCheckInit::');
+		$('#smsTxtArea').val('');
+		thisFnByteString('');
+		
+	 });
+	 
+	
 	
 });
 
@@ -649,6 +662,11 @@
 					// 대체문자
 					$('#sendFailImg').show();
 					$('#sendFailImgSrc').attr('src', returnData.object.imgUrl);
+					// 대체문자 포토형으로 수정 
+// 					$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
+// 					$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
+// 					$('.put_left').addClass('photo'); 
+					setSendFailTemplate('P')
 				}
 
 			} else {
@@ -677,6 +695,25 @@
 	
 	//첨부파일 이름 및 데이터 지워주기 - 완료 후 팝업이 자동으로 닫힘.
 	$("#imgFile").val("");
+}
+
+function setSendFailTemplate(p_type){
+	if(p_type == 'P'){
+		// 대체문자 포토형으로 수정 
+		$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
+		$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
+		$('.put_left').addClass('photo'); 
+
+		$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
+		$('.msg_com').removeClass("msg_long"); //단문 클래스 삭제하고
+		$('.msg_com').addClass("msg_photo"); //단문 클래스 삭제하고
+		
+
+		$('#limitLeng').html("2000");
+		$('.msg_com').html("그림");
+		
+	}
+	
 }
 
 function fnImageDel(){
@@ -1447,39 +1484,50 @@
 	//문자 길이 변수에 저장해주기
 // 	$('#smsLen').val(conLeng);
 	
+	var imgType = $('#sendFailImgSrc').attr('src');
 	
-	if(conLeng > 90){
+	
+	if(imgType != null && "" != imgType){
+
+		setSendFailTemplate('P')
+	}
+	else if(conLeng > 90){
 		
-		$('#msgLeng').html(conLeng + " / ");
 		$('#limitLeng').html("2000");
 		$('.msg_com').html("장문");
 		$('#msgType').val("6"); // 메세지 타입 설정
 		
 		$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
 		$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
+		$('.put_left').removeClass("photo"); //내용 입력 박스 클래스 삭제
 		$('.msg_com').addClass("msg_long"); // 장문 클래스 삽입
 		$("#subMsgType").val("LMS");
 		
 	}else{
 		
-		$('#msgLeng').html(conLeng + " / ");
 		$('#limitLeng').html("90");
 		$('.msg_com').html("단문");
 		$('#msgType').val("4"); // 메세지 타입 설정
+		
 		$('.msg_com').removeClass("msg_long"); //단문 클래스 삭제하고
 		$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
+		$('.put_left').removeClass("photo"); //내용 입력 박스 클래스 삭제
 		$('.msg_com').addClass("msg_short"); // 장문 클래스 삽입
 		$("#subMsgType").val("SMS");
 		
 	}
+	
+	$('#msgLeng').html(conLeng + " / ");
 	totalFtPriceSum(tableL.getRows().length);
 		
 }
 
 function msgSuccessClose(obj){
-	$(obj).closest('.pop_msg_success').attr('style','');
-	location.reload(true);
-	$('html').scrollTop(0);
+// 	$(obj).closest('.pop_msg_success').attr('style','');
+// 	location.reload(true);
+// 	$('html').scrollTop(0);
+
+	location.href = '/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgDataView.do';
 }
 
 function getFtImageType(imgChk){
@@ -1638,7 +1686,7 @@
 		<!-- // tab button -->
 		<div class="top_content kakaotalksend_cont current pay_tab_wrap">
 			<div class="heading">
-				<h2>친구톡 전송</h2>
+				<h2>친구톡 전송</h2><!-- KakaoFriendsTalkMsgDataView -->
 <!-- 				<button type="button" class="button info">친구톡 사용방법</button> -->
 				<button type="button" class="button info" onclick="infoListPop('friendTalkSend','792','340');">사용안내</button>
 			</div>
src/main/webapp/publish/js/content.js
--- src/main/webapp/publish/js/content.js
+++ src/main/webapp/publish/js/content.js
@@ -1699,8 +1699,8 @@
 				+'<input type="text" id="btnNmBotChg" name="buttonVOList[' + buttonCnt + '].name" value="" placeholder="버튼명 입력(최대 14자)"></dd><dd><button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button></dd></dl>';
 		buttonView = '<button type="button" class="btn_kakao_type btnEmpty" id="btnViewBT">챗봇전환</button>';
 	} else {}
-	$(".button_add_wrap").prepend(buttonText);
-	$(".btnViewArea").prepend(buttonView);
+	$(".button_add_wrap").append(buttonText);
+	$(".btnViewArea").append(buttonView);
 }
 
 //관리자 카카오톡 알림톡 샘플 템플릿 등록 - 버튼 추가
Add a comment
List