이호영 이호영 2025-07-23
친구톡 템플릿 불러오기 대체이미지 가능하게 수정
@5247ad68d7635aa8bf4e875d133ba430606b38ac
src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
@@ -257,10 +257,13 @@
 		@ModelAttribute("kakaoVO")  KakaoVO kakaoVO
 		, final MultipartHttpServletRequest multiRequest
 	) throws Exception {
+		
+		
 		ModelAndView modelAndView = new ModelAndView();		
 		modelAndView.setViewName("jsonView");
 		
-		log.info(" + kakaoVO.getAdFlag() :: [{}]", kakaoVO.getAdFlag()); 
+//		log.info(" + kakaoVO.getAdFlag() :: [{}]", kakaoVO.getAdFlag()); 
+		log.info(" +  ImgLink :: [{}]", kakaoVO.getImgLink()); 
 		try {
 			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
 			String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
@@ -276,17 +279,18 @@
 				kakaoVO.setLastUpdusrId(userId);
 				kakaoVO.setSendType("FT");
 				
+				/*
 				String imgUrl = kakaoVO.getTemplateImageUrl();
 				int buttonSize = kakaoVO.getButtonVOList().size();
 				
 				if(!imgUrl.equals("") || buttonSize > 0) {
-
+				
 					log.info(" + kakaoVO.getAdFlag() :: [{}]", kakaoVO.getAdFlag());
 					//json 파일 생성 처리
 					String resultJsonPath = kakaoFTJsonSave.kakaoApiJsonSave(kakaoVO);
 					kakaoVO.setBizJsonName(resultJsonPath);
 					
-				}
+				}*/
 				
 				int result = kakaoFtTemplateService.insertKakaoFriendsTemplateData(kakaoVO);
 				
src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_FT_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_FT_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_FT_SQL_Mysql.xml
@@ -37,7 +37,7 @@
 		       VALUES
 		       (	#friendId#
 		              , #userId#
-		              , #bizJsonName#
+		              , #atchFileId#
 		              , #templateName#
 		              , #imageFileName#
 		              , #templateImageUrl#
@@ -200,6 +200,7 @@
 		       A.IMAGE_TYPE                                    AS imageType,
 		       A.IMAGE_TITLE                                   AS imgTitle,
 		       A.IMAGE_LINK                                    AS imgLink,
+		       A.ATCH_FILE_ID                                  AS atchFileId,
 		       A.TEMPLATE_CONTENTS                             AS templateContent,
 		       A.AD_FLAG                                       AS adFlag,
 		       DATE_FORMAT(A.FRST_REGIST_PNTTM, '%Y-%m-%d %T') AS frstRegistPnttm,
@@ -215,6 +216,7 @@
 		               KFT.IMAGE_TYPE,
 		               KFT.IMAGE_TITLE,
 		               KFT.IMAGE_LINK,
+		               KFT.ATCH_FILE_ID,
 		               KFT.TEMPLATE_CONTENTS,
 		               KFT.AD_FLAG,
 		               KFT.FRST_REGIST_PNTTM,
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
@@ -148,21 +148,6 @@
 	});
 	
 	
-/* 	//대체문자 초기화 버튼 선택 처리
-	$("#failCheckInit").click(function(){
-		
-		$('#smsTxtArea').val("");
-		
-		// 금액 계산 fn 호출
-		totalFtPriceSum(tableL.getRows().length);
-		//fn_priceClclt();
-		// 문자 바이트수 체크
-		thisFnByteString($('#smsTxtArea').val());
-		// 에러버튼 체크 초기화
-		fn_insertErrorYN('N');
-		
-	});
- */	
 
 	// 광고포함여부 체크 이벤트
 	$("#ad_Y").click(function () {
@@ -363,6 +348,9 @@
 		// 이미지명 입력
 		$('#imgTitle').removeClass('file_none')
 						.text($('#imageFileName').val());
+		
+		
+		$('#imgLink').val($('#imgLinkTemp').val());  // 이미지 link
 		$('#imgLink').prop('disabled', true);  // 회색 처리 + 입력 불가
 		// 이미지 URL은 해당 input에 있음.
 		
@@ -377,6 +365,11 @@
 	if(imgUrl != ''){
 		$('.kakao_image').css("display", "block");
 		$("#kakaoImg").attr("src", imgUrl);
+		$("#kakaoImg").attr("src", imgUrl);
+
+		$('#sendFailImg').show();
+		$('#sendFailImgSrc').attr('src', imgUrl);
+		
 	}
 	
 	//초기 템플릿 내용 글자수 처리해주기
@@ -619,57 +612,6 @@
 				return false;
 			}
 		},
-			
-		/* 	if(returnData.result == "success") {
-				
-				var code = returnData.code;
-				var msg = returnData.msg;
-				var imgUrl = returnData.imgUrl;
-				
-				if(code == "200"){//등록 성공시 메시지 및 이미지 표시 처리
-					alert("이미지 등록이 완료 되었습니다.");
-					$("#templateImageName").val(fileName);
-					$("#templateImageUrl").val(imgUrl);
-				
-					$('.kakao_image').css("display", "block");
-					$("#kakaoImg").attr("src", imgUrl);
-					$("#imageFileName").val(fileName);
-					
-				}else if(code == "2002"){//일반 이미지 가로 세로 크기 오류 발생
-					
-					alert("권장 이미지 사이즈는  가로 720px 세로 720px(가로:세로 비율이 2:1 아닐 경우, 가로 500px, 세로 250px 이하일 경우 업로드 불가), 최대용량 500KB 입니다.");
-					
-					//첨부파일 정보를 지워준다.
-					$("#imgFile").val("");
-				    $("#imgTitle").text("");  
-					return false;
-					
-				}else if(code == "405"){
-					
-					alert("권장 이미지 사이즈는  가로 800px 세로 600px(가로:세로 비율이 2:1 아닐 경우, 가로 500px, 세로 250px 이하일 경우 업로드 불가), 최대용량 2MB 입니다.");
-					
-					//첨부파일 정보를 지워준다.
-					$("#imgFile").val("");
-				    $("#imgTitle").text("");  
-					return false;
-					
-				}else{
-					
-					alert(msg);
-					
-					//첨부파일 정보를 지워준다.
-					$("#imgFile").val("");
-				    $("#imgTitle").text(""); 
-					return false;
-				}
-				
-			}else if(returnData.result == "loginFail"){
-				location.href="/web/user/login/login.do";
-			}else{
-				alert("이미지 등록 중 오류가 발생하였습니다.!!!");
-				return false;
-			}
-		}, */
 		beforeSend : function(xmlHttpRequest) {
         	//로딩창 show
         	$('.loading_layer').addClass('active');				
@@ -893,10 +835,18 @@
 	//bizForm.yellowId.value = yellowId;
 	bizForm.templateName.value = inputTemplateName;
 	//bizForm.imageType.value = imageType;
-	//bizForm.imgLink.value = imageLink;
+	
+	bizForm.imgLink.value = imageLink;
+	console.log('imageLink : ', imageLink);
+	console.log('bizForm.imgLink.value : ', bizForm.imgLink.value);
+	
 	bizForm.templateContent.value = inputTemplateContent;
 	
 	var data = new FormData(bizForm);
+	data.append("imgLink", imageLink);
+	data.forEach((value, key) => {
+		console.log(key, value);
+	});
 	
 	if(confirm("템플릿을 저장하시겠습니까?")){
 		
@@ -1626,6 +1576,7 @@
 			<input type="hidden" id="longPrice" value="<c:out value='${sendPrice.longPrice}' />"> <!-- mms 단가  -->
 			<input type="hidden" id="shortPrice" value="<c:out value='${sendPrice.shortPrice}' />"> <!-- sms 단가  -->
 			<input type="hidden" id="picturePrice" value="<c:out value='${sendPrice.picturePrice}' />"> <!-- sms 단가  -->
+			<input type="hidden" id="imgLinkTemp" name="imgLinkTemp" value="<c:out value='${resultTemplateVO.imgLink}'/>"/>
 			
 			<form id="bizForm" name="bizForm" method="multipart/form-data">
 				<input type="hidden" id="menuTopTab" name="menuTopTab" value="tabFriend">
@@ -1639,7 +1590,7 @@
 				<input type="hidden" id="templateContent" name="templateContent" value=""/>
 				
 				<!-- 이미지 있을때 대체문자 발송 참고 이미지 -->
-				<input type="hidden" id="atchFileId" name="atchFileId" value=""/>
+				<input type="hidden" id="atchFileId" name="atchFileId" value="<c:out value='${resultTemplateVO.atchFileId}'/>"/>
 				
 				<!-- 예약발송 여부 -->
 				<input type="hidden" id="reserveYn" name="reserveYn" value="N"/>
Add a comment
List