카카오 친구톡 테스트 발송 팝업 및 발송 처리 개발
@feb9d37202add0e1cbf5f1fe446b9e0343ce8a1b
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
... | ... | @@ -661,4 +661,56 @@ |
| 661 | 661 |
return modelAndView; |
| 662 | 662 |
} |
| 663 | 663 |
|
| 664 |
+ /** |
|
| 665 |
+ * @Method Name : kakaoFriendsTalkMsgSendRefundTestAjax |
|
| 666 |
+ * @작성일 : 2024. 1. 18. |
|
| 667 |
+ * @작성자 : 우영두 |
|
| 668 |
+ * @Method 설명 : 카카오 친구톡 전송 환불 스케줄러 서비스 테스트 |
|
| 669 |
+ */ |
|
| 670 |
+ @RequestMapping(value= {"/web/mjon/kakao/friendstalk/selectKakaoFriendsTalkTestSendPopup.do"})
|
|
| 671 |
+ public String selectKakaoFriendsTalkTestSendPopup(ModelMap model |
|
| 672 |
+ , @ModelAttribute("kakaoVO") KakaoVO kakaoVO) throws Exception {
|
|
| 673 |
+ |
|
| 674 |
+ |
|
| 675 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 676 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 677 |
+ if(userId == "") {
|
|
| 678 |
+ return "redirect:/web/user/login/login.do"; |
|
| 679 |
+ }else {
|
|
| 680 |
+ //1.시스템 기본 단가 정보 불러오기 |
|
| 681 |
+ JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); |
|
| 682 |
+ |
|
| 683 |
+ //2.사용자 개인 단가 정보 불러오기 |
|
| 684 |
+ MberManageVO mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
|
| 685 |
+ Float kakaoFtPrice = mberManageVO.getKakaoFtPrice(); |
|
| 686 |
+ |
|
| 687 |
+ if(kakaoFtPrice < 1) {
|
|
| 688 |
+ kakaoFtPrice = sysJoinSetVO.getKakaoFtPrice(); |
|
| 689 |
+ } |
|
| 690 |
+ |
|
| 691 |
+ BigDecimal userMoney = new BigDecimal(mberManageVO.getUserMoney()).setScale(2, RoundingMode.HALF_EVEN); |
|
| 692 |
+ model.addAttribute("userMoney", userMoney);
|
|
| 693 |
+ model.addAttribute("kakaoFtPrice", kakaoFtPrice);
|
|
| 694 |
+ } |
|
| 695 |
+ |
|
| 696 |
+ String tmpContents = kakaoVO.getTemplateContent(); |
|
| 697 |
+ String txtReplYn = kakaoVO.getTxtReplYn(); |
|
| 698 |
+ |
|
| 699 |
+ if(txtReplYn.equals("Y")) {
|
|
| 700 |
+ |
|
| 701 |
+ String[] varValStr = kakaoVO.getVarValList().get(0); |
|
| 702 |
+ tmpContents = kakaoSendUtil.getKakaoFTCntReplace(varValStr[0], tmpContents); |
|
| 703 |
+ |
|
| 704 |
+ kakaoVO.setTemplateContent(tmpContents); |
|
| 705 |
+ |
|
| 706 |
+ } |
|
| 707 |
+ |
|
| 708 |
+ System.out.println("++++++++++++++ tmpContents ::: "+tmpContents);
|
|
| 709 |
+ |
|
| 710 |
+ model.addAttribute("kakaoVO", kakaoVO);
|
|
| 711 |
+ |
|
| 712 |
+ return "web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataTestPop"; |
|
| 713 |
+ } |
|
| 714 |
+ |
|
| 715 |
+ |
|
| 664 | 716 |
} |
--- src/main/webapp/WEB-INF/decorators.xml
+++ src/main/webapp/WEB-INF/decorators.xml
... | ... | @@ -183,6 +183,7 @@ |
| 183 | 183 |
<pattern>*/web/pop/*</pattern> |
| 184 | 184 |
<pattern>/web/mjon/kakao/template/selectKakaoAlimtalkTemplateListPopupAjax.do</pattern> |
| 185 | 185 |
<pattern>/web/mjon/kakao/alimtalk/selectKakaoAlimtalkTemplateDataTestPopup.do</pattern> |
| 186 |
+ <pattern>/web/mjon/kakao/friendstalk/selectKakaoFriendsTalkTestSendPopup.do</pattern> |
|
| 186 | 187 |
<pattern>/web/mjon/fax/faxSendDetailPopup.do</pattern> |
| 187 | 188 |
</decorator> |
| 188 | 189 |
|
--- src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataTestPop.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataTestPop.jsp
... | ... | @@ -134,7 +134,7 @@ |
| 134 | 134 |
<!-- 텍스트 미리보기 --> |
| 135 | 135 |
<div class="text_preview"> |
| 136 | 136 |
<div class="allimtalk_title"> |
| 137 |
- <img src="/publish/images/content/icon_allimtalk.png" alt="">친구톡 수정 |
|
| 137 |
+ <img src="/publish/images/content/icon_allimtalk.png" alt="">알림톡 도착 |
|
| 138 | 138 |
</div> |
| 139 | 139 |
<div class="allimtalk_content" id="alimtalkTemplate"> |
| 140 | 140 |
<!-- <p class="emphasis_side_text">템플릿을 선택해 주세요</p> --> |
... | ... | @@ -195,10 +195,10 @@ |
| 195 | 195 |
<!-- 텍스트 미리보기 --> |
| 196 | 196 |
|
| 197 | 197 |
<!-- //텍스트 미리보기 --> |
| 198 |
- <div class="template_info_wrap"> |
|
| 198 |
+ <!-- <div class="template_info_wrap"> |
|
| 199 | 199 |
<div class="template_byte"> |
| 200 | 200 |
</div> |
| 201 |
- </div> |
|
| 201 |
+ </div> --> |
|
| 202 | 202 |
</div> |
| 203 | 203 |
<p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다<p> |
| 204 | 204 |
</div> |
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataTestPop.jsp
... | ... | @@ -0,0 +1,221 @@ |
| 1 | +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> | |
| 2 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 3 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 4 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 5 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 6 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
| 7 | +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> | |
| 8 | +<% pageContext.setAttribute("newLineChar", "\r\n"); %> | |
| 9 | +<% pageContext.setAttribute("newLineChar2", "\n"); %> | |
| 10 | + | |
| 11 | +<script> | |
| 12 | + | |
| 13 | + function fn_testSendMsgData(){ | |
| 14 | + | |
| 15 | + var callNum = $("#callTo").val(); // 받는 전화번호 | |
| 16 | + var userMoney = $('#oriUserMoney').val(); // 사용자 금액 | |
| 17 | + var kakaoFtPrice = $('#kakaoFtPrice').val(); // 카카오전송 금액 | |
| 18 | + var resutlPrice = parseFloat(userMoney)-parseFloat(kakaoFtPrice); // 금액 확인 | |
| 19 | + | |
| 20 | + // 음수면 -1 값 | |
| 21 | + if(Math.sign(resutlPrice) < 0){ | |
| 22 | + alert("발송에 필요한 회원님의 보유 잔액이 부족 합니다."); | |
| 23 | + return false; | |
| 24 | + } | |
| 25 | + | |
| 26 | + $('#bizForm #callToList').val(callNum); | |
| 27 | + | |
| 28 | + var data = new FormData(document.bizForm); | |
| 29 | + $.ajax({ | |
| 30 | + type: "POST" | |
| 31 | + , url: "/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgSendAjax.do" | |
| 32 | + , data: data | |
| 33 | + , dataType: 'json' | |
| 34 | + , async: true | |
| 35 | + , processData: false | |
| 36 | + , contentType: false | |
| 37 | + , cache: false | |
| 38 | + , success: function (returnData, status) { | |
| 39 | + if(status == 'success'){ | |
| 40 | + if("loginFail" == returnData.result){ | |
| 41 | + | |
| 42 | + alert(returnData.message); | |
| 43 | + return false; | |
| 44 | + | |
| 45 | + }else if('fail' == returnData.result){ | |
| 46 | + | |
| 47 | + alert(returnData.message); | |
| 48 | + return false; | |
| 49 | + | |
| 50 | + } else if(status == 'success'){ | |
| 51 | + alert("테스트 친구톡 전송이 완료 되었습니다.") | |
| 52 | + window.close(); | |
| 53 | + } | |
| 54 | + } | |
| 55 | + } | |
| 56 | + ,beforeSend : function(xmlHttpRequest) { | |
| 57 | + //로딩창 show | |
| 58 | + $('.loading_layer').addClass('active'); | |
| 59 | + } | |
| 60 | + ,complete : function(xhr, textStatus) { | |
| 61 | + //로딩창 hide | |
| 62 | + $('.loading_layer').removeClass('active'); | |
| 63 | + } | |
| 64 | + ,error: function (e) { | |
| 65 | + console.log("ERROR : ", e); | |
| 66 | + alert("카카오 친구톡 전송에 실패하였습니다."); | |
| 67 | + } | |
| 68 | + }); | |
| 69 | + } | |
| 70 | +</script> | |
| 71 | + | |
| 72 | + | |
| 73 | +<form id="bizForm" name="bizForm" method="post"> | |
| 74 | + <input type="hidden" id="senderKey" name="senderKey" value="<c:out value='${kakaoVO.senderKey}'/>"> <!-- 카카오 보내는 사람 Key --> | |
| 75 | + <input type="hidden" id="templateContent" name="templateContent" value="<c:out value='${kakaoVO.templateContent }'/>"> <!-- 카카오 전송 templat내용 --> | |
| 76 | + <input type="hidden" id="callToList" name="callToList" value=""> <!-- 카카오 전송 전화번호 --> | |
| 77 | + <input type="hidden" id="txtReplYn" name="txtReplYn" value="N"> <!-- 치환문자 여부 - --> | |
| 78 | + | |
| 79 | + | |
| 80 | + <input type="hidden" id="subMsgSendYn" name="subMsgSendYn" value="N"> <!-- 대체문자 전송여부 --> | |
| 81 | + <input type="hidden" id="reserveYn" name="reserveYn" value="N"> <!-- 예약문자 여부 --> | |
| 82 | + <input type="hidden" id="divideChk" name="divideChk" value="N"> <!--분할발성 체크 여부--> | |
| 83 | + <input type="hidden" id="reqDate" name="reqDate" value=""> <!--전송일자--> | |
| 84 | + | |
| 85 | + <input type="hidden" id="bizJsonYn" name="bizJsonYn" value="<c:out value='${kakaoVO.bizJsonYn}' />"> <!-- JSON 생성 여부 --> | |
| 86 | + | |
| 87 | + <input type="hidden" id="imageType" name="imageType" value="<c:out value='${kakaoVO.imageType}'/>"/> <!-- 이미지 종류 --> | |
| 88 | + <input type="hidden" id="imageFileName" name="imageFileName" value="<c:out value='${kakaoVO.imageFileName}'/>"> <!-- 이미지 파일 이름 --> | |
| 89 | + <input type="hidden" id="templateImageUrl" name="templateImageUrl" value="<c:out value='${kakaoVO.templateImageUrl}'/>"> <!-- 이미지 경로 --> | |
| 90 | + <input type="hidden" id="imgTitle" name="imgTitle" value="<c:out value='${kakaoVO.imgTitle}'/>"> <!-- 이미지 타이틀 --> | |
| 91 | + <input type="hidden" id="imgLink" name="imgLink" value="<c:out value='${kakaoVO.imgLink}'/>"> <!-- 이미지 링크정보 --> | |
| 92 | + <input type="hidden" id="adFlag" name="adFlag" value="<c:out value='${kakaoVO.adFlag}'/>"/> <!-- 광고여부 --> | |
| 93 | + | |
| 94 | + <input type="hidden" id="spamStatus" name="spamStatus" value="N"/> | |
| 95 | + <input type="hidden" id="atSmishingYn" name="atSmishingYn" value="N"/> | |
| 96 | + | |
| 97 | + <input type="hidden" id="kakaoFtPrice" value="<c:out value='${kakaoFtPrice}' />"> | |
| 98 | + <input type="hidden" id="eachPrice" name="eachPrice" value="<c:out value='${kakaoFtPrice}' />"/> | |
| 99 | + <input type="hidden" id="totPrice" name="totalPrice" value="<c:out value='${kakaoFtPrice}' />"/> | |
| 100 | + <input type="hidden" id="varValList" name="varValList" value="<c:out value='${kakaoVO.varValList}' />"/> | |
| 101 | + <!-- 버튼 정보 처리 --> | |
| 102 | + <c:forEach var="buttonList" items="${kakaoVO.buttonVOList}" varStatus="status"> | |
| 103 | + | |
| 104 | + <c:if test="${buttonList.linkType eq 'DS'}"> | |
| 105 | + <!-- 배송조회 버튼 --> | |
| 106 | + <input type="hidden" id="buttonLikeTypeDeliv" name="buttonVOList[${status.index}].linkType" value="DS"/> | |
| 107 | + <input type="hidden" id="btnNmDeliv" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>"> | |
| 108 | + </c:if> | |
| 109 | + | |
| 110 | + <c:if test="${buttonList.linkType eq 'WL'}"> | |
| 111 | + <!-- 웹링크 버튼 --> | |
| 112 | + <input type="hidden" id="buttonLikeTypeWeb" name="buttonVOList[${status.index}].linkType" value="WL"/> | |
| 113 | + <input type="hidden" id="btnNmWeb" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>"> | |
| 114 | + <input type="hidden" id="buttonLinkMo" name="buttonVOList[${status.index}].linkMo" value="<c:out value='${buttonList.linkMo}'/>"> | |
| 115 | + <input type="hidden" id="buttonLinkPc" name="buttonVOList[${status.index}].linkPc" value="<c:out value='${buttonList.linkPc}'/>"> | |
| 116 | + </c:if> | |
| 117 | + | |
| 118 | + <c:if test="${buttonList.linkType eq 'AL'}"> | |
| 119 | + <!-- 앱링크 버튼 --> | |
| 120 | + <input type="hidden" id="buttonLikeTypeApp" name="buttonVOList[${status.index}].linkType" value="AL"/> | |
| 121 | + <input type="hidden" id="btnNmApp" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>"> | |
| 122 | + <input type="hidden" id="buttonLinkAnd" name="buttonVOList[${status.index}].linkAnd" value="<c:out value='${buttonList.linkAnd}'/>"> | |
| 123 | + <input type="hidden" id="buttonLinkIos" name="buttonVOList[${status.index}].linkIos" value="<c:out value='${buttonList.linkIos}'/>"> | |
| 124 | + </c:if> | |
| 125 | + | |
| 126 | + <c:if test="${buttonList.linkType eq 'BK'}"> | |
| 127 | + <!-- 봇키워드 --> | |
| 128 | + <input type="hidden" id="buttonLikeTypeBot" name="buttonVOList[${status.index}].linkType" value="BK"/> | |
| 129 | + <input type="hidden" id="btnNmBot" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>"> | |
| 130 | + </c:if> | |
| 131 | + | |
| 132 | + <c:if test="${buttonList.linkType eq 'MD'}"> | |
| 133 | + <!-- 메시지 전달 --> | |
| 134 | + <input type="hidden" id="buttonLikeTypeMsg" name="buttonVOList[${status.index}].linkType" value="MD" /> | |
| 135 | + <input type="hidden" id="btnNmMsg" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>"> | |
| 136 | + </c:if> | |
| 137 | + | |
| 138 | + <c:if test="${buttonList.linkType eq 'BC'}"> | |
| 139 | + <!-- 상담톡 전환 --> | |
| 140 | + <input type="hidden" id="buttonLikeTypeCons" name="buttonVOList[${status.index}].linkType" value="BC" /> | |
| 141 | + <input type="hidden" id="btnNmCons" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>"> | |
| 142 | + </c:if> | |
| 143 | + | |
| 144 | + <c:if test="${buttonList.linkType eq 'BT'}"> | |
| 145 | + <!-- 챗봇전환 --> | |
| 146 | + <input type="hidden" id="buttonLikeTypeBotChg" name="buttonVOList[${status.index}].linkType" value="BT" /> | |
| 147 | + <input type="hidden" id="btnNmBotChg" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>"> | |
| 148 | + </c:if> | |
| 149 | + </c:forEach> | |
| 150 | + | |
| 151 | +</form> | |
| 152 | + | |
| 153 | +<!-- 유저 보유잔액 --> | |
| 154 | +<input type="hidden" id="oriUserMoney" value="<c:out value='${userMoney}' />"> | |
| 155 | + | |
| 156 | +<div class="test_sendpop kakao_rev_popup" style="width: 770px;"> | |
| 157 | + <div class="info_popup"> | |
| 158 | + <div class="popup_heading"> | |
| 159 | + <p>테스트 발송</p> | |
| 160 | + </div> | |
| 161 | + <div class="layer_in"> | |
| 162 | + <ul class="info_list"> | |
| 163 | + <li>테스트 발송은 친구톡을 본인에게 발송하여 친구톡 내용을 미리 확인하는 서비스 입니다.</li> | |
| 164 | + </ul> | |
| 165 | + </div> | |
| 166 | + </div> | |
| 167 | + <div class="test_wrap kakao_wrap"> | |
| 168 | + <div class="number"> | |
| 169 | + <dl> | |
| 170 | + <dt>수신번호</dt> | |
| 171 | + <dd> | |
| 172 | + <input type="text" id="callTo" name="callTo" maxlength="11" oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*)\./g, '$1');" placeholder="번호를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'"> | |
| 173 | + </dd> | |
| 174 | + </dl> | |
| 175 | + <dl class="price"> | |
| 176 | + <dt>발송금액</dt> | |
| 177 | + <dd><span>${kakaoFtPrice}</span>원</dd> | |
| 178 | + </dl> | |
| 179 | + <p class="text">발송하시겠습니까?<span>※ 친구톡 발송과 동일하게 요금이 차감됩니다.</span></p> | |
| 180 | + <button type="button" class="btnType btnType10" onclick="fn_testSendMsgData(); return false;">테스트발송</button> | |
| 181 | + </div> | |
| 182 | + <div class="phone"> | |
| 183 | + <div class="phoneIn"> | |
| 184 | + <p class="prev_p" id="prev_p_top"> | |
| 185 | + ${kakaoVO.yellowId} | |
| 186 | + </p> | |
| 187 | + <!-- 텍스트 미리보기 --> | |
| 188 | + <div class="text_preview"> | |
| 189 | + <div class="allimtalk_title"> | |
| 190 | + <img src="/publish/images/content/icon_allimtalk.png" alt="">친구톡 | |
| 191 | + </div> | |
| 192 | + <div class="allimtalk_content" id="alimtalkTemplate"> | |
| 193 | +<!-- <p class="emphasis_side_text">템플릿을 선택해 주세요</p> --> | |
| 194 | + <c:if test="${kakaoVO.imageType eq 'I' || kakaoVO.imageType eq 'W'}"> | |
| 195 | + <div class="kakao_image"> | |
| 196 | + <img src="<c:url value='${kakaoVO.templateImageUrl}'/>" alt=""> | |
| 197 | + </div> | |
| 198 | + </c:if> | |
| 199 | + <!-- 알림톡 내용 표시 --> | |
| 200 | + <p class="template_text"> | |
| 201 | + <c:out value="${fn:replace(fn:replace(kakaoVO.templateContent, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/> | |
| 202 | + </p> | |
| 203 | + | |
| 204 | + <!-- 채널 추가형을 선택한 경우 자동으로 버튼이 하나 추가됨, 버튼을 추가한 경우 버튼 정보 표시 --> | |
| 205 | + <c:forEach var="templatInfoButtonList" items="${kakaoVO.buttonVOList}" varStatus="status"> | |
| 206 | + <button type="button" class="btn_kakao_type"><c:out value="${templatInfoButtonList.name}"/></button> | |
| 207 | + </c:forEach> | |
| 208 | + </div> | |
| 209 | + </div> | |
| 210 | + <!-- 텍스트 미리보기 --> | |
| 211 | + | |
| 212 | + <!-- //텍스트 미리보기 --> | |
| 213 | + <!-- <div class="template_info_wrap"> | |
| 214 | + <div class="template_byte"> | |
| 215 | + </div> | |
| 216 | + </div> --> | |
| 217 | + </div> | |
| 218 | + <p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다<p> | |
| 219 | + </div> | |
| 220 | + </div> | |
| 221 | +</div>(No newline at end of file) |
--- src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
... | ... | @@ -785,37 +785,8 @@ |
| 785 | 785 |
|
| 786 | 786 |
//이미지 첨부 체크 |
| 787 | 787 |
var imgChk = $("input[name=img_file_add]:checked").val();
|
| 788 |
- if(imgChk == 'I' || imgChk == 'W'){
|
|
| 789 |
- |
|
| 790 |
- var imgTitle = $("#imgTitle").val();
|
|
| 791 |
- var imgLink = $("#imgLink").val();
|
|
| 792 |
- var imgFileName = $("#imageFileName").val();
|
|
| 793 |
- |
|
| 794 |
- if(imgTitle == ''){
|
|
| 795 |
- |
|
| 796 |
- alert("친구톡 이미지 제목정보를 입력해 주세요.");
|
|
| 797 |
- return false; |
|
| 798 |
- |
|
| 799 |
- } |
|
| 800 |
- |
|
| 801 |
- if(imgLink == ''){
|
|
| 802 |
- |
|
| 803 |
- alert("친구톡 이미지 선택시 이동할 링크 주소를 입력해 주세요.");
|
|
| 804 |
- return false; |
|
| 805 |
- |
|
| 806 |
- } |
|
| 807 |
- |
|
| 808 |
- if(imgFileName == ''){
|
|
| 809 |
- |
|
| 810 |
- alert("친구톡 이미지를 등록해 주세요.");
|
|
| 811 |
- return false; |
|
| 812 |
- |
|
| 813 |
- } |
|
| 814 |
- |
|
| 815 |
- $("#imageType").val(imgChk);
|
|
| 816 |
- |
|
| 817 |
- //json 파일 필요 유무 셋팅 |
|
| 818 |
- $("#bizJsonYn").val("Y");
|
|
| 788 |
+ if(!getFtImageType(imgChk)){
|
|
| 789 |
+ return false; |
|
| 819 | 790 |
} |
| 820 | 791 |
|
| 821 | 792 |
//템플릿 버튼 갯수 체크 |
... | ... | @@ -1434,6 +1405,275 @@ |
| 1434 | 1405 |
$('html').scrollTop(0);
|
| 1435 | 1406 |
} |
| 1436 | 1407 |
|
| 1408 |
+function getFtImageType(imgChk){
|
|
| 1409 |
+ |
|
| 1410 |
+ if(imgChk == 'I' || imgChk == 'W'){
|
|
| 1411 |
+ |
|
| 1412 |
+ var imgTitle = $("#imgTitle").val();
|
|
| 1413 |
+ var imgLink = $("#imgLink").val();
|
|
| 1414 |
+ var imgFileName = $("#imageFileName").val();
|
|
| 1415 |
+ |
|
| 1416 |
+ if(imgTitle == ''){
|
|
| 1417 |
+ |
|
| 1418 |
+ alert("친구톡 이미지 제목정보를 입력해 주세요.");
|
|
| 1419 |
+ return false; |
|
| 1420 |
+ |
|
| 1421 |
+ } |
|
| 1422 |
+ |
|
| 1423 |
+ if(imgLink == ''){
|
|
| 1424 |
+ |
|
| 1425 |
+ alert("친구톡 이미지 선택시 이동할 링크 주소를 입력해 주세요.");
|
|
| 1426 |
+ return false; |
|
| 1427 |
+ |
|
| 1428 |
+ } |
|
| 1429 |
+ |
|
| 1430 |
+ if(imgFileName == ''){
|
|
| 1431 |
+ |
|
| 1432 |
+ alert("친구톡 이미지를 등록해 주세요.");
|
|
| 1433 |
+ return false; |
|
| 1434 |
+ |
|
| 1435 |
+ } |
|
| 1436 |
+ |
|
| 1437 |
+ $("#imageType").val(imgChk);
|
|
| 1438 |
+ |
|
| 1439 |
+ //json 파일 필요 유무 셋팅 |
|
| 1440 |
+ $("#bizJsonYn").val("Y");
|
|
| 1441 |
+ } |
|
| 1442 |
+ |
|
| 1443 |
+ return true; |
|
| 1444 |
+ |
|
| 1445 |
+} |
|
| 1446 |
+ |
|
| 1447 |
+ |
|
| 1448 |
+function goToKakaoTestPopUp(){
|
|
| 1449 |
+ |
|
| 1450 |
+ if(loginVO == "" || loginVO == null){
|
|
| 1451 |
+ alert("테스트 발송 서비스는 로그인 후 이용 가능합니다.");
|
|
| 1452 |
+ location.href="<c:url value='/web/user/login/login.do'/>"; |
|
| 1453 |
+ return false; |
|
| 1454 |
+ } |
|
| 1455 |
+ |
|
| 1456 |
+ //기업회원 체크 |
|
| 1457 |
+ if(!usrDeptChk()){
|
|
| 1458 |
+ return false; |
|
| 1459 |
+ } |
|
| 1460 |
+ |
|
| 1461 |
+ var form = document.bizForm; |
|
| 1462 |
+ var senderKey = $("#selectAgentCode option:checked").val();
|
|
| 1463 |
+ var yellowId = $("#selectAgentCode option:checked").text();
|
|
| 1464 |
+ |
|
| 1465 |
+ if(senderKey == ''){
|
|
| 1466 |
+ alert("채널ID를 선택해 주세요.");
|
|
| 1467 |
+ return false; |
|
| 1468 |
+ }else{
|
|
| 1469 |
+ $("#inputSenderKey").val(senderKey);
|
|
| 1470 |
+ $("#yellowId").val(yellowId);
|
|
| 1471 |
+ } |
|
| 1472 |
+ |
|
| 1473 |
+ var imgChk = $("input[name=img_file_add]:checked").val();
|
|
| 1474 |
+ if(!getFtImageType(imgChk)){
|
|
| 1475 |
+ return false; |
|
| 1476 |
+ } |
|
| 1477 |
+ |
|
| 1478 |
+ //템플릿 버튼 갯수 체크 |
|
| 1479 |
+ var buttonCnt = $(".btn_kakao_type").length;
|
|
| 1480 |
+ |
|
| 1481 |
+ if(buttonCnt > 0){
|
|
| 1482 |
+ //json 파일 필요 유무 셋팅 |
|
| 1483 |
+ $("#bizJsonYn").val("Y");
|
|
| 1484 |
+ } |
|
| 1485 |
+ |
|
| 1486 |
+ //친구톡 내용 체크 |
|
| 1487 |
+ var tmpContents = $('#inputTemplateContent').val();
|
|
| 1488 |
+ |
|
| 1489 |
+ if(tmpContents == ""){
|
|
| 1490 |
+ |
|
| 1491 |
+ alert("친구톡 내용을 입력해 주세요.");
|
|
| 1492 |
+ return false; |
|
| 1493 |
+ |
|
| 1494 |
+ }else{
|
|
| 1495 |
+ |
|
| 1496 |
+ //템플릿 내용 입력 |
|
| 1497 |
+ $("#templateContent").val(tmpContents);
|
|
| 1498 |
+ |
|
| 1499 |
+ } |
|
| 1500 |
+ |
|
| 1501 |
+ var rtnStr = strChinJpnCheck(tmpContents); |
|
| 1502 |
+ |
|
| 1503 |
+ //문자내용에 이모지가 있는지 체크 |
|
| 1504 |
+ if(!emojiCheck(tmpContents)) return false; |
|
| 1505 |
+ |
|
| 1506 |
+ if(rtnStr.length > 0){
|
|
| 1507 |
+ |
|
| 1508 |
+ alert("입력하신 문구 중 \" " + rtnStr + " \" 는 일부 휴대폰에서 표기되지 않을 수 있습니다.");
|
|
| 1509 |
+ |
|
| 1510 |
+ } |
|
| 1511 |
+ |
|
| 1512 |
+ |
|
| 1513 |
+ var selectedData = tableL.getRows(); |
|
| 1514 |
+ |
|
| 1515 |
+ if(selectedData == "" || selectedData == null){
|
|
| 1516 |
+ |
|
| 1517 |
+ alert("받는사람 주소를 한 건 이상 입력해주세요.");
|
|
| 1518 |
+ return false; |
|
| 1519 |
+ |
|
| 1520 |
+ }else{
|
|
| 1521 |
+ |
|
| 1522 |
+ //치환문구 변환 |
|
| 1523 |
+ var txtReplYn = $("#txtReplYn").val();
|
|
| 1524 |
+ |
|
| 1525 |
+ if(txtReplYn == 'Y'){
|
|
| 1526 |
+ |
|
| 1527 |
+ var name = tableL.getRows()[0].getData().name; |
|
| 1528 |
+ var phone = removeDash(tableL.getRows()[0].getData().phone); |
|
| 1529 |
+ var rep1 = tableL.getRows()[0].getData().rep1; |
|
| 1530 |
+ var rep2 = tableL.getRows()[0].getData().rep2; |
|
| 1531 |
+ var rep3 = tableL.getRows()[0].getData().rep3; |
|
| 1532 |
+ var rep4 = tableL.getRows()[0].getData().rep4; |
|
| 1533 |
+ |
|
| 1534 |
+ var varValList = []; //치환문자 연결시킬 변수 셋팅 |
|
| 1535 |
+ |
|
| 1536 |
+ |
|
| 1537 |
+ var nmStatus = false; |
|
| 1538 |
+ var rep1Status = false; |
|
| 1539 |
+ var rep2Status = false; |
|
| 1540 |
+ var rep3Status = false; |
|
| 1541 |
+ var rep4Status = false; |
|
| 1542 |
+ |
|
| 1543 |
+ var varValStr = ""; |
|
| 1544 |
+ var varValStatus = true; |
|
| 1545 |
+ |
|
| 1546 |
+ |
|
| 1547 |
+ if(tmpContents.indexOf("\#{이름}") > -1){
|
|
| 1548 |
+ nmStatus = true; |
|
| 1549 |
+ } |
|
| 1550 |
+ |
|
| 1551 |
+ if(tmpContents.indexOf("\#{1}") > -1){
|
|
| 1552 |
+ rep1Status = true; |
|
| 1553 |
+ } |
|
| 1554 |
+ |
|
| 1555 |
+ if(tmpContents.indexOf("\#{2}") > -1){
|
|
| 1556 |
+ rep2Status = true; |
|
| 1557 |
+ } |
|
| 1558 |
+ |
|
| 1559 |
+ if(tmpContents.indexOf("\#{3}") > -1){
|
|
| 1560 |
+ rep3Status = true; |
|
| 1561 |
+ } |
|
| 1562 |
+ |
|
| 1563 |
+ if(tmpContents.indexOf("\#{4}") > -1){
|
|
| 1564 |
+ rep4Status = true; |
|
| 1565 |
+ } |
|
| 1566 |
+ |
|
| 1567 |
+ |
|
| 1568 |
+ if(nmStatus && (typeof(name) != 'undefined' && name != null && name !="")){
|
|
| 1569 |
+ |
|
| 1570 |
+ if(varValStr == ''){
|
|
| 1571 |
+ varValStr = name.replaceAll(",","§");
|
|
| 1572 |
+ }else{
|
|
| 1573 |
+ varValStr = varValStr + "¶" + name.replaceAll(",","§");
|
|
| 1574 |
+ } |
|
| 1575 |
+ |
|
| 1576 |
+ }else{
|
|
| 1577 |
+ |
|
| 1578 |
+ if(nmStatus){
|
|
| 1579 |
+ varValStatus = false; |
|
| 1580 |
+ } |
|
| 1581 |
+ |
|
| 1582 |
+ } |
|
| 1583 |
+ |
|
| 1584 |
+ if(varValStr == ''){
|
|
| 1585 |
+ varValStr = phone; |
|
| 1586 |
+ }else{
|
|
| 1587 |
+ varValStr = varValStr + "¶" + phone; |
|
| 1588 |
+ } |
|
| 1589 |
+ |
|
| 1590 |
+ if(rep1Status && (typeof(rep1) != 'undefined' && rep1 != null && rep1 !="")){
|
|
| 1591 |
+ |
|
| 1592 |
+ if(varValStr == ''){
|
|
| 1593 |
+ varValStr = rep1.replaceAll(",","§");
|
|
| 1594 |
+ }else{
|
|
| 1595 |
+ varValStr = varValStr + "¶" + rep1.replaceAll(",","§");
|
|
| 1596 |
+ } |
|
| 1597 |
+ |
|
| 1598 |
+ }else{
|
|
| 1599 |
+ |
|
| 1600 |
+ if(rep1Status){
|
|
| 1601 |
+ varValStatus = false; |
|
| 1602 |
+ } |
|
| 1603 |
+ |
|
| 1604 |
+ } |
|
| 1605 |
+ |
|
| 1606 |
+ |
|
| 1607 |
+ if(rep2Status && (typeof(rep2) != 'undefined' && rep2 != null && rep2 !="")){
|
|
| 1608 |
+ |
|
| 1609 |
+ if(varValStr == ''){
|
|
| 1610 |
+ varValStr = rep2.replaceAll(",","§");
|
|
| 1611 |
+ }else{
|
|
| 1612 |
+ varValStr = varValStr + "¶" + rep2.replaceAll(",","§");
|
|
| 1613 |
+ } |
|
| 1614 |
+ |
|
| 1615 |
+ }else{
|
|
| 1616 |
+ |
|
| 1617 |
+ if(rep2Status){
|
|
| 1618 |
+ varValStatus = false; |
|
| 1619 |
+ } |
|
| 1620 |
+ |
|
| 1621 |
+ } |
|
| 1622 |
+ |
|
| 1623 |
+ if(rep3Status && (typeof(rep3) != 'undefined' && rep3 != null && rep3 !="")){
|
|
| 1624 |
+ |
|
| 1625 |
+ if(varValStr == ''){
|
|
| 1626 |
+ varValStr = rep3.replaceAll(",","§");
|
|
| 1627 |
+ }else{
|
|
| 1628 |
+ varValStr = varValStr + "¶" + rep3.replaceAll(",","§");
|
|
| 1629 |
+ } |
|
| 1630 |
+ |
|
| 1631 |
+ }else{
|
|
| 1632 |
+ |
|
| 1633 |
+ if(rep3Status){
|
|
| 1634 |
+ varValStatus = false; |
|
| 1635 |
+ } |
|
| 1636 |
+ |
|
| 1637 |
+ } |
|
| 1638 |
+ |
|
| 1639 |
+ if(rep4Status && (typeof(rep4) != 'undefined' && rep4 != null && rep4 !="")){
|
|
| 1640 |
+ |
|
| 1641 |
+ if(varValStr == ''){
|
|
| 1642 |
+ varValStr = rep4.replaceAll(",","§");
|
|
| 1643 |
+ }else{
|
|
| 1644 |
+ varValStr = varValStr + "¶" + rep4.replaceAll(",","§");
|
|
| 1645 |
+ } |
|
| 1646 |
+ |
|
| 1647 |
+ }else{
|
|
| 1648 |
+ |
|
| 1649 |
+ if(rep4Status){
|
|
| 1650 |
+ varValStatus = false; |
|
| 1651 |
+ } |
|
| 1652 |
+ |
|
| 1653 |
+ } |
|
| 1654 |
+ |
|
| 1655 |
+ if(!varValStatus){
|
|
| 1656 |
+ |
|
| 1657 |
+ alert("특정문구 일괄변환에 대한 일부 데이터가 누락된 부분이 있습니다. 데이터를 확인해 주세요.");
|
|
| 1658 |
+ return false; |
|
| 1659 |
+ |
|
| 1660 |
+ } |
|
| 1661 |
+ |
|
| 1662 |
+ varValList[0] = varValStr; |
|
| 1663 |
+ |
|
| 1664 |
+ $("#varValList").val(varValList);
|
|
| 1665 |
+ } |
|
| 1666 |
+ |
|
| 1667 |
+ } |
|
| 1668 |
+ |
|
| 1669 |
+ form.method = "post"; |
|
| 1670 |
+ window.open("about:blank", 'testSendPop', 'width=770, height=850, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 1671 |
+ form.target = "testSendPop"; |
|
| 1672 |
+ form.action = "/web/mjon/kakao/friendstalk/selectKakaoFriendsTalkTestSendPopup.do"; |
|
| 1673 |
+ form.submit(); |
|
| 1674 |
+} |
|
| 1675 |
+ |
|
| 1676 |
+ |
|
| 1437 | 1677 |
</script> |
| 1438 | 1678 |
|
| 1439 | 1679 |
<!-- 로딩바 --> |
... | ... | @@ -1508,6 +1748,8 @@ |
| 1508 | 1748 |
|
| 1509 | 1749 |
<!-- 친구톡 발송 json 파일 필요 유무 --> |
| 1510 | 1750 |
<input type="hidden" id="bizJsonYn" name="bizJsonYn" value="N"/> |
| 1751 |
+ |
|
| 1752 |
+ <input type="hidden" id="yellowId" name="yellowId" value=""/> |
|
| 1511 | 1753 |
|
| 1512 | 1754 |
|
| 1513 | 1755 |
<div class="send_general friend_talk_wrap kakao_wrap"> |
... | ... | @@ -2109,7 +2351,7 @@ |
| 2109 | 2351 |
<button type="button" class="btnType btnType11" onclick="javascript:fn_noTimeSend(); return false;">발송하기</button> |
| 2110 | 2352 |
</c:otherwise> |
| 2111 | 2353 |
</c:choose> |
| 2112 |
- <button type="button" class="btnType btnType10" onclick="javascript:fnTestSend(); return false;">테스트발송</button> |
|
| 2354 |
+ <button type="button" class="btnType btnType10" onclick="javascript:goToKakaoTestPopUp(); return false;">테스트발송</button> |
|
| 2113 | 2355 |
</div> |
| 2114 | 2356 |
</div> |
| 2115 | 2357 |
<div class="rev_selected" > |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?