--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
... | ... | @@ -5707,6 +5707,56 @@ |
| 5707 | 5707 |
return "/web/pop/testSendPop"; |
| 5708 | 5708 |
} |
| 5709 | 5709 |
|
| 5710 |
+ |
|
| 5711 |
+ |
|
| 5712 |
+ /* 테스트 발송 팝업 */ |
|
| 5713 |
+ @RequestMapping(value="/web/pop/testSmsSendPop.do") |
|
| 5714 |
+ public String testSmsSendPop(@ModelAttribute("searchVO") MjonMsgDataVO searchVO, HttpServletRequest request, Model model) throws Exception {
|
|
| 5715 |
+ |
|
| 5716 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 5717 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 5718 |
+ String author = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority()); |
|
| 5719 |
+ |
|
| 5720 |
+ String msgpreview = request.getParameter("msgpreview");
|
|
| 5721 |
+ String mmsSubject = request.getParameter("mmsSubject");
|
|
| 5722 |
+ String callFrom = request.getParameter("callFrom");
|
|
| 5723 |
+ String eachPrice = request.getParameter("eachPrice");
|
|
| 5724 |
+ model.addAttribute("msgpreview", msgpreview);
|
|
| 5725 |
+ model.addAttribute("mmsSubject", mmsSubject);
|
|
| 5726 |
+ model.addAttribute("callFrom", callFrom);
|
|
| 5727 |
+ model.addAttribute("eachPrice", eachPrice);
|
|
| 5728 |
+ model.addAttribute("searchVO", searchVO);
|
|
| 5729 |
+ |
|
| 5730 |
+ MberManageVO mberManageVO = new MberManageVO(); |
|
| 5731 |
+ |
|
| 5732 |
+ if(!userId.equals("") && !author.equals("ROLE_ADMIN")) {
|
|
| 5733 |
+ |
|
| 5734 |
+ mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
|
| 5735 |
+ searchVO.setUserId(userId); |
|
| 5736 |
+ |
|
| 5737 |
+ } |
|
| 5738 |
+ |
|
| 5739 |
+ //3.사용자 개인단가 정보가 0이 아니면 개인단가 사용, 없으면 시스템 기본 단가 사용 |
|
| 5740 |
+ BigDecimal userMoney = new BigDecimal(mberManageVO.getUserMoney()).setScale(2, RoundingMode.HALF_EVEN); |
|
| 5741 |
+ String userPoint = mberManageVO.getUserPoint(); |
|
| 5742 |
+ |
|
| 5743 |
+ model.addAttribute("mberManageVO", mberManageVO);
|
|
| 5744 |
+ model.addAttribute("userMoney", userMoney);
|
|
| 5745 |
+ model.addAttribute("userPoint", userPoint);
|
|
| 5746 |
+ |
|
| 5747 |
+ //0.이벤트 진행중이 회원 정보 불러오기. |
|
| 5748 |
+ //이벤트 회원 정보 테이블에서 대상자의 정보를 불러온다. |
|
| 5749 |
+ MjonEventVO mjonEventVO = new MjonEventVO(); |
|
| 5750 |
+ mjonEventVO.setMberId(userId); |
|
| 5751 |
+ MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); |
|
| 5752 |
+ |
|
| 5753 |
+ model.addAttribute("eventMberInfo", eventMberInfo);
|
|
| 5754 |
+ |
|
| 5755 |
+// return "/web/pop/testSendPop"; |
|
| 5756 |
+ return "/web/pop/testSmsSendPop"; |
|
| 5757 |
+ } |
|
| 5758 |
+ |
|
| 5759 |
+ |
|
| 5710 | 5760 |
/** |
| 5711 | 5761 |
* 문자 발송 - 엑셀파일 불러오기 |
| 5712 | 5762 |
* @param body |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
... | ... | @@ -3424,7 +3424,7 @@ |
| 3424 | 3424 |
form.msgKind.value = "N"; |
| 3425 | 3425 |
} |
| 3426 | 3426 |
|
| 3427 |
- form.action = "/web/pop/testSendPop.do"; |
|
| 3427 |
+ form.action = "/web/pop/testSmsSendPop.do"; |
|
| 3428 | 3428 |
form.method = "post"; |
| 3429 | 3429 |
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');
|
| 3430 | 3430 |
form.target = "testSendPop"; |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
... | ... | @@ -28,8 +28,8 @@ |
| 28 | 28 |
</script> |
| 29 | 29 |
|
| 30 | 30 |
|
| 31 |
-<script type="text/javascript" src="<c:url value='/js/web/msgdata/init.js?date=20241218'/>"></script> |
|
| 32 | 31 |
<script type="text/javascript" src="<c:url value='/js/web/msgdata/msgDataView.js?date=20241218'/>"></script> |
| 32 |
+<script type="text/javascript" src="<c:url value='/js/web/msgdata/init.js?date=20241218'/>"></script> |
|
| 33 | 33 |
|
| 34 | 34 |
|
| 35 | 35 |
|
+++ src/main/webapp/WEB-INF/jsp/web/pop/testSmsSendPop.jsp
... | ... | @@ -0,0 +1,318 @@ |
| 1 | +<%@ page contentType="text/html; charset=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 | +<script type="text/javascript" src="<c:url value='/js/txtSpecialReplace.js?date=202209210001'/>"></script> | |
| 9 | +<script type="text/javascript" src="<c:url value='/js/MJUtill.js'/>"></script> | |
| 10 | + | |
| 11 | +<script> | |
| 12 | +$(document).ready(function (){ | |
| 13 | + | |
| 14 | + var phoneIn = $(".send_right .phone", opener.document).html(); | |
| 15 | + //팝업으로 보내기 전에 realtime class 삭제 - 스크립트 제외 | |
| 16 | + phoneIn = phoneIn.replace(' class="realtime"',""); | |
| 17 | + | |
| 18 | + // DOM 구조로 변환 | |
| 19 | + var tempDiv = document.createElement("div"); | |
| 20 | + tempDiv.innerHTML = phoneIn; | |
| 21 | + | |
| 22 | + // 미리보기 영역 삭제 | |
| 23 | + var realtimeElement = tempDiv.querySelector(".preview_util"); | |
| 24 | + if (realtimeElement) { | |
| 25 | + realtimeElement.remove(); | |
| 26 | + } | |
| 27 | + | |
| 28 | + // 최종 수정된 HTML 반환 | |
| 29 | + phoneIn = tempDiv.innerHTML.trim(); | |
| 30 | + | |
| 31 | + | |
| 32 | + $("#phonePreview").html(phoneIn) | |
| 33 | + | |
| 34 | +}); | |
| 35 | + | |
| 36 | +//문자발송 처리 함수 | |
| 37 | +function fn_testSendMsgData(){ | |
| 38 | + var form = document.msgForm; | |
| 39 | + | |
| 40 | + //회원 보유 잔액 비교 | |
| 41 | + var totPriceOnly = stringReplaceAll(form.totPrice.value, ",", ""); | |
| 42 | + var userMoneyOnly = stringReplaceAll(form.myPrice.value, ",", ""); | |
| 43 | + if(parseFloat(userMoneyOnly) < parseFloat(totPriceOnly)){ | |
| 44 | + alert("문자 발송에 필요한 회원님의 보유 잔액이 부족 합니다."); | |
| 45 | + return false; | |
| 46 | + } | |
| 47 | + | |
| 48 | + //이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요. | |
| 49 | + var eventStatus = form.eventStatus.value; | |
| 50 | + var eventRemainCash = parseFloat(form.eventRemainCash.value); | |
| 51 | + | |
| 52 | + if(eventStatus == 'Y'){ | |
| 53 | + | |
| 54 | + if(parseFloat(eventRemainCash) < parseFloat(totPriceOnly)){ | |
| 55 | + | |
| 56 | + alert("고객님의 이벤트 캐시 잔액은 " + eventRemainCash + "원으로 입력하신 수량의 문자를 전부 발송할 수 없습니다. 잔액 이하로 발송건수를 재설정하시기 바랍니다."); | |
| 57 | + return false; | |
| 58 | + } | |
| 59 | + | |
| 60 | + //이벤트 발송 문자 종류로 셋팅 | |
| 61 | + form.eventYn.value = "Y"; //이벤트문자 종류 설정 | |
| 62 | + | |
| 63 | + } | |
| 64 | + | |
| 65 | + if(confirm("테스트 문자를 전송하시겠습니까?")){ | |
| 66 | + var imgFilePath = []; | |
| 67 | + var imgFileId = []; | |
| 68 | + var templateYn = []; | |
| 69 | +// $('.thumb_wrap').find('.thumb_img').each(function(idx, el) { | |
| 70 | + $('.preiew_img').find('.preBoxF').each(function(idx, el) { | |
| 71 | + var imgSrc = $(el).find("img").attr("src"); | |
| 72 | + //if($(el).hasClass("edit_y")) { | |
| 73 | + //에디터에서 넘어온 이미지인지 확인, 해당 문자열이 없으면 -1 반환 | |
| 74 | + if(imgSrc.indexOf('base64') > 0) { | |
| 75 | + | |
| 76 | + //이미지 변환 | |
| 77 | + const imgBase64 = $(el).find("img").attr("src"); | |
| 78 | + const decodImg = atob(imgBase64.split(',')[1]); // base64~ 부분을 제외하고 데이터 디코딩 | |
| 79 | + | |
| 80 | + | |
| 81 | + let array = []; | |
| 82 | + for (let i = 0; i < decodImg.length; i++) { | |
| 83 | + array.push(decodImg.charCodeAt(i)); | |
| 84 | + } | |
| 85 | + | |
| 86 | + const file = new Blob([new Uint8Array(array)], {type: 'image/jpeg'}); | |
| 87 | + const fileName = 'canvas_img_' + new Date().getMilliseconds() + '.jpg'; | |
| 88 | + let formData = new FormData(); | |
| 89 | + formData.append('file', file, fileName); | |
| 90 | + | |
| 91 | + $.ajax({ | |
| 92 | + type: 'post', | |
| 93 | + url: '/web/mjon/msgdata/insertEditImageAjax.do', | |
| 94 | + cache: false, | |
| 95 | + data: formData, | |
| 96 | + dataType:'json', | |
| 97 | + processData: false, | |
| 98 | + contentType: false, | |
| 99 | + async: false, | |
| 100 | + success: function (returnData, status) { | |
| 101 | + if(status == 'success'){ | |
| 102 | + // imgFilePath 에 배열로 담아주기(이미지 순서대로) | |
| 103 | + //console.log(imgFilePath); | |
| 104 | + imgFilePath.push(returnData.filefullPath); | |
| 105 | + imgFileId.push(returnData.atchFileId); | |
| 106 | + templateYn.push('N'); | |
| 107 | + } else if(status== 'fail'){ | |
| 108 | + alert(returnData.message); | |
| 109 | + } | |
| 110 | + }, | |
| 111 | + error: function (e) { alert("이미지 업로드에 실패하였습니다."); console.log("ERROR : ", e); } | |
| 112 | + }); | |
| 113 | + | |
| 114 | + } else { | |
| 115 | + | |
| 116 | + var fileId = imgSrc.substring(imgSrc.indexOf("=")+1, imgSrc.indexOf("&")); | |
| 117 | + //에디터 안거친 템플릿 이미지면 바로 src 때림 | |
| 118 | + imgFilePath.push(imgSrc); | |
| 119 | + | |
| 120 | + imgFileId.push(fileId); | |
| 121 | + templateYn.push('Y'); | |
| 122 | + } | |
| 123 | + }); | |
| 124 | + | |
| 125 | + form.templateYnAdvc.value = templateYn; // 템플릿 사용여부 담아주기 | |
| 126 | + form.imgFilePathAdvc.value = imgFilePath; // 저장한 이미지 경로 담아주기 | |
| 127 | + form.imgFileIdAdvc.value = imgFileId; | |
| 128 | +// form.templateYn.value = templateYn; // 템플릿 사용여부 담아주기 | |
| 129 | +// form.imgFilePath.value = imgFilePath; // 저장한 이미지 경로 담아주기 | |
| 130 | +// form.imgFileId.value = imgFileId; | |
| 131 | + | |
| 132 | + form.callFrom.value = removeDash(form.callFrom.value); // 발신번호 대쉬(-) 문자 없애주기 | |
| 133 | + form.reserveYn.value = "N"; // 즉시 / 예약 문자 선택 여부 | |
| 134 | + | |
| 135 | + //광고, 선거문자 후처리 | |
| 136 | + var msgKind = form.msgKind.value; | |
| 137 | + form.smsTxt.value = $(".preview_auto").find("pre").text(); | |
| 138 | + /* if(msgKind == 'A') { //광고 | |
| 139 | + var adTxt = $('.ad_tit').text(); | |
| 140 | + var denyTxt = $('.deny_receipt').text(); | |
| 141 | + | |
| 142 | + form.smsTxt.value = adTxt + $(".preview_auto").find("pre").text() + '\n' + denyTxt + " "; //광고 문구 뒤에 공백을 붙이게되므로, 뒤에 한칸 추가하여 바이트수를 맞춤 | |
| 143 | + | |
| 144 | + } else if (msgKind == 'C') { //선거문자 | |
| 145 | + var adTxt = ''; | |
| 146 | + var denyTxt = ''; | |
| 147 | + var adverYn = opener.document.msgForm.send_adYn.value; | |
| 148 | + | |
| 149 | + //선거문자 20건 발송에서는 선거 필수문구가 필수가 아니어서 선거문자 필수 문구가 있는지 체크하여 처리함.20231214 추가 | |
| 150 | + if(adverYn == 'Y'){ | |
| 151 | + adTxt = $('.ad_tit').text(); | |
| 152 | + denyTxt = $('.deny_receipt').html(); | |
| 153 | + denyTxt = denyTxt.replaceAll("<br>","\n"); | |
| 154 | + } | |
| 155 | + | |
| 156 | + form.smsTxt.value = adTxt + '\n' + $(".preview_auto").find("pre").text() + '\n' + denyTxt; | |
| 157 | + | |
| 158 | + } else { //일반문자 | |
| 159 | + form.smsTxt.value = $(".preview_auto").find("pre").text(); | |
| 160 | + } */ | |
| 161 | + | |
| 162 | + console.log('form : ',form) | |
| 163 | + | |
| 164 | + | |
| 165 | + // 폼 데이터를 배열로 직렬화 | |
| 166 | + var form = $('#msgForm'); | |
| 167 | + var formDataArray = form.serializeArray(); | |
| 168 | + | |
| 169 | + // 배열을 객체로 변환 | |
| 170 | + var formData = {}; | |
| 171 | + $.each(formDataArray, function(index, field) { | |
| 172 | + formData[field.name] = field.value; | |
| 173 | + }); | |
| 174 | + | |
| 175 | + | |
| 176 | + formData.mjonMsgSendVOList = [ | |
| 177 | + { | |
| 178 | + phone: formData.callToList | |
| 179 | + } | |
| 180 | + ]; | |
| 181 | + // 기존 callToList 제거 | |
| 182 | + delete formData.callToList; | |
| 183 | + // JSON 데이터 확인 | |
| 184 | + console.log("최종 formData:", JSON.stringify(formData, null, 4)); | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | +// return false; | |
| 190 | +// var data = new FormData(form); | |
| 191 | + // url = "/web/mjon/msgdata/sendMsgDataAjax.do"; | |
| 192 | + var url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do"; | |
| 193 | + | |
| 194 | + $.ajax({ | |
| 195 | + type: "POST", | |
| 196 | + url: url, | |
| 197 | + data: JSON.stringify(formData), | |
| 198 | + dataType:'json', | |
| 199 | + // async: false, | |
| 200 | + // processData: false, | |
| 201 | + // contentType: false, | |
| 202 | + // cache: false, | |
| 203 | + success: function (returnData, status) { | |
| 204 | + if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 | |
| 205 | + if("fail" == returnData.result){ | |
| 206 | + | |
| 207 | + alert(returnData.message); | |
| 208 | + return false; | |
| 209 | + | |
| 210 | + }else if("loginFail" == returnData.result){ | |
| 211 | + | |
| 212 | + alert(returnData.message); | |
| 213 | + return false; | |
| 214 | + | |
| 215 | + }else if("smsLengFail" == returnData.result){ | |
| 216 | + | |
| 217 | + alert(returnData.message); | |
| 218 | + return false; | |
| 219 | + | |
| 220 | + }else if("imgSourceFail" == returnData.result){ | |
| 221 | + alert(returnData.message); | |
| 222 | + }else{ | |
| 223 | + var resultCnt = returnData.resultSts; | |
| 224 | + var resultBlockCnt = returnData.resultBlockSts; | |
| 225 | + //차단한 번호 제외하고 발송건수가 1 미만인 경우는 발송이 안된 것 | |
| 226 | + if(resultCnt < 1) { | |
| 227 | + alert("테스트 문자가 발송되지 않았습니다. \n"+ resultBlockCnt + "건의 번호가 수신거부 상태입니다."); | |
| 228 | + } else if (resultCnt >= 1) { | |
| 229 | + alert("테스트 문자가 발송되었습니다."); | |
| 230 | + } | |
| 231 | + | |
| 232 | + //내 충전금액 변경해 주기 - 헤더, 충전금액 두군데 수정 | |
| 233 | + var afterCash = opener.numberWithCommas(returnData.afterCash); | |
| 234 | + //$("#hdUserMoney").text(afterCash); // 헤더 보유잔액 부분 | |
| 235 | + //$("#spUserMoney").text(afterCash); // 문자발송 내 충전금 | |
| 236 | + //$("#userMoney").attr('placeholder', afterCash); // 문자발송 내 충전금 | |
| 237 | + | |
| 238 | + $("#hdUserMoney",opener.document).text(afterCash); // 헤더 보유잔액 부분 | |
| 239 | + $("#spUserMoney",opener.document).text(afterCash); // 문자발송 내 충전금 | |
| 240 | + $("#userMoney",opener.document).text(afterCash); // 문자발송 내 충전금 | |
| 241 | + $("#userMoney",opener.document).attr('placeholder', afterCash); // 문자발송 내 충전금 | |
| 242 | + | |
| 243 | + window.close(); | |
| 244 | + | |
| 245 | + } | |
| 246 | + | |
| 247 | + } else if(status== 'fail'){ | |
| 248 | + alert(returnData.message); | |
| 249 | + } | |
| 250 | + }, | |
| 251 | + error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); } | |
| 252 | + }); | |
| 253 | + | |
| 254 | + } | |
| 255 | + | |
| 256 | +} | |
| 257 | + | |
| 258 | +</script> | |
| 259 | +<form id="msgForm" name="msgForm" method="post"> | |
| 260 | + <input type="hidden" id="msgKind" name="msgKind" value="${searchVO.msgKind}" /><!-- 문자종류(일반:N, 광고:A , 선거:C,관리자:S) --> | |
| 261 | + <input type="hidden" id="msgType" name="msgType" value="${searchVO.msgType}" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 --> | |
| 262 | + <input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 --> | |
| 263 | + <input type="hidden" id="imgFilePathAdvc" name="imgFilePathAdvc" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 --> | |
| 264 | + <input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 --> | |
| 265 | + <input type="hidden" id="imgFileIdAdvc" name="imgFileIdAdvc" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 --> | |
| 266 | + <input type="hidden" id="fileCnt" name="fileCnt" value="0" /><!-- 첨부파일 추가 갯수 --> | |
| 267 | + <input type="hidden" id="mmsSubject" name="mmsSubject" value="${mmsSubject}"/> <!-- mms 제목 --> | |
| 268 | + <input type="hidden" id="callFrom" name="callFrom" value="${callFrom}"/> <!-- 발신자 전화번호 --> | |
| 269 | + <input type="hidden" id="eachPrice" name="eachPrice" value="${eachPrice}"/> <!-- 문자 개별 단가 금액 --> | |
| 270 | + <input type="hidden" id="totPrice" name="totPrice" value="${eachPrice}"/> <!-- 총 결제 금액 --> | |
| 271 | + <input type="hidden" id="smsLen" name="smsLen" value="0"/> <!-- 문자 길이 정보 --> | |
| 272 | + <input type="hidden" id="reserveYn" name="reserveYn" value="N"/> <!-- 즉시/예약 선택여부 --> | |
| 273 | + <input type="hidden" id="reqDate" name="reqDate" value=""/><!-- 예약문자 날짜 --> | |
| 274 | + <input type="hidden" id="imgCnt" value="0" /> | |
| 275 | + <input type="hidden" id="templateYn" name="templateYn" value="" /> | |
| 276 | + <input type="hidden" id="templateYnAdvc" name="templateYnAdvc" value="" /> | |
| 277 | + <input type="hidden" id="smsTxt" name="smsTxt" value=""/><!-- 문자발송 문자 내용 --> | |
| 278 | + <input type="hidden" id="myPrice" name="myPrice" value="<c:out value="${userMoney}"/>"/><!-- 보유 캐시금액 --> | |
| 279 | + <input type="hidden" id="txtReplYn" name="txtReplYn" value="N"/><!-- 변환문자 유무 --> | |
| 280 | + <!-- <input type="hidden" id="shortMsgCnt" name="shortMsgCnt" value="0"/> --><!-- 단문 변환문자 건수 --> | |
| 281 | + <!-- <input type="hidden" id="longMsgCnt" name="longMsgCnt" value="0"/> --><!-- 장문 변환문자 건수 --> | |
| 282 | + | |
| 283 | + | |
| 284 | + <!-- 이벤트 관련 변수 --> | |
| 285 | + <input type="hidden" id="eventStatus" name="eventStatus" value="<c:out value='${eventMberInfo.eventStatus}'/>"/> | |
| 286 | + <input type="hidden" id="eventRemainCash" name="eventRemainCash" value="<c:out value='${eventMberInfo.eventRemainCash}'/>"/> | |
| 287 | + <input type="hidden" id="eventYn" name="eventYn" value="N"/> | |
| 288 | + | |
| 289 | + <div class="test_sendpop"> | |
| 290 | + <div class="info_popup"> | |
| 291 | + <div class="popup_heading"> | |
| 292 | + <p>테스트 발송</p> | |
| 293 | + </div> | |
| 294 | + <div class="layer_in"> | |
| 295 | + <ul class="info_list"> | |
| 296 | + <li>테스트 발송은 문자를 본인에게 발송하여 문자내용을 미리 확인하는 서비스 입니다.</li> | |
| 297 | + </ul> | |
| 298 | + </div> | |
| 299 | + </div> | |
| 300 | + <div class="test_wrap"> | |
| 301 | + <div class="number"> | |
| 302 | + <dl> | |
| 303 | + <dt>수신번호</dt> | |
| 304 | + <dd><input type="text" name="callToList" id="callToList" value="${mberManageVO.moblphonNo}"/></dd> | |
| 305 | + </dl> | |
| 306 | + <dl class="price"> | |
| 307 | + <dt>발송금액</dt> | |
| 308 | + <dd><span>${eachPrice}</span>원</dd> | |
| 309 | + </dl> | |
| 310 | + <p class="text">발송하시겠습니까?<span>※ 문자 발송과 동일하게 요금이 차감됩니다.</span></p> | |
| 311 | + <button type="button" class="btnType btnType10" onclick="fn_testSendMsgData(); return false;">테스트발송</button> | |
| 312 | + </div> | |
| 313 | + <div class="phone" id="phonePreview"></div> | |
| 314 | + </div> | |
| 315 | + | |
| 316 | + </div> | |
| 317 | + | |
| 318 | +</form>(No newline at end of file) |
--- src/main/webapp/js/web/msgdata/msgDataView.js
+++ src/main/webapp/js/web/msgdata/msgDataView.js
... | ... | @@ -1127,10 +1127,6 @@ |
| 1127 | 1127 |
|
| 1128 | 1128 |
//form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부 |
| 1129 | 1129 |
form.templateYnAdvc.value = templateYn; |
| 1130 |
- console.log('imgFilePath : ', imgFilePath);
|
|
| 1131 |
- console.log('imgFilePath : ', JSON.stringify(imgFilePath));
|
|
| 1132 |
- console.log('imgFileId : ', imgFileId);
|
|
| 1133 |
- console.log('imgFileId : ', JSON.stringify(imgFileId));
|
|
| 1134 | 1130 |
form.imgFilePathAdvc.value = imgFilePath; |
| 1135 | 1131 |
form.imgFileIdAdvc.value = imgFileId; |
| 1136 | 1132 |
// form.imgFilePath.value = JSON.stringify(imgFilePath).replace(/\\/g, ''); |
... | ... | @@ -1232,8 +1228,9 @@ |
| 1232 | 1228 |
formData["mjonMsgSendVOList"] = $selectedData; |
| 1233 | 1229 |
|
| 1234 | 1230 |
// JSON 데이터 확인 |
| 1235 |
-// console.log("최종 formData:", JSON.stringify(formData));
|
|
| 1236 |
- |
|
| 1231 |
+ console.log("최종 formData:", JSON.stringify(formData));
|
|
| 1232 |
+ // |
|
| 1233 |
+ return false; |
|
| 1237 | 1234 |
|
| 1238 | 1235 |
var url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do"; |
| 1239 | 1236 |
// 시작 시간 |
... | ... | @@ -1254,7 +1251,7 @@ |
| 1254 | 1251 |
success: function (data) {
|
| 1255 | 1252 |
|
| 1256 | 1253 |
// 요청 종료 시간 및 경과 시간 계산 |
| 1257 |
- const endTime = new Date(); |
|
| 1254 |
+ /*const endTime = new Date(); |
|
| 1258 | 1255 |
const elapsed = (endTime - startTime) / 1000; // 밀리초 -> 초로 변환 |
| 1259 | 1256 |
console.log('AJAX 요청 성공, 경과 시간 : ', elapsed);
|
| 1260 | 1257 |
if (elapsed >= 60) {
|
... | ... | @@ -1264,7 +1261,7 @@ |
| 1264 | 1261 |
} else {
|
| 1265 | 1262 |
console.log('AJAX 요청 성공, 경과 시간 : ' + elapsed + '초');
|
| 1266 | 1263 |
} |
| 1267 |
- |
|
| 1264 |
+ */ |
|
| 1268 | 1265 |
|
| 1269 | 1266 |
|
| 1270 | 1267 |
console.log('data : ', data);
|
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?