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/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java index aa833cdf..93966423 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java @@ -264,7 +264,13 @@ public class MjonMsgDataDAO extends EgovAbstractDAO { return (List) list("MjonMsgDataDAO.selectMsgSentFailList"); } + + @SuppressWarnings("unchecked") + public List selectMsgSentFailSchedulerList(MjonMsgVO mjonMsgVO)throws Exception{ + return (List) list("MjonMsgDataDAO.selectMsgSentFailSchedulerList", mjonMsgVO); + } + @SuppressWarnings("unchecked") public List selectMsgSentFailListOneByDay()throws Exception{ diff --git a/src/main/java/itn/let/schdlr/service/SchdlrManageService.java b/src/main/java/itn/let/schdlr/service/SchdlrManageService.java index fc5f707b..84bbbc05 100644 --- a/src/main/java/itn/let/schdlr/service/SchdlrManageService.java +++ b/src/main/java/itn/let/schdlr/service/SchdlrManageService.java @@ -49,5 +49,7 @@ public interface SchdlrManageService { //문자온 카카오톡 실패 건수 환불 배치 public void kakaoFailPayBack() throws Exception; - + + //문자온 문자전송 실패 건수 환불 배치 + public void payBack(String type, int limitCout) throws Exception; } diff --git a/src/main/java/itn/let/schdlr/service/SchedulerUtil.java b/src/main/java/itn/let/schdlr/service/SchedulerUtil.java index 941eeaf2..3f198b7c 100644 --- a/src/main/java/itn/let/schdlr/service/SchedulerUtil.java +++ b/src/main/java/itn/let/schdlr/service/SchedulerUtil.java @@ -91,8 +91,8 @@ public class SchedulerUtil { /* * 2분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다. * */ - // Schdule Lock (2분동안) - @Scheduled(cron = "0 0/2 * * * ?") + // Schdule Lock (5분동안) + @Scheduled(cron = "0 0/5 * * * ?") @SchedulerLock(name = "runScenarioOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN) public void runScenarioOneTime() throws Exception { @@ -101,7 +101,10 @@ public class SchedulerUtil { System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>"); //문자 환불, 팩스 환불 - PayBack(""); + + + //PayBack(""); + /* // 문자 환불 schdlrManageService.msgFailPayBack(); @@ -481,18 +484,35 @@ public class SchedulerUtil { }else { //2분 마다는 7일을 대상으로 실행 //어플리케이션 트랜잭션 문제가 있어 Util 단으로 DB 호출을 가져옴 - 2024-03-14 //schdlrManageService.msgFailPayBack(); - - List msgFailList = mjonMsgDataDAO.selectMsgSentFailList(); - - for(MjonMsgVO vo : msgFailList) { - try { - mjonMsgDataDAO.updateMsgSentFailPayBack(vo); - }catch(Exception ex) { - System.out.println("=============SchedulerUtil=====PayBack Catch =============>"); - System.out.println(vo.getUserId()+" : "+ vo.getMsgGroupId() +" : "+ vo.getUserData()); - ex.printStackTrace(); - } - } + MjonMsgVO mjonMsgVO = new MjonMsgVO(); + mjonMsgVO.setRecordCountPerPage(500); + List msgFailList = mjonMsgDataDAO.selectMsgSentFailSchedulerList(mjonMsgVO); + long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간 + int batchSize = 300; + int totalSize = msgFailList.size(); + int endj =0; + for (int i = 0; i < totalSize; i += batchSize) { + int end = Math.min(i + batchSize, totalSize); + long beforeTime = System.currentTimeMillis(); // 코드 실행 전 시간 + for(int j=endj; j < end; j++) { + System.out.println(j+" : "+ end); + try { + mjonMsgDataDAO.updateMsgSentFailPayBack(msgFailList.get(j)); + }catch(Exception ex) { + System.out.println("=============SchedulerUtil=====PayBack Catch =============>"); + System.out.println(msgFailList.get(j).getUserId()+" : "+ msgFailList.get(j).getMsgGroupId() +" : "+ msgFailList.get(j).getUserData()); + ex.printStackTrace(); + } + } + endj = end; + + long afterTime = System.currentTimeMillis(); // 코드 실행 후 시간 + long secDiffTime = (afterTime - beforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위) + System.out.println("==PayBack for 1 =============> : " + secDiffTime +"초"); + } + long forAfterTime = System.currentTimeMillis(); // 코드 실행 후 시간 + long forSecDiffTime = (forAfterTime - forBeforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위) + System.out.println("==PayBack for 2 =============> 수량 : "+msgFailList.size()+" ===== " + forSecDiffTime +"초"); } System.out.println("==== faxFailPayBack ===="); diff --git a/src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java b/src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java index 1cf03a14..2e7928a4 100644 --- a/src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java +++ b/src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java @@ -20,7 +20,9 @@ import itn.com.cmm.service.impl.FileManageDAO; import itn.let.fax.user.service.impl.FaxDAO; import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgdata.service.MjonMsgDataService; +import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.pay.service.StVcVO; import itn.let.mjo.payva.service.VacsAhstService; @@ -63,6 +65,9 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements @Value("#{globalSettings['Globals.HOMPAGE_URL']}") private String HOMPAGE_URL; + @Resource(name="MjonMsgDataDAO") + private MjonMsgDataDAO mjonMsgDataDAO; + //문자온 카카오 알림톡 발송 서비스 @Resource(name = "kakaoAlimTalkService") private KakaoAlimTalkService kakaoAlimTalkService; @@ -423,5 +428,45 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements kakaoAlimTalkService.selectKakaoAtSentRefundList(); } - + + @Override + public void payBack(String type, int limitCout) throws Exception { + // 문자 환불 + if ("ONE".equals(type)) { //하루에 한번만 31일 대상으로 실행 + msgFailPayBackOneByDay(); + + }else { //2분 마다는 7일을 대상으로 실행 + MjonMsgVO mjonMsgVO = new MjonMsgVO(); + mjonMsgVO.setRecordCountPerPage(limitCout); + + List msgFailList = mjonMsgDataDAO.selectMsgSentFailSchedulerList(mjonMsgVO); + long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간 + int batchSize = 300; + int totalSize = msgFailList.size(); + int endj =0; + for (int i = 0; i < totalSize; i += batchSize) { + int end = Math.min(i + batchSize, totalSize); + long beforeTime = System.currentTimeMillis(); // 코드 실행 전 시간 + for(int j=endj; j < end; j++) { + System.out.println(j+" : "+ end); + try { + mjonMsgDataDAO.updateMsgSentFailPayBack(msgFailList.get(j)); + }catch(Exception ex) { + System.out.println("=============SchedulerUtil=====PayBack Catch =============>"); + System.out.println(msgFailList.get(j).getUserId()+" : "+ msgFailList.get(j).getMsgGroupId() +" : "+ msgFailList.get(j).getUserData()); + ex.printStackTrace(); + } + } + endj = end; + + long afterTime = System.currentTimeMillis(); // 코드 실행 후 시간 + long secDiffTime = (afterTime - beforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위) + System.out.println("==PayBack for 1 =============> : " + secDiffTime +"초"); + } + long forAfterTime = System.currentTimeMillis(); // 코드 실행 후 시간 + long forSecDiffTime = (forAfterTime - forBeforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위) + System.out.println("==PayBack for 2 =============> 수량 : "+msgFailList.size()+" ===== " + forSecDiffTime +"초"); + + } + } } diff --git a/src/main/java/itn/web/ContentController.java b/src/main/java/itn/web/ContentController.java index 0928ae14..3aad6874 100644 --- a/src/main/java/itn/web/ContentController.java +++ b/src/main/java/itn/web/ContentController.java @@ -36,6 +36,7 @@ import itn.let.lett.service.LetterService; import itn.let.lett.service.LetterVO; import itn.let.mjo.pay.service.MjonPayVO; import itn.let.schdlr.service.SchdlrManageService; +import itn.let.schdlr.service.SchedulerUtil; import itn.let.uss.ion.cnt.service.CntManageVO; import itn.let.uss.ion.cnt.service.EgovCntManageService; @@ -768,4 +769,41 @@ public class ContentController{ } */ + // 전용계좌 스케줄러 실행 + @RequestMapping(value= {"/web/main/payBackAutoChargeAjax.do"}) + public ModelAndView payBackAutoChargeAjax(HttpServletRequest request, + ModelMap model) throws Exception{ + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = true; + String msg = ""; + + try { + String pageType = ""; + if(request.getParameter("type") != null) { + pageType = request.getParameter("type"); + } + + int limitCout = 500; + if(request.getParameter("limitCout") != null) { + limitCout = Integer.parseInt(request.getParameter("limitCout")); + } + + System.out.println("type : " + pageType); + System.out.println("limitCout : " + limitCout); + + schdlrManageService.payBack(pageType, limitCout); + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } } diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml index 9227d125..3dd240b1 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml @@ -4006,9 +4006,8 @@ WHERE SEARCH_WORD = #searchKeyword# - - SELECT USER_ID AS userId, MSG_GROUP_ID AS msgGroupId, @@ -4057,7 +4056,59 @@ THEN 'W' ELSE 'F' END) IN ('F') + + + diff --git a/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp b/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp index 7573f507..83c79e43 100644 --- a/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp @@ -472,17 +472,18 @@
    + - +
  • - +
  • - + diff --git a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp index b9d9bbce..8a19ccfc 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp @@ -62,8 +62,8 @@ $(document).ready(function() { if(agreePrivatePopCk != null){//개인정보 및 이용약관 개정 팝업 노출, 3일안보기 쿠키 있으면 팝업 안모여준다. - // $(".agreePrivatePop").css("display","none"); - // $(".agreePrivatePop").hide(); + $(".agreePrivatePop").css("display","none"); + $(".agreePrivatePop").hide(); } if(evntPopCk != null && pointPopCk != null){//팝업 쿠키가 모두 있는 경우 안보여준다. 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자리 ); }