From 81e14b01a4112a1617072a622f797557334e619d Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Thu, 7 Nov 2024 11:19:40 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A3=BC=EC=86=8C=EB=A1=9D=20=EC=9C=A0?= =?UTF-8?q?=ED=9A=A8=EC=84=B1=EA=B2=80=EC=82=AC=20cmm.js=20=ED=8C=A8?= =?UTF-8?q?=ED=84=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addr/service/impl/AddrServiceImpl.java | 8 +- .../MsgDataSMLView_advc_backup_20241106.jsp | 4354 +++++++++++++++++ .../WEB-INF/jsp/web/msgdata/MsgDataView.jsp | 139 +- .../MsgDataView_advc_backup_20241106.jsp | 2607 ++++++++++ src/main/webapp/js/web/addr/cmn.js | 5 +- 5 files changed, 6982 insertions(+), 131 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView_advc_backup_20241106.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView_advc_backup_20241106.jsp diff --git a/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java b/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java index 01e63484..f98dec2f 100644 --- a/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java +++ b/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java @@ -65,9 +65,8 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer private EgovIdGnrService idgenAddrTransHistId; - - private static final String PHONE_REGEX = "^(01[016789]-?\\d{3,4}-?\\d{4})$"; - private static final Pattern PHONE_PATTERN = Pattern.compile(PHONE_REGEX); + private static final String PHONE_REGEX = "^(010-?\\d{3,4}-?\\d{4}|01[1-9]-?\\d{3}-?\\d{4}|050\\d-?\\d{3,4}-?\\d{4})$"; + private static final Pattern PHONE_PATTERN = Pattern.compile(PHONE_REGEX); private static final Charset EUC_KR = Charset.forName("EUC-KR"); // private static final int MAX_ADDR_CNT = 500000; //임시 500만개 @@ -474,14 +473,11 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer AtomicInteger invalid = new AtomicInteger(0); // 스레드-안전(thread-safe)하게 정수 값을 업데이트할 수 있는 기능을 제공 addrListVO.removeIf(addr -> { String phoneNo = addr.getAddrPhoneNo(); -// phoneNo = phoneNo != null ? phoneNo.replaceAll("-", "") : ""; -// System.out.println("phoneNo : "+ phoneNo); if (isValidPhoneNumber(phoneNo)) { addr.setAddrPhoneNo(phoneNo); // 하이픈이 제거된 유효한 번호 설정 trimFieldsBytes(addr); // 다른 필드들에 대한 20바이트 체크 및 자르기 return false; // 유효한 번호는 제거하지 않음 } else { -// System.out.println(phoneNo + " is an invalid phone number. Removing from list."); invalid.getAndIncrement(); // 유효하지 않은 번호 개수 증가 return true; // 유효하지 않은 번호는 제거 } diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView_advc_backup_20241106.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView_advc_backup_20241106.jsp new file mode 100644 index 00000000..6dc6d8ac --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView_advc_backup_20241106.jsp @@ -0,0 +1,4354 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + + + + + + + +<% pageContext.setAttribute("newLineChar", "\r\n"); %> + + +
+
+
+
Loading
+
+
+ +
+ + + + + +
+ + +
+ +
+ + + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + + +
+ +
+ +
+ +
+ + + + <%--
+ +
--%> + + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + "/> + "/> + "/> + "/> + "/> + "/> + + + + + + + + + + + + + + + + + + + + + "/> + "/> + "/> + "/> + "/> + + + + + "/> + + +
+

문자전송

+ + +
+
+
+ <%--
+
나의 요금제
+
+
    +
  • 단문
  • +
  • 장문
  • +
  • 그림(2장 : 원 / 3장 : 원)
  • +
+
+
--%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + --%> + +
일반 문자보내기 분류 번호 내용 등을 입력하는 표
문자분류 + + + + +
발신번호 + + + +
제목 +
    +
  • + + + + +
  • +
  • + + +
  • +
+
내용 +
+
+ +
    + + + +
    +
    +

    + 0 / + 90byte +

    + 단문 +
    +
    +
    +
    +
    + +
    + + +
    +
    + + + + + +
    +
    + +
    +
    + + + ${symbolList.symbol} + + +
    +
    + + +
    +
    + + + ${symbolList.symbol} + + +
    +
    + + +
    +
    + + + ${symbolList.symbol} + + +
    +
    + + +
    +
    + + + ${symbolList.symbol} + + +
    +
    + + +
    +
    + + + ${symbolList.symbol} + + +
    +
    + + +
    +
    +
    + +
    +
    +
    + 특정문구 일괄변환이란? +

    주소록, 엑셀에 입력된 내용을 이용해 수신자마다 다른 내용의
    메시지를 발송하는 기능

    +
    + +
    + [*1*] + [*2*] + [*3*] + [*4*] +
    +
    + +
    +
    + + <%-- --%> + +
    + + +
    +
    +
    +

    * 현재 [단문] 0건 발송 가능합니다.

    +
    받는사람 +
    + + + + + + + + + +
    + + + + + +
    + + * 중복번호는 한번만 추가됩니다. +
    +

    휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능

    + (예시) 010-1234-0001(O) / 010-12345-0001(X) +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +

    휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능

    + (예시) 010-1234-0001(O) / 010-12345-0001(X) +
    +
    +
    +
    +
    +
    + + +
    +
    +

    0건 / 중복 0

    + <%----%> + +
    +
    +
    +
    +
    +
    +
    +

    발송금액 :

    +
    + 단문 : 20/장문 : 150/그림문자 : 30건 +
    +
    +

    0

    +
    + +

    * 이벤트회원의 발송금액은 이벤트단가를 적용하여 계산된 금액이므로 실제 발송금액과 다를 수 있습니다.

    +
    +
    + +
    + + + <%-- --%> + + + + +
    + +
    +
    +
    + + + + + +
    +
    추천인 ID + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +

    미리보기

    +
    + 단문 +
    + 글자크기 + + +
    +
    +
    + 포토 +
      +
    • 1
    • +
    • 2
    • +
    • 3
    • +
    +
    + 글자크기 + + +
    +
    + +
    +
    +
    +

    내용을 입력해주세요.

    +
    
    +								
    +
    + +
    +
    +

    ※ 단말기 설정에 따라 다르게 보일 수 있습니다

    +
    + + +

    미리보기

    + + +
    +
    +
    +
    +
    +
    +
      +
    • +
    • +
    +
    +
    + + +
    +
    +
    +
    + 날짜 : +
    + +
    + +
    + + + +
    +
    +
    + + + + + + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + + + + + + + +
    + diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp index 43aeb45a..217a2ef7 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp @@ -1060,40 +1060,12 @@ function fn_sendMsgData(){ return false; } - var loginVO = '${LoginVO}'; - if (!loginVO) { - alert("문자발송 서비스는 로그인 후 이용 가능합니다."); - return false; - } - // 폼 유효성 검사 if (!validateForm(form)) return false; - var adverYn = $("input[name='send_adYn']:checked").val(); var spamStatus = false; var exceptSpamYn = $("#exceptSpamYn").val(); //금지어 필터링 예외 여부 - N 일 경우만 스팸 검사를 진행 - //이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요. - /* var eventStatus = form.eventStatus.value; - var eventRemainCash = parseFloat(form.eventRemainCash.value); - - if(eventStatus == 'Y'){ - - if(parseFloat(eventRemainCash) < parseFloat(totPriceOnly)){ - - alert("고객님의 이벤트 캐시 잔액은 " + eventRemainCash + "원으로 입력하신 수량의 문자를 전부 발송할 수 없습니다. 잔액 이하로 발송건수를 재설정하시기 바랍니다."); - return false; - } - - } */ - - if(loginVO == "" || loginVO == null){ - - alert("문자발송 서비스는 로그인 후 이용 가능합니다."); - return false; - - } - var blineCodeYn = $("#blineCode").val(); if(blineCodeYn != 'N'){ @@ -1112,22 +1084,11 @@ function fn_sendMsgData(){ //광고 문자 내용 합쳐주기 + var adverYn = $("input[name='send_adYn']:checked").val(); if(adverYn == 'Y'){ - - var adTxt = $('.ad_txt').text(); - var denyTxt = $('.deny_txt').text(); - var smsTxt = form.smsTxtArea.value; - - var adverTxt = adTxt + smsTxt + '\n' + denyTxt; - form.smsTxt.value = adverTxt; form.msgKind.value = "A"; //광고문자 종류 설정 - }else{ - - var smsTxt = form.smsTxtArea.value; - form.smsTxt.value = smsTxt; form.msgKind.value = "N"; //일반문자 종류 설정 - } //수신번호 리스트 체크하기 @@ -1141,75 +1102,7 @@ function fn_sendMsgData(){ var selectedData = tableL.getRows(); - if(selectedData == "" || selectedData == null){ - - alert("받는사람 주소를 한 건 이상 입력해주세요."); - return false; - - }else{ // 선택한 Row '-' 문자 삭제하기 - - for(var i=0; i < selectedData.length; i++){ - - //일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다. - var name = tableL.getRows()[i].getData().name; - var phone = removeDash(tableL.getRows()[i].getData().phone); - var rep1 = tableL.getRows()[i].getData().rep1; - var rep2 = tableL.getRows()[i].getData().rep2; - var rep3 = tableL.getRows()[i].getData().rep3; - var rep4 = tableL.getRows()[i].getData().rep4; - - if(phone == ""){ - - alert("수신 목록에 핸드폰 번호가 없는 항목이 있습니다."); - return false; - - }else if(!checkHpNum(phone)){ - - alert("수신 목록에 잘 못된 핸드폰 번호가 있습니다. 핸드폰 번호 : " + phone + " 입니다."); - return false; - - }else{ - - if(typeof(name) != 'undefined' && name != null && name !=""){ - if(!emojiCheck(name)){//이모지 체크 해주기 - return false; - } - nameList[i] = name.replaceAll(",","§"); - } - - phoneNum[i] = phone; - - if(typeof(rep1) != 'undefined' && rep1 != null){ - if(!emojiCheck(rep1)){//이모지 체크 해주기 - return false; - } - rep1List[i] = rep1.replaceAll(",","§"); - } - if(typeof(rep2) != 'undefined' && rep2 != null){ - if(!emojiCheck(rep2)){//이모지 체크 해주기 - return false; - } - rep2List[i] = rep2.replaceAll(",","§"); - } - if(typeof(rep3) != 'undefined' && rep3 != null){ - if(!emojiCheck(rep3)){//이모지 체크 해주기 - return false; - } - rep3List[i] = rep3.replaceAll(",","§"); - } - if(typeof(rep4) != 'undefined' && rep4 != null){ - if(!emojiCheck(rep4)){//이모지 체크 해주기 - return false; - } - rep4List[i] = rep4.replaceAll(",","§"); - } - - } - - } - - } - +/* var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인 if(reserYn == 'Y'){ @@ -1241,10 +1134,9 @@ function fn_sendMsgData(){ form.reqDate.value = ""; - } - - var fileLinks = document.getElementsByName("fileLinks"); + } */ +/* var conLeng = conByteLeng($('#smsTxt').val()); // 내용 문자 입력 바이트 수 계산하기 if(conLeng > 2000){ @@ -1254,6 +1146,7 @@ function fn_sendMsgData(){ } + */ console.log(' : 전송하시겠습니까 : ') if(confirm("문자를 전송하시겠습니까?")){ @@ -1320,11 +1213,11 @@ function fn_sendMsgData(){ form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부 form.templateYn.value = templateYn; form.imgFileId.value = imgFileId; - form.nameList.value = nameList; - form.rep1List.value = rep1List; - form.rep2List.value = rep2List; - form.rep3List.value = rep3List; - form.rep4List.value = rep4List; +// form.nameList.value = nameList; +// form.rep1List.value = rep1List; +// form.rep2List.value = rep2List; +// form.rep3List.value = rep3List; +// form.rep4List.value = rep4List; //총 결제금액 천단위 콤마 삭제 후 전송 var totPrice = form.totPrice.value; @@ -1743,8 +1636,8 @@ function fn_sendMsgData(){ form.eventStatus.value = 'N'; form.eventYn.value = 'N'; -// sendMsgAjax_advc(0,0); - sendMsgAjax(0,0); + sendMsgAjax_advc(0,0); +// sendMsgAjax(0,0); }else{ @@ -1765,16 +1658,16 @@ function fn_sendMsgData(){ }else{ //발송 Ajax 호출해주기 -// sendMsgAjax_advc(0,0); - sendMsgAjax(0,0); + sendMsgAjax_advc(0,0); +// sendMsgAjax(0,0); } }else{ //발송 Ajax 호출해주기 -// sendMsgAjax_advc(0,0); - sendMsgAjax(0,0); + sendMsgAjax_advc(0,0); +// sendMsgAjax(0,0); } diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView_advc_backup_20241106.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView_advc_backup_20241106.jsp new file mode 100644 index 00000000..43aeb45a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView_advc_backup_20241106.jsp @@ -0,0 +1,2607 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ page import="itn.com.cmm.LoginVO" %> + + + + + +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    + +
      +
    • +
    • + + +
    • +
    + + +
    + + + + +
    + +
    + +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    + + +
    + + + + + + + + +
    + + +
    + +
    +
    +
    + + + +
    + <%-- 맞춤제작 요청 JSPark => 2023.02.21 추가 --%> + <%-- + + + --%> + +
    +
    +
    +
    + All + BEST + + + +
    +
    + + <%-- 전체 + + # + --%> +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + +
    + <%-- 맞춤제작 요청 JSPark => 2023.02.21 추가 --%> + <%-- + + + --%> + +
    +
    +
    +
    + All + BEST + + + +
    +
    + + <%-- 전체 + + # + --%> +
    +
    +
    +
    +
    + +
    +
    + + +
    + + +
    + +
    + + + + + +
    +
    +
    + · 기간 +
    + + ~ + +
    + +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + + +
    diff --git a/src/main/webapp/js/web/addr/cmn.js b/src/main/webapp/js/web/addr/cmn.js index fed3967a..7cdafd21 100644 --- a/src/main/webapp/js/web/addr/cmn.js +++ b/src/main/webapp/js/web/addr/cmn.js @@ -8,8 +8,9 @@ function isValidPhoneNumber(phone) { // 유효한 형식 체크 return ( (numberOnly.startsWith("010") && numberOnly.length === 11) || // 010으로 시작하고 11자리 - (/^01[1-9]/.test(numberOnly) && numberOnly.length === 10) || // 011~019로 시작하고 10자리 - (numberOnly.startsWith("050") && numberOnly.length === 12) // 050X로 시작하고 12자리 + (/^01[1-9]/.test(numberOnly) && numberOnly.length === 10 && // 011~019로 시작하고 10자리 + !/^01[2-4]/.test(numberOnly)) || // 012, 013, 014는 유효하지 않음 + (numberOnly.startsWith("050") && numberOnly.length === 12) // 050X로 시작하고 12자리 ); }