From 7df9d60d0d9b2135dc445a62219fdde1f81683bd Mon Sep 17 00:00:00 2001 From: subsub Date: Mon, 22 Jul 2024 17:30:05 +0900 Subject: [PATCH 01/15] =?UTF-8?q?2024/07/22=20=EB=AC=B8=EC=9E=90=EC=98=A8?= =?UTF-8?q?=20kisa=20=EA=B4=80=EB=A6=AC=EB=8C=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/publish/css/estimate.css | 19 ++ .../webapp/publish/images/itn_logo_black.png | Bin 0 -> 43915 bytes .../publish/kisa_management_ledger.html | 196 ++++++++++++++++++ 3 files changed, 215 insertions(+) create mode 100644 src/main/webapp/publish/images/itn_logo_black.png create mode 100644 src/main/webapp/publish/kisa_management_ledger.html diff --git a/src/main/webapp/publish/css/estimate.css b/src/main/webapp/publish/css/estimate.css index 8ec8d9bc..c13ca07c 100644 --- a/src/main/webapp/publish/css/estimate.css +++ b/src/main/webapp/publish/css/estimate.css @@ -146,3 +146,22 @@ .cont4.account table tbody tr{border-bottom: 0;} .cont4.account table tbody tr .acc_te{padding: 20px 0 0 0; text-align: center;} /* // 가상계좌 확인서 */ + + +/* 문자온 KISA 신고 관리대장(시작) */ +.kisa_management::after{background:none;} +.kisa_table table{width:100%;border-top:2px solid #000;text-align:left;font-size:14px;vertical-align:middle;} +.kisa_table table tr{border-bottom:1px solid #d5d5d5;} +.kisa_table table th{height:25px;background:#efefef;padding:10px 0 0 10px;font-weight:500;} +.kisa_table table th[rowspan]{writing-mode:vertical-lr;border-right:1px solid #d5d5d5;} +.kisa_table table td{text-align:center;padding:10px;} +.kisa_table table .bgYellow{background:orange} +.kisa_table table input+label{margin:0 0 0 4px;vertical-align:middle;} +.kisa_table table td span{font-size:13px;line-height:1.4;} +.kisa_table .sub_table table thead th{text-align:center;border-right:1px solid #d5d5d5;} +.kisa_table .sub_table table thead th:last-child{border-right:0;} +.kisa_table .sub_table table tbody tr td{border-right:1px solid #d5d5d5;} +.kisa_table .sub_table table tbody tr td:last-child{border-right:0;} +.kisa_table tfoot .date{margin:20px 0 0 0;font-size:16px;} +.kisa_table tfoot img{margin:50px;} +/* 문자온 KISA 신고 관리대장(끝) */ \ No newline at end of file diff --git a/src/main/webapp/publish/images/itn_logo_black.png b/src/main/webapp/publish/images/itn_logo_black.png new file mode 100644 index 0000000000000000000000000000000000000000..2f204047dc4d5b0e59d02cc6d97a585c03857303 GIT binary patch literal 43915 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%0Ah<>2AQkCq-P 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 ZsWlTL5@NALMD^zjbrl`uD#e$f{|99v`rZHl literal 0 HcmV?d00001 diff --git a/src/main/webapp/publish/kisa_management_ledger.html b/src/main/webapp/publish/kisa_management_ledger.html new file mode 100644 index 00000000..b80708ca --- /dev/null +++ b/src/main/webapp/publish/kisa_management_ledger.html @@ -0,0 +1,196 @@ + + + + + + + 문자온 KISA 신고 관리대장 + + + + + + + + + + + + +

+
+
+

문자온 KISA 신고 관리대장

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
관리번호 + 2021-01-1-0262 +
요청사항요청일시2024-07-20, 09:23요청형태 +
    +
  • +
  • +
  • +
+
기관다우기술요청부서메세징사업1팀
담당자장지윤 차장연락처010-8760-0640
이메일abcd@naver.com비고-
요청내역 +
    +
  • +

    · KISA 신고 접수 건 전달 및 광고표기 준수 안내 요청

    + - 개인 고객 스팸 신고(3건) 및 KISA 스팸 분류 +
  • +
+
발송문구 +
+ + + + + + + +   + + + + + + + + + +
아이디문자내용
dfkajdkfjal오늘 인터넷 dkfjadlkfjadlkfjadfkljadfaㅇ
+
+
처리내역처리일시2024-07-20, 09:23회신형태 +
    +
  • +
  • +
  • +
+
처리부서경영기획팀담당자정다은 대리
연락처-이메일abcd@naver.com
처리내역 +
+ + + + + + + + + + + + + + + + + +
아이디문자내용
dfkajdkfjal오늘 인터넷 dkfjadlkfjadlkfjadfkljadfaㅇ
+

(주)다우기술 해당 ID KISA 광고규정 및 수신동의 안내 문자 발송 등 조치내용 송부(24.07.22 메일)

+
+
첨부첨부1 + · 다우기술 요청 메일 1부 +
첨부2 + · 다우기술 요청 메일 1부 +
첨부3 + · 다우기술 요청 메일 1부 +
+

2024년 07월 22일

+ +
+
+ +
+ +
+
+
+ + + + \ No newline at end of file From 870bce04e8f96a6c721d2323eb4acc0913f7fb3e Mon Sep 17 00:00:00 2001 From: kmg Date: Tue, 23 Jul 2024 17:02:10 +0900 Subject: [PATCH 02/15] =?UTF-8?q?2024/07/23=20=EB=B0=9C=EC=86=A1=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=20=EC=83=81=EC=84=B8=20:=20=EC=B9=B4=EC=B9=B4?= =?UTF-8?q?=EC=98=A4=20=EC=95=8C=EB=A6=BC=ED=86=A1=20=ED=99=94=EB=A9=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/publish/css/content.css | 30 +- src/main/webapp/publish/guide_2022.html | 3 +- .../publish/textingmsg_2024_detail_kakao.html | 767 ++++++++++++++++++ 3 files changed, 798 insertions(+), 2 deletions(-) create mode 100644 src/main/webapp/publish/textingmsg_2024_detail_kakao.html diff --git a/src/main/webapp/publish/css/content.css b/src/main/webapp/publish/css/content.css index fa5e3860..4974f25f 100644 --- a/src/main/webapp/publish/css/content.css +++ b/src/main/webapp/publish/css/content.css @@ -2035,7 +2035,7 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px .send_top .resultcont_left {max-width: 800px;flex-basis: 68%;} .send_top .resultcont_left .table_btn {margin:-5px 0 0 0;} .send_top .resultcont_left {max-width: 800px;flex-basis: 68%;} -.send_top .resultcont_left .table_btn_left .excel_btn.btnType {color:129738;} +.send_top .resultcont_left .table_btn_left .excel_btn.btnType {color:#129738;} .send_top .resultcont_left .table_btn_right_txt {padding:5px 0 0 0;font-size:14px; font-weight:500;} /* 발송결과 상세 */ @@ -2097,6 +2097,34 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px .send_top .resultcont_right .phone .text_preview .preiew_img .img_box img {width: 100%;} /* .send_top .resultcont_right .phone .text_preview .preiew_img .img_box.on_scroll_img {max-width: 95% !important; margin-right: 15px;} */ +/* 알림톡 미리보기 */ +.send_top .resultcont_right .phone_kakao {width: 374px; position: absolute; right:0; top: 0;} +.send_top .resultcont_right .phone_kakako .phoneIn{height: 690px; width:340px; background-image: url(/publish/images/content/kakaoBg.png); padding: 27px 25px 0 25px;} +.send_top .resultcont_right .phone_kakako .prev_p{padding: 0 0 0 10px; border: 0; letter-spacing: -0.25px;} +.send_top .resultcont_right .phone_kakako .prev_p img{margin: 0 10px 0 0;} +.send_top .resultcont_right .phone_kakako .allimtalk_title{position: relative; width: calc(100% - 20px); background-color: #fae100; font-family: 'LotteMartDream'; font-size: 18px; padding: 12px 21px; border-radius: 5px 5px 0 0; box-sizing: border-box;} +.send_top .resultcont_right .phone_kakako .allimtalk_title::after{position: absolute; content: " "; width: 42px; height: 42px; background: url(/publish/images/content/icon_kakao01.png) no-repeat; right: -20px; top: -10px;} +.send_top .resultcont_right .phone_kakako .allimtalk_title img{margin: 0 8px 0 0; vertical-align: bottom;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview{width: 100%; padding: 15px 10px 20px 12px; margin: 15px 0 0 0; box-sizing: border-box;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content{width: calc(100% - 20px);background-color: #fff; border-radius: 0 0 5px 5px; padding: 0 0 10px 0;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .kakao_image img{width: 100%;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content p{width: calc(100% - 20px); white-space: normal; word-break: break-all; line-height: 1.4; padding: 0 10px; margin: 0 auto;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .template_text,.resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .emphasis_title_text{font-size: 16px; font-weight: 500; color: #222;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .emphasis_side_text{padding: 15px 0 0 0;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .emphasis_title_text{padding: 0 0 15px 0; border-bottom: 1px solid #e5e5e5;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .emphasis_side_text,.resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .side_info_text,.resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .channel_info_text{font-size: 14px; color: #999; margin: 0 auto 6px auto; white-space: normal; word-break: break-all;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .template_text{padding: 15px 0 0 0;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .side_info_text{padding: 8px 0 0 0;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .channel_info_text{padding: 0 0 4px 0;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content button{margin: 0 0 8px 10px;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content button:last-child{margin-bottom: 0;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .template_text+.btn_kakao_type{margin-top: 8px;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .btn_kakao_channel{width: calc(100% - 20px); height: 40px; font-size: 15px; border-radius: 5px; background-color: #ffea00;} +.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .btn_kakao_type{width: calc(100% - 20px); height: 40px; font-size: 15px; border-radius: 5px; background-color: #ededed;} +.send_top .resultcont_right .phone_kakako .phoneIn .template_info_wrap{display: flex; width: calc(85% + 13px); height: auto; padding: 6px 15px 6px 23px; justify-content: space-between; align-items: center; background-color: #fae100; margin: -5px 0 0 -3px; border-radius: 0 0 25px 25px;} +.send_top .resultcont_right .phone_kakako .phoneIn .template_info_wrap .btn_template_choice{width: 120px; height: 36px; font-size: 16px; color: #fae100; background-color: #302218; border-radius: 5px;} +.send_top .resultcont_right .phone_kakako .addText{color: #002c9a;text-align: center; font-size: 14px; padding-top: 2px; margin:10px 0 10px 0;} + .btn_list_type1 {border-top:solid 1px #e5e5e5; text-align: right; padding:26px 0 0 0; margin:60px 0 0 0;} .btn_list_type1 .btnType.btnType17 {width:100px; } diff --git a/src/main/webapp/publish/guide_2022.html b/src/main/webapp/publish/guide_2022.html index c1e55e27..8fa2d8a2 100644 --- a/src/main/webapp/publish/guide_2022.html +++ b/src/main/webapp/publish/guide_2022.html @@ -19,7 +19,8 @@

*** (보드) : 반복적으로 사용

-->
  • textingmsg_2024_list.html[개선] 발송결과 : 문자 및 카카오톡 문구,진행상황,테이블 수정
  • -
  • textingmsg_2024_detail.html[개선] 발송결과 상세 : 문자화면 (카카오톡은 기획중)
  • +
  • textingmsg_2024_detail.html[개선] 발송결과 상세 : 문자화면
  • +
  • textingmsg_2024_detail_kakao.html[개선] 발송결과 상세 : 카카오 알림톡화면
  • payment6.html후불회원 : 결제관리 > 요금사용내역
  • sub_election_2023.html선거문자
  • send_text.html문자보내기
  • diff --git a/src/main/webapp/publish/textingmsg_2024_detail_kakao.html b/src/main/webapp/publish/textingmsg_2024_detail_kakao.html new file mode 100644 index 00000000..6f60918f --- /dev/null +++ b/src/main/webapp/publish/textingmsg_2024_detail_kakao.html @@ -0,0 +1,767 @@ + + + + + + + 문자온_발송결과 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    + + + + +
    + +
    + + + +
    + +
    + + + + + + +
    +
    +

    QUICK
    MENU

    +

    QUICK

    + + +
    +
    + + + + + + +
    +
    + +
    + +
    +
    +

    발송결과 상세

    + +
    + + + +
    + +
    + +
    +
    +
    +

    발송정보

    +

    +
    +
    +
    +
    발송일시
    +
    2024-07-18 15:25
    +
    +
    +
    형태
    +
    그림
    +
    +
    +
    발송건수
    +
    100
    +
    +
    +
    발신번호
    +
    010-1234-5678
    +
    +
    +
    예약관리
    + +
    + +
    +
    +
    +
    +
    발송요금
    +
    100
    + +
    +
    +
    +
    + + +
    +
    +
    +

    상세결과

    +

    +
    +
    +
    +
    +
    전체건수
    +
    101건(100%)
    +
    +
    +
    +
    +
    성공건수
    +
    100건(100%)
    +
    +
    +
    +
    +
    +
    +
    대기건수
    +
    0건(0%)
    +
    +
    +
    +
    +
    실패건수
    +
    1건(100%)
    +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    +

    * 전체 건수를 클릭하면 받는 사람 상세정보를 확인하실 수 있습니다.

    +
    +
    +
    + + + +
    + +
    +
    +

    @munjaon

    + +
    +
    + 알림톡 도착 +
    +
    + + + +

    강조표기 보조문구 미리보기

    +

    타이틀 미리보기

    +

    내용미리보기

    +

    부가정보내용

    +

    채널 추가 안내 메시지 미리보기

    + + + + + + + + + +
    +
    + +
    + +

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

    +

    + + +
    + +
    + + + + +
    + +
    + + +
    +
    + +
    +
    + + +
    + + +
    + + + + \ No newline at end of file From f971ca8a864bb303c02d2b4b2d530f472d34d8a5 Mon Sep 17 00:00:00 2001 From: subsub Date: Tue, 23 Jul 2024 18:27:07 +0900 Subject: [PATCH 03/15] =?UTF-8?q?2024/07/23=20=EB=AC=B8=EC=9E=90=EC=A0=84?= =?UTF-8?q?=EC=86=A1=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EB=82=B4=EC=9A=A9=20?= =?UTF-8?q?=ED=98=B8=EB=B2=84=20=EC=8B=9C=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp index 502bb482..5dec5cf0 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp @@ -565,9 +565,9 @@ function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg) { .pageCont .tbType1 tbody tr td.sms_detail {overflow:inherit;text-overflow:inherit;position:relative;} .pageCont .tbType1 tbody tr td.sms_detail p {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} -.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:-50px;top:45px;width:calc(100% + 150px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;} -.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;} -.pageCont .tbType1 tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;} +.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:-50px;top:30px;width:calc(100% + 150px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;} +.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:-10px;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;} +.pageCont .tbType1 tbody tr td.sms_detail:hover .sms_detail_hover,.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover.active {display:-webkit-box;overflow:auto;} .pageCont .tbType1 tbody tr td .fillBlue {margin-top:5px;height:25px;padding:3 3px;font-size:13px;text-align:center;color:#ffffff !important;background:#456ded;border-radius:3px;} .pageCont .tbType1 tbody tr td .fillRed {margin-top:5px;height:25px;padding:3 3px;font-size:13px;text-align:center;color:#ffffff !important;background:#e40000;border-radius:3px;} From 92337d2992e2ace627419dd61dd5fc0251620ed3 Mon Sep 17 00:00:00 2001 From: alfk8 Date: Mon, 29 Jul 2024 14:25:21 +0900 Subject: [PATCH 04/15] =?UTF-8?q?2024/07/29=20=EB=AC=B8=EC=9E=90=EC=98=A8?= =?UTF-8?q?=20=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0(=EB=8C=80=ED=91=9C?= =?UTF-8?q?=EB=B2=88=ED=98=B8)=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp | 2 +- .../webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp | 2 +- .../WEB-INF/jsp/web/fax/faxSentPrintListPopUp.jsp | 4 ++-- .../jsp/web/kakao/sent/KakaoSentPrintListPopUp.jsp | 4 ++-- src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp | 2 +- .../WEB-INF/jsp/web/msgsent/MsgSentPrintListPopUp.jsp | 4 ++-- .../WEB-INF/jsp/web/pay/MsgPrintStatementPopUp.jsp | 4 ++-- .../WEB-INF/jsp/web/pay/MsgPrintUsageDetailsPopUp.jsp | 2 +- src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp | 6 +++--- src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp | 2 +- .../webapp/WEB-INF/jsp/web/pay/PayPrintListPopUp.jsp | 4 ++-- .../webapp/WEB-INF/jsp/web/pay/PayVaViewPrintPopup.jsp | 2 +- .../WEB-INF/jsp/web/pay/PrintPayUserSWListPdfPopUp.jsp | 4 ++-- .../WEB-INF/jsp/web/pay/PrintPayUserSWListPopUp.jsp | 4 ++-- .../web/reservedmsg/ReservedKakaoPrintListPopUp.jsp | 4 ++-- .../jsp/web/reservedmsg/ReservedMsgPrintListPopUp.jsp | 4 ++-- src/main/webapp/publish/css/common.css | 6 +++--- src/main/webapp/publish/css/main.css | 10 +++++----- 18 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp index e925df2c..60deb166 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp @@ -45,7 +45,7 @@ function footerSiteLinkPageTwoGo (){ diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp index 21ae8a3b..e37a45b4 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp @@ -1203,7 +1203,7 @@ function actionLogin() { 고객센터
    고객센터
    -
    010-8432-9333
    010-2290-4786
    +
    1551-8011
    <%-- --%>
    • · 월~금 : 09:30 ~ 18:30
    • diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/faxSentPrintListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/faxSentPrintListPopUp.jsp index b4380654..5bfa3b10 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/faxSentPrintListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/faxSentPrintListPopUp.jsp @@ -48,7 +48,7 @@ function f_print(){ 문자온 CI

      (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

      -

      TEL 010-8432-9333

      +

      TEL 1551-8011

    @@ -190,7 +190,7 @@ function f_print(){ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentPrintListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentPrintListPopUp.jsp index 7167c312..7dea382b 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentPrintListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentPrintListPopUp.jsp @@ -56,7 +56,7 @@ function f_print(){ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -243,7 +243,7 @@ function f_print(){ 대표번호 - 010-8432-9333 + 1551-8011 이메일 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 70e5458e..efe1a7d9 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp @@ -1585,7 +1585,7 @@ function fn_click_banner_add_stat(bannerMenuCode){
    -

    010-8432-9333
    010-2290-4786

    +

    1551-8011

    E-mail : help@iten.co.kr
    diff --git a/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentPrintListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentPrintListPopUp.jsp index 779f7497..720097e5 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentPrintListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentPrintListPopUp.jsp @@ -62,7 +62,7 @@ function f_print(){ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -446,7 +446,7 @@ function f_print(){ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintStatementPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintStatementPopUp.jsp index f092e11d..8893ecff 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintStatementPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintStatementPopUp.jsp @@ -57,7 +57,7 @@ function f_print(){ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -115,7 +115,7 @@ function f_print(){ 전화 - 010-8432-9333 + 1551-8011 이일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintUsageDetailsPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintUsageDetailsPopUp.jsp index f3f53c33..c162813b 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintUsageDetailsPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintUsageDetailsPopUp.jsp @@ -52,7 +52,7 @@ function f_print(){ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp index 118dac39..1cc892da 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp @@ -58,7 +58,7 @@ function winPrint() { 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -120,7 +120,7 @@ function winPrint() { 전    화 - 010-8432-9333 + 1551-8011 이  메  일 @@ -218,7 +218,7 @@ function winPrint() {

    - 본 견적서는 기본 견적서로 결제방식, 옵션 등에 따라 차이가 발생할 수 있습니다.

    - 결제금액에 2% 포인트 적립(단가할인 고객의 경우 적립 제외)

    - 포인트 10,000원 이상부터 현금으로 전환 가능

    -

    - 100만원 이상 충전을 원하시는 고객께서는 010-8432-9333로 별도 문의 바랍니다.

    +

    - 100만원 이상 충전을 원하시는 고객께서는 1551-8011로 별도 문의 바랍니다.

    - 인터넷 익스플로러를 사용하시는 고객께서는 [옵션도구>옵션>고급>인쇄>배경색 및 이미지 인쇄]를 체크해주시기 바랍니다.

    diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp index 7005bd0f..779957aa 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp @@ -602,7 +602,7 @@ function getMberGrdChk() {
    @@ -134,7 +134,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayVaViewPrintPopup.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayVaViewPrintPopup.jsp index d42c9224..d1b8bf7b 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayVaViewPrintPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayVaViewPrintPopup.jsp @@ -48,7 +48,7 @@ function f_print(){ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPdfPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPdfPopUp.jsp index a402efd1..c5cd39e6 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPdfPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPdfPopUp.jsp @@ -83,7 +83,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -242,7 +242,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPopUp.jsp index 1022ca8f..9f8e4ac7 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPopUp.jsp @@ -41,7 +41,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -199,7 +199,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoPrintListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoPrintListPopUp.jsp index 4e91ea92..2262f2da 100644 --- a/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoPrintListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoPrintListPopUp.jsp @@ -45,7 +45,7 @@ function f_print(){ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -213,7 +213,7 @@ function f_print(){ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgPrintListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgPrintListPopUp.jsp index c74099c8..8c32fa05 100644 --- a/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgPrintListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgPrintListPopUp.jsp @@ -45,7 +45,7 @@ function f_print(){ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -209,7 +209,7 @@ function f_print(){ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/publish/css/common.css b/src/main/webapp/publish/css/common.css index 651c6c81..cb9d574c 100644 --- a/src/main/webapp/publish/css/common.css +++ b/src/main/webapp/publish/css/common.css @@ -209,8 +209,8 @@ caption, .label {position: absolute;width: 1px;height: 1px;margin: -1px;border: /* footer 고객센터 */ .footer .footer_body .footer_service_center {overflow:hidden;position:absolute;right:0;top:50%;display:flex;height:90px;background:#fff;border-radius:10px;transform:translateY(-50%);} .footer .footer_body .footer_service_center dt {width:65px;padding:55px 0 0;font-size:14px;font-weight:500;text-align:center;color:#222;background:url(/publish/images/footer_serive_center.png) #ffcc33 no-repeat center 12px;} -.footer .footer_body .footer_service_center dd {padding:11px 10px 0 13px;} -.footer .footer_body .footer_service_center dd p {font-size:17px;font-weight:700;line-height:24px;letter-spacing:-0.01em;color:#304b8f;} +.footer .footer_body .footer_service_center dd {padding:22px 10px 0 13px;} +.footer .footer_body .footer_service_center dd p {font-size:21px;font-weight:700;line-height:24px;letter-spacing:-0.01em;color:#304b8f;} .footer .footer_body .footer_service_center dd span {font-size:13px;color:#666;letter-spacing:-0.02em;} @@ -266,7 +266,7 @@ caption, .label {position: absolute;width: 1px;height: 1px;margin: -1px;border: .quickMenu .hover_cont {width: 80px;position: absolute;height: auto;background-color: #fff;box-shadow: 0px 0px 10px 4px rgba(0,0,0,0.1);padding: 8px;border: 1px solid #d5d5d5; border-radius: 5px; font-size: 14px;top:18px; right: 45px;z-index: 1;line-height: 1.3;display: none;} .quickMenu .cscenter .hover_cont {display:none;top:inherit;bottom:-49px;right:90px;width:220px;height:auto;padding:19px 0 19px 15px;letter-spacing:-0.05em;text-align:left;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgba(0, 0, 0, 0.2);} .quickMenu .cscenter .hover_cont .title {height:26px;padding:0 0 0 35px;font-size:16px;font-weight:500;line-height:24px;background:url(/publish/images/icon_qucik_cscenter.png) no-repeat left top;} -.quickMenu .cscenter .hover_cont .number {margin:2px 0 0;font-size:25px;font-weight:700;color:#002c9a;} +.quickMenu .cscenter .hover_cont .number {margin:2px 0 0;font-size:30px;font-weight:700;color:#002c9a;} .quickMenu .cscenter .hover_cont .email {margin:2px 0;font-size:14px;font-weight:300;color:#666;} .quickMenu .cscenter .hover_cont ul {margin:7px 15px 0 0;padding:6px 0 12px 9px;background:#f5f5f5;border-radius:5px;} .quickMenu .cscenter .hover_cont ul li {font-size:14px;line-height:22px;color:#444;} diff --git a/src/main/webapp/publish/css/main.css b/src/main/webapp/publish/css/main.css index 19217720..fd11442c 100644 --- a/src/main/webapp/publish/css/main.css +++ b/src/main/webapp/publish/css/main.css @@ -178,10 +178,10 @@ .main_cont3 .service_center .tablet {background-image: url(/publish/images/main/serive_tablet.png);background-repeat: no-repeat;height: 300px;color: #222;font-weight: 300;} .main_cont3 .service_center .tablet>div {padding: 15px 30px 0 30px;} .main_cont3 .service_center .tablet .service_center_title {position: relative;padding-left: 126px;} -.main_cont3 .service_center .tablet .service_center_title::after {position: absolute;content: "";background-image: url(/publish/images/main/serviceCenter.png);width: 90px;height: 90px;top: 11px;left: 12px;} -.main_cont3 .service_center .tablet .service_center_title p {font-size: 32px;font-weight: 700; color: #23428b;padding-bottom: 10px; letter-spacing: -1px;line-height:35px;} +.main_cont3 .service_center .tablet .service_center_title::after {position: absolute;content: "";background-image: url(/publish/images/main/serviceCenter.png);width: 90px;height: 90px;top: -11px;left: 12px;} +.main_cont3 .service_center .tablet .service_center_title p {margin: 0 0 0 -3px; font-size: 32px;font-weight: 700; color: #23428b;padding-bottom: 10px; letter-spacing: -1px;line-height:35px;} .main_cont3 .service_center .tablet .service_center_title span {font-size: 17px;font-weight: 300; } -.main_cont3 .service_center .tablet .serive_info {background-image: url(/publish/images/main/serviceCenter_text.png);background-repeat: no-repeat;height: 71px;margin: 15px 0;} +.main_cont3 .service_center .tablet .serive_info {background-image: url(/publish/images/main/serviceCenter_text.png);background-repeat: no-repeat;height: 71px;margin: 27px 0 15px 0;} .main_cont3 .service_center .tablet .serive_info p{line-height: 1.5;padding: 13px 18px;font-size: 16px; font-weight: 400;} .main_cont3 .service_center .tablet .serive_btn {text-align: center;display: flex;height: 47px;} .main_cont3 .service_center .tablet .serive_btn li {display: inline-block;width: calc(100% - 2px /3);border: 1px solid #d5d5d5;margin-left: -1px; box-sizing: border-box;} @@ -237,7 +237,7 @@ .main_cont3 .service_center .tablet>div {padding: 15px 20px 0 20px;} .main_cont3 .service_center .tablet .serive_info{background-size: 100% 100%} .main_cont3 .service_center .tablet .serive_info p{padding: 13px 10px 13px 23px; font-size: 15px} - .main_cont3 .service_center .tablet .service_center_title p {font-size: 28px;} + /*.main_cont3 .service_center .tablet .service_center_title p {font-size: 28px;}*/ /* 광고배너 */ .main_cont4 .inner{padding: 0 70px; box-sizing: border-box;} .main_cont4 .inner img{width: 100%;} @@ -289,7 +289,7 @@ /* content3 */ .main_cont3 .inner>div {flex-basis: calc(100%/3 - 10px);} .main_cont3 .service_center .tablet .serive_info p {padding: 13px 11px;} - .main_cont3 .service_center .tablet .service_center_title p {font-size: 26px;} + .main_cont3 .service_center .tablet .service_center_title p {font-size: 30px;} .main_cont3 .service_center .tablet .service_center_title span {font-size:15px;} /* 광고배너 */ .main_cont4 .inner li{width: calc((100%/4) - 15px);} From b9ccd524175b8607a3264d350bc699e5c5675d76 Mon Sep 17 00:00:00 2001 From: alfk8 Date: Mon, 29 Jul 2024 14:46:28 +0900 Subject: [PATCH 05/15] =?UTF-8?q?2024/07/29=20=EB=AC=B8=EC=9E=90=EC=98=A8?= =?UTF-8?q?=20=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0(=EB=8C=80=ED=91=9C?= =?UTF-8?q?=EB=B2=88=ED=98=B8)=20=EC=88=98=EC=A0=95=5F02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/jsp/block/Block.jsp | 2 +- .../WEB-INF/jsp/web/addragency/AddrAgencyList.jsp | 2 +- .../webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp | 2 +- .../WEB-INF/jsp/web/event/pay/EventPayViewOLD.jsp | 2 +- src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp | 10 +++++----- .../WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp | 2 +- .../webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp | 2 +- .../WEB-INF/jsp/web/pay/PayPrintPointListPopUp.jsp | 4 ++-- .../WEB-INF/jsp/web/pay/PayPrintRefundListPopUp.jsp | 4 ++-- src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp | 2 +- src/main/webapp/WEB-INF/jsp/web/pay/PayViewOld.jsp | 2 +- .../WEB-INF/jsp/web/pay/PrintPayUserListPdfPopUp.jsp | 4 ++-- .../WEB-INF/jsp/web/pay/PrintPayUserListPopUp.jsp | 4 ++-- .../jsp/web/pay/PrintPayUserWithKakaoListPdfPopUp.jsp | 4 ++-- .../jsp/web/pay/PrintPayUserWithKakaoListPopUp.jsp | 4 ++-- src/main/webapp/WEB-INF/jsp/web/pop/infoListPop.jsp | 4 ++-- src/main/webapp/index.jsp | 8 ++++---- 17 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/block/Block.jsp b/src/main/webapp/WEB-INF/jsp/block/Block.jsp index 7f283a9d..7b70c0ec 100644 --- a/src/main/webapp/WEB-INF/jsp/block/Block.jsp +++ b/src/main/webapp/WEB-INF/jsp/block/Block.jsp @@ -13,7 +13,7 @@
    접속 차단된 IP(${ipAddress})입니다.
    관리자에게 문의하세요.
    - 010-8432-9333 + 1551-8011
    diff --git a/src/main/webapp/WEB-INF/jsp/web/addragency/AddrAgencyList.jsp b/src/main/webapp/WEB-INF/jsp/web/addragency/AddrAgencyList.jsp index de869aa2..cd3b948e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addragency/AddrAgencyList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addragency/AddrAgencyList.jsp @@ -157,7 +157,7 @@ function infoPop(pageUrl){

    - 평일 09:30~17:00 사이에 신청하신 경우 당일 처리를 원칙으로 하되, 파일의 상태, 용량 등에 따라 1~2일 정도 소요될 수 있습니다(주말 및 공휴일 처리 불가)

    - 첨부가능 파일 : xlsx, xls, hwp, txt, doc, docx, csv(파일당 최대 용량 10MB)

    - 주소록 등록 대행은 신규 그룹으로만 생성 가능합니다

    -

    - 긴급한 건은 010-8432-9333로 연락 주시기 바랍니다.

    +

    - 긴급한 건은 1551-8011로 연락 주시기 바랍니다.

    - 엑셀파일에 비밀번호 설정, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.

    --%> diff --git a/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp b/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp index 02c87e8a..638ed13d 100644 --- a/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp @@ -1004,7 +1004,7 @@ function TabTypePay(obj, tabId) {
    - <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(010-8432-9333)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%> + <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(1551-8011)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%>

    - 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.

    - 카드사별 정책상 충전금액 제한이 있을 수 있습니다. 단, ARS 신용카드 결제는 충전금액 제한 없이 이용하실 수 있습니다.

    diff --git a/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayViewOLD.jsp b/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayViewOLD.jsp index 9c054452..84583cdd 100644 --- a/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayViewOLD.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayViewOLD.jsp @@ -683,7 +683,7 @@ function TabTypePay(obj, tabId) {
    - <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(010-8432-9333)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%> + <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(1551-8011)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%>

    - 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.

    - 카드사별 정책상 충전금액 제한이 있을 수 있습니다. 단, ARS 신용카드 결제는 충전금액 제한 없이 이용하실 수 있습니다.

    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 efe1a7d9..be042af4 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp @@ -1585,7 +1585,7 @@ function fn_click_banner_add_stat(bannerMenuCode){
    -

    1551-8011

    +

    1551-8011

    E-mail : help@iten.co.kr
    @@ -1674,7 +1674,7 @@ function fn_click_banner_add_stat(bannerMenuCode){

    A.

    - 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(010-8432-9333)로 문의주시면 즉시 처리 도와드리겠습니다. + 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(1551-8011)로 문의주시면 즉시 처리 도와드리겠습니다.

    @@ -1759,7 +1759,7 @@ function fn_click_banner_add_stat(bannerMenuCode){

    A.

    - 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)
    만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(010-8432-9333)로 연락주시면 빠른 처리 도와드리겠습니다. + 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)
    만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(1551-8011)로 연락주시면 빠른 처리 도와드리겠습니다.

    @@ -1836,7 +1836,7 @@ function fn_click_banner_add_stat(bannerMenuCode){ 첫결제 이벤트 잔액이 남아 있더라도 1회 발송 문자수량 및 금액이 이벤트 잔액보다 큰 경우 문자가 발송되지 않으며, 이 경우 이벤트 잔액 이하의 금액으로 문자 수량을 조정해야 문자가 정상 발송됩니다. Q. [결제] 첫결제 이벤트 후 추가 결제를 진행하였는데 잔액 부족으로 문자 발송이 안되는 경우는 왜 그런건가요? - 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(010-8432-9333)로 문의주시면 즉시 처리 도와드리겠습니다. + 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(1551-8011)로 문의주시면 즉시 처리 도와드리겠습니다. Q. [장문·단문·그림문자] 한 번 보낸 문자를 저장해서 계속 보낼 수 있나요? 문자온은 “내문자함” 기능을 제공하기 때문에 한 번 보낸 문자를 저장해서 계속 보낼 수 있습니다.문자전송 페이지에서 문자내용 작성 후 [문자저장] 버튼을 클릭하면 해당 문자가 [내문자함]에 보관되어 언제든지 자유롭게 재발송이 가능합니다. @@ -1851,7 +1851,7 @@ function fn_click_banner_add_stat(bannerMenuCode){ 위임장 양식은 [마이페이지] → [발신번호 관리]에서 다운로드 가능하며 발신번호 명의자를 위임자, 문자온 이용자를 수임자(대리인)로 작성하여 제출해주시면 됩니다. Q. [기타] 문자온 이용 중 버튼이 안눌러지는 등 장애나 오류가 발생한 경우에는 어떻게 해야 하나요? - 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(010-8432-9333)로 연락주시면 빠른 처리 도와드리겠습니다. + 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(1551-8011)로 연락주시면 빠른 처리 도와드리겠습니다. Q. [기타] 투넘버 또는 투폰 이용 시 발신번호 등록이 가능한가요? 투넘버 및 투폰 번호의 경우 두 번째 번호는 가상의 번호인 관계로 이동통신사 및 가입 유형에 따라 본인 인증이 불가할 수 있습니다. 이 경우 고객님께서 가입하신 통신사를 통해 본인 인증 가능여부 확인 후 등록 신청을 진행해주시기 바랍니다. diff --git a/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp index c31a2eb2..a97386b8 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp @@ -3898,7 +3898,7 @@ $(document).on('click', '#hdnLink', function() { --> - ※ 자동동보문자를 한번에 20,000건 이상 보내실 경우에는 꼭 고객센터(010-8432-9333)로 연락주시어 발송 요청 후 진행해 주시길 바랍니다. + ※ 자동동보문자를 한번에 20,000건 이상 보내실 경우에는 꼭 고객센터(1551-8011)로 연락주시어 발송 요청 후 진행해 주시길 바랍니다. 발신번호 diff --git a/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp index ad55e974..1034a9f1 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp @@ -1007,7 +1007,7 @@ function fn_sendMsgData(){ //자동동보문자 2만건 초과시 발송 안되도록 처리함. var totSendDataCnt = selectedData.length; if(totSendDataCnt > 20000){ - alert("자동동보문자를 한번에 20,000건 이상 보내실 경우에는 꼭 고객센터(010-8432-9333)로 연락주시어 발송 요청 후 진행해 주시길 바랍니다."); + alert("자동동보문자를 한번에 20,000건 이상 보내실 경우에는 꼭 고객센터(1551-8011)로 연락주시어 발송 요청 후 진행해 주시길 바랍니다."); return false; } diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintPointListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintPointListPopUp.jsp index 44b39abe..99b859a7 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintPointListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintPointListPopUp.jsp @@ -41,7 +41,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -158,7 +158,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintRefundListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintRefundListPopUp.jsp index bfa376a4..168a8b99 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintRefundListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayPrintRefundListPopUp.jsp @@ -41,7 +41,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -158,7 +158,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp index b890b93c..5e55b320 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp @@ -911,7 +911,7 @@ function fnShowVaViewPrintPopup() {
    - <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(010-8432-9333)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%> + <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(1551-8011)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%>

    - 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.

    - 카드사별 정책상 충전금액 제한이 있을 수 있습니다. 단, ARS 신용카드 결제는 충전금액 제한 없이 이용하실 수 있습니다.

    diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayViewOld.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayViewOld.jsp index 1644d5a1..e4c7811e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayViewOld.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayViewOld.jsp @@ -572,7 +572,7 @@ function getMberGrdChk() {
    - <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(010-8432-9333)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%> + <%--

    - 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(1551-8011)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.

    --%>

    - 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.

    - 카드사별 정책상 충전금액 제한이 있을 수 있습니다. 단, ARS 신용카드 결제는 충전금액 제한 없이 이용하실 수 있습니다.

    diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPdfPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPdfPopUp.jsp index b95ae3d3..9b22b06c 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPdfPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPdfPopUp.jsp @@ -83,7 +83,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -236,7 +236,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPopUp.jsp index e7e95876..1a04574f 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserListPopUp.jsp @@ -41,7 +41,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -197,7 +197,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPdfPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPdfPopUp.jsp index b95ae3d3..9b22b06c 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPdfPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPdfPopUp.jsp @@ -83,7 +83,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -236,7 +236,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPopUp.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPopUp.jsp index e7e95876..be2534e9 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPopUp.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserWithKakaoListPopUp.jsp @@ -41,7 +41,7 @@ 문자온 CI

    (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

    -

    TEL 010-8432-9333

    +

    TEL 1551-8011

    @@ -197,7 +197,7 @@ 대표번호 - 010-8432-9333 + 1551-8011 이메일 diff --git a/src/main/webapp/WEB-INF/jsp/web/pop/infoListPop.jsp b/src/main/webapp/WEB-INF/jsp/web/pop/infoListPop.jsp index 1d115887..d85d020d 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pop/infoListPop.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pop/infoListPop.jsp @@ -282,7 +282,7 @@
  • 평일 09:30~17:00 사이에 신청하신 경우 당일 처리를 원칙으로 하되, 파일의 상태, 용량 등에 따라 1~2일 정도 소요될 수 있습니다(주말 및 공휴일 처리 불가)
  • 첨부가능 파일 : xlsx, xls, hwp, litxt, doc, docx, csv(파일당 최대 용량 10MB)
  • 주소록 등록 대행은 신규 그룹으로만 생성 가능합니다
  • -
  • 긴급한 건은 010-8432-9333로 연락 주시기 바랍니다.
  • +
  • 긴급한 건은 1551-8011로 연락 주시기 바랍니다.
  • 엑셀파일에 비밀번호 설정, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.
@@ -392,7 +392,7 @@
  • 견적서는 발행일로부터 30일간 유효합니다.
  • 견적서는 결제방식, 옵션 등에 따라 차이가 발생할 수 있습니다.
  • -
  • 대량발송의 경우 단가협의가 가능하오니 010-8432-9333로 문의 바랍니다.
  • +
  • 대량발송의 경우 단가협의가 가능하오니 1551-8011로 문의 바랍니다.
diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 3952d39d..49cb0713 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -66,7 +66,7 @@ 첫결제 이벤트 잔액이 남아 있더라도 1회 발송 문자수량 및 금액이 이벤트 잔액보다 큰 경우 문자가 발송되지 않으며, 이 경우 이벤트 잔액 이하의 금액으로 문자 수량을 조정해야 문자가 정상 발송됩니다. Q. [결제] 첫결제 이벤트 후 추가 결제를 진행하였는데 잔액 부족으로 문자 발송이 안되는 경우는 왜 그런건가요? - 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(010-8432-9333)로 문의주시면 즉시 처리 도와드리겠습니다. + 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(1551-8011)로 문의주시면 즉시 처리 도와드리겠습니다. Q. [장문·단문·그림문자] 한 번 보낸 문자를 저장해서 계속 보낼 수 있나요? 문자온은 “내문자함” 기능을 제공하기 때문에 한 번 보낸 문자를 저장해서 계속 보낼 수 있습니다.문자전송 페이지에서 문자내용 작성 후 [문자저장] 버튼을 클릭하면 해당 문자가 [내문자함]에 보관되어 언제든지 자유롭게 재발송이 가능합니다. @@ -81,7 +81,7 @@ 위임장 양식은 [마이페이지] → [발신번호 관리]에서 다운로드 가능하며 발신번호 명의자를 위임자, 문자온 이용자를 수임자(대리인)로 작성하여 제출해주시면 됩니다. Q. [기타] 문자온 이용 중 버튼이 안눌러지는 등 장애나 오류가 발생한 경우에는 어떻게 해야 하나요? - 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(010-8432-9333)로 연락주시면 빠른 처리 도와드리겠습니다. + 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(1551-8011)로 연락주시면 빠른 처리 도와드리겠습니다. Q. [기타] 투넘버 또는 투폰 이용 시 발신번호 등록이 가능한가요? 투넘버 및 투폰 번호의 경우 두 번째 번호는 가상의 번호인 관계로 이동통신사 및 가입 유형에 따라 본인 인증이 불가할 수 있습니다. 이 경우 고객님께서 가입하신 통신사를 통해 본인 인증 가능여부 확인 후 등록 신청을 진행해주시기 바랍니다. @@ -283,7 +283,7 @@

A.

- 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(010-8432-9333)로 문의주시면 즉시 처리 도와드리겠습니다. + 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(1551-8011)로 문의주시면 즉시 처리 도와드리겠습니다.

@@ -368,7 +368,7 @@

A.

- 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)
만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(010-8432-9333)로 연락주시면 빠른 처리 도와드리겠습니다. + 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)
만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(1551-8011)로 연락주시면 빠른 처리 도와드리겠습니다.

From cddc61308730f816e30cedda3b58bcefbf753035 Mon Sep 17 00:00:00 2001 From: subsub Date: Mon, 29 Jul 2024 18:13:50 +0900 Subject: [PATCH 06/15] =?UTF-8?q?2024/07/29=20=EB=AC=B8=EC=9E=90=EC=98=A8?= =?UTF-8?q?=20kisa=20=EC=8B=A0=EA=B3=A0=20=EA=B4=80=EB=A6=AC=EB=8C=80?= =?UTF-8?q?=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../publish/kisa_management_ledger.html | 51 +++++++++++++++++-- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/publish/kisa_management_ledger.html b/src/main/webapp/publish/kisa_management_ledger.html index b80708ca..108071ab 100644 --- a/src/main/webapp/publish/kisa_management_ledger.html +++ b/src/main/webapp/publish/kisa_management_ledger.html @@ -7,11 +7,52 @@ 문자온 KISA 신고 관리대장 - - - - - + + From 381d36f1603c4af3305cce4b29b972266a30ffc5 Mon Sep 17 00:00:00 2001 From: subsub Date: Tue, 30 Jul 2024 10:42:37 +0900 Subject: [PATCH 07/15] =?UTF-8?q?2024/07/30=20=EC=82=AC=EC=9A=A9=EB=82=B4?= =?UTF-8?q?=EC=97=AD=EC=84=9C,=20=EA=B1=B0=EB=9E=98=EB=AA=85=EC=84=B8?= =?UTF-8?q?=EC=84=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/publish/css/estimate.css | 5 +- .../webapp/publish/transaction_detail.html | 279 ++++++++++++++++++ src/main/webapp/publish/use_statement.html | 133 +++++++++ 3 files changed, 416 insertions(+), 1 deletion(-) create mode 100644 src/main/webapp/publish/transaction_detail.html create mode 100644 src/main/webapp/publish/use_statement.html diff --git a/src/main/webapp/publish/css/estimate.css b/src/main/webapp/publish/css/estimate.css index c13ca07c..a1d37130 100644 --- a/src/main/webapp/publish/css/estimate.css +++ b/src/main/webapp/publish/css/estimate.css @@ -38,7 +38,7 @@ .est_table2_wrap {border-radius: 5px; border: 1px solid #ccc; margin-top: 5px;} .est_table2 {width: 100%;border:1px solid #ccc;border-radius:5px;} .est_table2 thead tr {background-color: #f2f2f2; border-bottom: 1px solid #ccc;} -.est_table2 thead th {height: 33px; line-height: 33px; font-size: 13px; border-left: 1px solid #ccc;} +.est_table2 thead th {height: 33px; line-height: 33px; font-size: 13px; border-left: 1px solid #ccc; font-weight:500;} .est_table2 thead th:first-child {border-left: 0; /* border-radius: 5px 0 0 0 */} .est_table2 thead th:last-child {/* border-radius: 0 5px 0 0 */} .est_table2 tbody tr {border-bottom: 1px solid #ccc; text-align: center;} @@ -51,6 +51,9 @@ .est_table2 tbody tr:last-child td:last-child {border-radius: 0 0 5px 0;} .est_table2 tbody tr:last-child th, .est_table2 tbody tr:last-child td {border-bottom:1px solid #ccc;} +.est_table2 tfoot tr{border-top:3px double #d8d8d8;} +.est_table2 tfoot tr th, .est_table2 tfoot tr td {height: 33px; line-height: 33px; font-size: 13px; border-left: 1px solid #ccc;} +.est_table2 tfoot tr th{background:#f5f5f5;font-weight:500;} /* 합계 */ .est_table2 tbody tr.total_price td {border-top: 1px solid #d7d7d7; border-left:0; border-right: 1px solid #d7d7d7; background-color: #f2f2f2;} .est_table2 tbody tr.total_price td:first-child {border-radius: 0 0 0 5px;} diff --git a/src/main/webapp/publish/transaction_detail.html b/src/main/webapp/publish/transaction_detail.html new file mode 100644 index 00000000..cf7e009b --- /dev/null +++ b/src/main/webapp/publish/transaction_detail.html @@ -0,0 +1,279 @@ + + + + + + + 거래명세서 + + + + + + + + + + + +
+
+
+ 문자온 CI +
+

(12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

+

TEL 1551-8011

+
+
+
+

거래명세서(공급받는자 보관용)

+
+
+

공급받는 자

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
등록번호, 상호, 성명, 전화번호, 이메일 정보 제공
등록번호123-45-67890
상     호주식회사 OOO
성     명홍길동
전화번호02-000-1111
이 메 일hgd@gmail.com
+
+
+

공급자

+ 도장 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
등록번호, 상호, 성명, 전화번호, 이메일 정보 제공
등록번호123-45-67890
상     호주식회사 OOO
성     명홍길동
전화번호02-000-1111
이 메 일hgd@gmail.com
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
작성일자, 공급가액, 세액, 비고 정보를 제공하는 표
작성일자공급가액세액
2024-07-18500,00050,000
비고사용기간(2024-01-01 ~ 2024-01-31)
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
월, 일, 품목, 규격, 수량, 단가, 공급가액, 세액, 비고 정보를 제공하는 표
품목규격수량단가공급가액세액비고
718문자온 메시징 서비스 이용료500,00050,000-
합계금액전잔액입금액현잔액이 금액을 [청 구]함
550,000--550,000
+
+
+
+

2021 년  6 월  17

+
+ + 주식회사 아이티앤 + 유  인  식  (인) +
+
+
+
+ +
+
+
+ diff --git a/src/main/webapp/publish/use_statement.html b/src/main/webapp/publish/use_statement.html new file mode 100644 index 00000000..fb80c565 --- /dev/null +++ b/src/main/webapp/publish/use_statement.html @@ -0,0 +1,133 @@ + + + + + + + 사용내역서 + + + + + + + + + + + +
+
+
+ 문자온 CI +
+

(12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

+

TEL 1551-8011

+
+
+
+

사용내역서

+
+
+

수신자

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
가상계좌 사실 확인
등록번호123-45-67890
상     호주식회사 OOO
성     명홍길동
전화번호02-000-1111
이 메 일hgd@gmail.com
주식회사 OOO 님의 사용내역(2024-01-01 ~ 2024-07-19)을 아래와 같이 확인합니다.
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
사용일시, 문자유형, 발송건수, 사용금액(VAT 별도) 정보를 제공하는 표
사용일시문자유형발송건수사용금액(VAT 별도)
2024-07-18 12:11단문17.5
2024-07-18 12:11장문264
2024-07-18 12:11그림159
2024-07-18 12:11단문215
+
+
+

총 사용금액(세금계산서 발행 시 월단위 미만 절사)

+

385,000

+
+
+
+

2021 년  6 월  17

+
+ + 주식회사 아이티앤 + 유  인  식  (인) +
+
+
+
+ +
+
+
+ From 91b82f2f53b95536034da898ea639bfc66d45aad Mon Sep 17 00:00:00 2001 From: wyh Date: Wed, 31 Jul 2024 14:46:04 +0900 Subject: [PATCH 08/15] =?UTF-8?q?=EB=AC=B8=EC=9E=90=EC=98=A8=20=EB=8C=80?= =?UTF-8?q?=ED=91=9C=EB=B2=88=ED=98=B8=20=EB=B3=80=EA=B2=BD=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B8=ED=95=9C=2015518011=20=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mail/service/impl/MailTemplateServiceImpl.java | 2 +- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java | 2 +- .../java/itn/let/mjo/msg/web/MjonMsgController.java | 12 ++++++------ .../msgcampain/web/MjonMsgCampainDataController.java | 2 +- .../let/mjo/msgdata/web/MjonMsgDataController.java | 2 +- .../java/itn/let/mjo/pay/web/MjonPayController.java | 2 +- .../let/mjo/spammsg/web/MjonSpamMsgController.java | 2 +- .../itn/let/uat/uia/web/EgovLoginController.java | 12 ++++++------ .../itn/let/uat/uia/web/EgovMypageController.java | 8 ++++---- .../let/uss/umt/web/EgovMberCmpHstController.java | 6 +++--- .../let/uss/umt/web/EgovUserManageController.java | 2 +- .../itn/let/utl/user/service/MjonNoticeSendUtil.java | 12 ++++++------ .../let/utl/user/service/MjonSmsCertSendUtil.java | 2 +- .../sqlmap/let/agent/MjonAgent_SQL_mysql.xml | 1 + .../webapp/WEB-INF/jsp/agent/MjonMsgAgentSend.jsp | 2 +- .../jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp | 2 +- .../WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp | 2 +- .../WEB-INF/jsp/uss/ion/kakaoft/SendKakaoFTList.jsp | 2 +- .../webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp | 2 +- src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp | 2 +- .../webapp/WEB-INF/jsp/web/main/mainPageTest.jsp | 10 +++++----- 21 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/main/java/itn/let/mail/service/impl/MailTemplateServiceImpl.java b/src/main/java/itn/let/mail/service/impl/MailTemplateServiceImpl.java index 100fdfbd..4207a323 100644 --- a/src/main/java/itn/let/mail/service/impl/MailTemplateServiceImpl.java +++ b/src/main/java/itn/let/mail/service/impl/MailTemplateServiceImpl.java @@ -155,7 +155,7 @@ public class MailTemplateServiceImpl extends EgovAbstractServiceImpl implements // 시스템 발송 로그 SendLogVO sendLogVO = new SendLogVO(); sendLogVO.setSendType("1"); // 발송 이력 저장 SendType 1:문자로 발송 2:이메일로 발송 - sendLogVO.setFrstSendInfo("01084329333"); + sendLogVO.setFrstSendInfo("15518011"); sendLogVO.setReceive(callTo); sendLogVO.setContents(smsTxt); //mjonMsgDataService.insertSysMsgLog(sendLogVO); diff --git a/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java b/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java index 4e66a0cb..988a3018 100644 --- a/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java +++ b/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java @@ -167,7 +167,7 @@ public class MjonCommon { //수신번호가 배열로 되어있어서 배열에 담아준다. String[] phone = new String[1]; - String callTo = "01084329333"; + String callTo = "15518011"; phone[0] = callTo; mjonMsgVO.setCallToList(phone);//수신번호 리스트 diff --git a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java index e9148f36..50ed83ae 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -1708,8 +1708,8 @@ public class MjonMsgController { MjonCommon mjCommon = new MjonCommon(); MjonMsgVO mjonMsgVO = new MjonMsgVO(); - //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 01084329333 ) - mjonMsgVO.setCallFrom("01084329333"); + //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 15518011 ) + mjonMsgVO.setCallFrom("15518011"); String smsTxt = ""; //발송 문자 내용 등록 //문자 발송 문구 변경 - 221117, 승인, 반려를 제외한 인증 타입 삭제(미인증, 심사중, 추가인증필요) @@ -2076,8 +2076,8 @@ public class MjonMsgController { MjonCommon mjCommon = new MjonCommon(); MjonMsgVO mjonMsgVO = new MjonMsgVO(); - //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 01084329333 ) - mjonMsgVO.setCallFrom("01084329333"); + //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 15518011 ) + mjonMsgVO.setCallFrom("15518011"); String smsTxt = ""; //발송 문자 내용 등록 //문자 발송 문구 변경 - 221117, 승인, 반려를 제외한 인증 타입 삭제(미인증, 심사중, 추가인증필요) @@ -2530,7 +2530,7 @@ public class MjonMsgController { // Step1. 문자발송 Map mapInfo = new HashMap(); - mapInfo = sendMsgData("system", code, "01084329333", callee); + mapInfo = sendMsgData("system", code, "15518011", callee); isSuccess = Boolean.parseBoolean((mapInfo.get("IsSuccess").toString())); msg = mapInfo.get("Msg").toString(); }catch(Exception e) { @@ -4075,7 +4075,7 @@ public class MjonMsgController { contents += "

문자온 서비스를 이용해 주셔서 감사합니다.

"; contents += "
"; contents += "

본 메일은 발신전용이며, 문의에 대한 회신은 처리되지 않습니다. 문자온 관련하여 궁금하신 점이나 불편한 사항은 고객센터를 통해 문의하여 주시기 바랍니다.

"; - contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 010-8432-9333 | E-mail : help@iten.co.kr

"; + contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 1551-8011 | E-mail : help@iten.co.kr

"; contents += "

Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.

"; contents += "
"; contents += ""; diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java index 29776aba..e6fe846c 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java @@ -3286,7 +3286,7 @@ public class MjonMsgCampainDataController { //수신번호가 배열로 되어있어서 배열에 담아준다. String[] phone = new String[1]; - String callTo = "01084329333"; + String callTo = "15518011"; phone[0] = callTo; mjonMsgVO.setCallToList(phone);//수신번호 리스트 diff --git a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java index e4b4f97a..16b49177 100644 --- a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java +++ b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java @@ -3133,7 +3133,7 @@ public class MjonMsgDataController { //수신번호가 배열로 되어있어서 배열에 담아준다. String[] phone = new String[1]; - String callTo = "01084329333"; + String callTo = "15518011"; phone[0] = callTo; mjonMsgVO.setCallToList(phone);//수신번호 리스트 diff --git a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java index 152a69cc..b787174d 100644 --- a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java +++ b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java @@ -4700,7 +4700,7 @@ public class MjonPayController { MjonCommon mjCommon = new MjonCommon(); MjonMsgVO mjonMsgVO = new MjonMsgVO(); - mjonMsgVO.setCallFrom("01084329333"); + mjonMsgVO.setCallFrom("15518011"); //포인트 3자리수 콤마 처리 NumberFormat numberFormat = NumberFormat.getInstance(); String point = numberFormat.format(mjonPayVO.getPoint()); diff --git a/src/main/java/itn/let/mjo/spammsg/web/MjonSpamMsgController.java b/src/main/java/itn/let/mjo/spammsg/web/MjonSpamMsgController.java index 1bfe1349..286501f2 100644 --- a/src/main/java/itn/let/mjo/spammsg/web/MjonSpamMsgController.java +++ b/src/main/java/itn/let/mjo/spammsg/web/MjonSpamMsgController.java @@ -259,7 +259,7 @@ public class MjonSpamMsgController { //수신번호가 배열로 되어있어서 배열에 담아준다. String[] phone = new String[1]; - String callTo = "01084329333"; + String callTo = "15518011"; phone[0] = callTo; mjonMsgVO.setCallToList(phone);//수신번호 리스트 diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index 21d369bd..3a4f25b9 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -831,9 +831,9 @@ public class EgovLoginController { MjonMsgVO mjonMsgVO = new MjonMsgVO(); String contents = ""; if("p".equals(mberManageVO.getDept())){ //개인회원 - contents = "[문자온] "+mberManageVO.getMberNm()+"님의 회원가입을 진심으로 환영합니다."+System.lineSeparator()+"o 사이트 주소 : www.munjaon.co.kr"+System.lineSeparator()+"o 가입아이디 : "+mberManageVO.getMberId()+System.lineSeparator()+"인증전화번호 : "+mberManageVO.getMoblphonNo()+System.lineSeparator()+"※ 본인이 직접 가입하지 않은 경우 문자온 고객센터(010-8432-9333)로 즉시 연락주시기 바랍니다."+System.lineSeparator()+System.lineSeparator()+"감사합니다."; + contents = "[문자온] "+mberManageVO.getMberNm()+"님의 회원가입을 진심으로 환영합니다."+System.lineSeparator()+"o 사이트 주소 : www.munjaon.co.kr"+System.lineSeparator()+"o 가입아이디 : "+mberManageVO.getMberId()+System.lineSeparator()+"인증전화번호 : "+mberManageVO.getMoblphonNo()+System.lineSeparator()+"※ 본인이 직접 가입하지 않은 경우 문자온 고객센터(1551-8011)로 즉시 연락주시기 바랍니다."+System.lineSeparator()+System.lineSeparator()+"감사합니다."; }else{ //기업회원 - contents = "[문자온] "+mberManageVO.getMberNm()+"님의 회원가입을 진심으로 환영합니다."+System.lineSeparator()+"o 사이트 주소 : www.munjaon.co.kr"+System.lineSeparator()+"o 가입아이디 : "+mberManageVO.getMberId()+System.lineSeparator()+"인증전화번호 : "+mberManageVO.getMoblphonNo()+System.lineSeparator()+"※ 본인이 직접 가입하지 않은 경우 문자온 고객센터(010-8432-9333)로 즉시 연락주시기 바랍니다."+System.lineSeparator()+"※ 기업회원은 필수 제출서류 관리자 확인 후 최종 승인됩니다."+System.lineSeparator()+"감사합니다."; + contents = "[문자온] "+mberManageVO.getMberNm()+"님의 회원가입을 진심으로 환영합니다."+System.lineSeparator()+"o 사이트 주소 : www.munjaon.co.kr"+System.lineSeparator()+"o 가입아이디 : "+mberManageVO.getMberId()+System.lineSeparator()+"인증전화번호 : "+mberManageVO.getMoblphonNo()+System.lineSeparator()+"※ 본인이 직접 가입하지 않은 경우 문자온 고객센터(1551-8011)로 즉시 연락주시기 바랍니다."+System.lineSeparator()+"※ 기업회원은 필수 제출서류 관리자 확인 후 최종 승인됩니다."+System.lineSeparator()+"감사합니다."; } // 문자타입별 대표전송사 정보 @@ -848,7 +848,7 @@ public class EgovLoginController { mjonMsgVO.setSmsTxt(contents); //문자 내용 mjonMsgVO.setReserveYn("N");//에약문자 N - mjonMsgVO.setCallFrom("01084329333");//발신번호 + mjonMsgVO.setCallFrom("15518011");//발신번호 mjonMsgVO.setUserId("system"); //ID mjonMsgVO.setMsgType("6"); //MMS - 장문 mjonMsgVO.setBefCash("0.0"); //관리자가 발송하는 것이라서 0원으로 입력 @@ -2661,7 +2661,7 @@ public class EgovLoginController { mjonMsgVO.setSmsTxt(contents); mjonMsgVO.setReserveYn("N"); // 시스템 문자발송 번호 - mjonMsgVO.setCallFrom("01084329333"); + mjonMsgVO.setCallFrom("15518011"); // 문자 수신 번호 jsp에서 받아와야함! /* mjonMsgVO.setCallTo(callTo); */ @@ -2830,7 +2830,7 @@ public class EgovLoginController { mjonMsgVO.setSmsTxt(contents); mjonMsgVO.setReserveYn("N"); // 시스템 문자발송 번호 - mjonMsgVO.setCallFrom("01084329333"); + mjonMsgVO.setCallFrom("15518011"); try { @@ -3442,7 +3442,7 @@ public class EgovLoginController { contents += "

문자온 서비스를 이용해 주셔서 감사합니다.

"; contents += "
"; contents += "

본 메일은 발신전용이며, 문의에 대한 회신은 처리되지 않습니다. 문자온 관련하여 궁금하신 점이나 불편한 사항은 고객센터를 통해 문의하여 주시기 바랍니다.

"; - contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 010-8432-9333 | E-mail : help@iten.co.kr

"; + contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 1551-8011 | E-mail : help@iten.co.kr

"; contents += "

Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.

"; contents += "
"; contents += ""; diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java index 8e705e58..7d13c676 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -1753,8 +1753,8 @@ public class EgovMypageController { MjonCommon mjCommon = new MjonCommon(); MjonMsgVO mjonMsgVO = new MjonMsgVO(); - //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 01084329333 ) - mjonMsgVO.setCallFrom("01084329333"); + //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 15518011 ) + mjonMsgVO.setCallFrom("15518011"); //발송 문자 내용 등록 String smsTxt = "[발신번호 재승인 요청] "+ userNm +"(" + userId + ")/발신번호 " + phoneNum + "/재승인 요청"; mjonMsgVO.setSmsTxt(smsTxt); @@ -2667,8 +2667,8 @@ public class EgovMypageController { MjonCommon mjCommon = new MjonCommon(); MjonMsgVO mjonMsgVO = new MjonMsgVO(); - //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 01084329333 ) - mjonMsgVO.setCallFrom("01084329333"); + //발신번호 등록(관리자에게 알림이기에 발신번호도 법인폰 번호로 한다. 15518011 ) + mjonMsgVO.setCallFrom("15518011"); //발송 문자 내용 등록 String smsTxt = "[발신번호 승인 요청] "+ userNm +"(" + userId + ")/발신번호 " + phoneNum + "/승인 요청"; mjonMsgVO.setSmsTxt(smsTxt); diff --git a/src/main/java/itn/let/uss/umt/web/EgovMberCmpHstController.java b/src/main/java/itn/let/uss/umt/web/EgovMberCmpHstController.java index 42fd91ac..57b0773d 100644 --- a/src/main/java/itn/let/uss/umt/web/EgovMberCmpHstController.java +++ b/src/main/java/itn/let/uss/umt/web/EgovMberCmpHstController.java @@ -376,7 +376,7 @@ public class EgovMberCmpHstController { mjonMsgVO.setSmsTxt(contents); //문자 내용 mjonMsgVO.setReserveYn("N");//에약문자 N - mjonMsgVO.setCallFrom("01084329333");//발신번호 + mjonMsgVO.setCallFrom("15518011");//발신번호 mjonMsgVO.setUserId("system"); //ID mjonMsgVO.setBefCash("0.0"); //관리자가 발송하는 것이라서 0원으로 입력 @@ -590,7 +590,7 @@ public class EgovMberCmpHstController { mjonMsgVO.setSmsTxt(contents); //문자 내용 mjonMsgVO.setReserveYn("N");//에약문자 N - mjonMsgVO.setCallFrom("01084329333");//발신번호 + mjonMsgVO.setCallFrom("15518011");//발신번호 mjonMsgVO.setUserId("system"); //ID mjonMsgVO.setBefCash("0.0"); //관리자가 발송하는 것이라서 0원으로 입력 @@ -763,7 +763,7 @@ public class EgovMberCmpHstController { mjonMsgVO.setSmsTxt(contents); //문자 내용 mjonMsgVO.setReserveYn("N");//에약문자 N - mjonMsgVO.setCallFrom("01084329333");//발신번호 + mjonMsgVO.setCallFrom("15518011");//발신번호 mjonMsgVO.setUserId("system"); //ID mjonMsgVO.setBefCash("0.0"); //관리자가 발송하는 것이라서 0원으로 입력 diff --git a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java index 95c2cbc6..b9b827c9 100644 --- a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java +++ b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java @@ -3048,7 +3048,7 @@ public class EgovUserManageController { contents += "

문자온 서비스를 이용해 주셔서 감사합니다.

"; contents += "
"; contents += "

본 메일은 발신전용이며, 문의에 대한 회신은 처리되지 않습니다. 문자온 관련하여 궁금하신 점이나 불편한 사항은 고객센터를 통해 문의하여 주시기 바랍니다.

"; - contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 010-8432-9333 | E-mail : help@iten.co.kr

"; + contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 1551-8011 | E-mail : help@iten.co.kr

"; contents += "

Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.

"; contents += "
"; contents += ""; diff --git a/src/main/java/itn/let/utl/user/service/MjonNoticeSendUtil.java b/src/main/java/itn/let/utl/user/service/MjonNoticeSendUtil.java index db56400c..e5f4cd4d 100644 --- a/src/main/java/itn/let/utl/user/service/MjonNoticeSendUtil.java +++ b/src/main/java/itn/let/utl/user/service/MjonNoticeSendUtil.java @@ -104,7 +104,7 @@ public class MjonNoticeSendUtil { contents += "

%emailContents%

"; contents += "
"; contents += "

본 메일은 발신전용이며, 문의에 대한 회신은 처리되지 않습니다. 문자온 관련하여 궁금하신 점이나 불편한 사항은 고객센터를 통해 문의하여 주시기 바랍니다.

"; - contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 010-8432-9333 | E-mail : help@iten.co.kr

"; + contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 1551-8011 | E-mail : help@iten.co.kr

"; contents += "

Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.

"; contents += "
"; contents += ""; @@ -213,7 +213,7 @@ public class MjonNoticeSendUtil { contents += "

%emailContents%

"; contents += "
"; contents += "

본 메일은 발신전용이며, 문의에 대한 회신은 처리되지 않습니다. 문자온 관련하여 궁금하신 점이나 불편한 사항은 고객센터를 통해 문의하여 주시기 바랍니다.

"; - contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 010-8432-9333 | E-mail : help@iten.co.kr

"; + contents += "

주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)
사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422
문의전화 : 1551-8011 | E-mail : help@iten.co.kr

"; contents += "

Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.

"; contents += "
"; contents += ""; @@ -301,7 +301,7 @@ public class MjonNoticeSendUtil { mjonMsgVO.setMsgKind("S"); mjonMsgVO.setSmsTxt(smsTxt); // 문자 내용 mjonMsgVO.setReserveYn("N"); // 즉시 전송 - mjonMsgVO.setCallFrom("01084329333"); // 시스템 문자발송 번호 + mjonMsgVO.setCallFrom("15518011"); // 시스템 문자발송 번호 mjonMsgVO.setUserId("system"); mjonMsgVO.setMsgPayCode("SMS"); mjonMsgVO.setMsgGroupCnt("0"); @@ -371,14 +371,14 @@ public class MjonNoticeSendUtil { mjonMsgVO.setUserId("system"); // 문자전송 ID mjonMsgVO.setSmsTxt(smsTxt); // 문자 내용 mjonMsgVO.setReserveYn("N"); // 즉시 전송 - mjonMsgVO.setCallFrom("01084329333"); // 시스템 문자발송 번호 + mjonMsgVO.setCallFrom("15518011"); // 시스템 문자발송 번호 mjonMsgVO.setUserId("system"); mjonMsgVO.setMsgPayCode("SMS"); mjonMsgVO.setMsgGroupCnt("0"); mjonMsgVO.setReqDate(simpleDateFormat2.format(nowDate)); // 받는사람 - mjonMsgVO.setCallTo("01084329333"); + mjonMsgVO.setCallTo("15518011"); MjonMsgReturnVO returnVO = mjonMsgDataService.insertSysMsgDataInfo(mjonMsgVO); returnVO.getSendMsgCnt(); @@ -447,7 +447,7 @@ public class MjonNoticeSendUtil { mjonMsgVO.setFileCnt("0"); //첨부이미지 갯수 mjonMsgVO.setSmsTxt(smsTxt); // 문자 내용 mjonMsgVO.setReserveYn("N"); // 즉시 전송 - mjonMsgVO.setCallFrom("01084329333"); // 시스템 문자발송 번호 + mjonMsgVO.setCallFrom("15518011"); // 시스템 문자발송 번호 mjonMsgVO.setUserId("system"); mjonMsgVO.setMsgPayCode("SMS"); mjonMsgVO.setMsgGroupCnt("0"); diff --git a/src/main/java/itn/let/utl/user/service/MjonSmsCertSendUtil.java b/src/main/java/itn/let/utl/user/service/MjonSmsCertSendUtil.java index 573e7367..97c80f98 100644 --- a/src/main/java/itn/let/utl/user/service/MjonSmsCertSendUtil.java +++ b/src/main/java/itn/let/utl/user/service/MjonSmsCertSendUtil.java @@ -72,7 +72,7 @@ public class MjonSmsCertSendUtil { mjonMsgVO.setSmsTxt(contents); mjonMsgVO.setReserveYn("N"); // 시스템 문자발송 번호 - mjonMsgVO.setCallFrom("01084329333"); + mjonMsgVO.setCallFrom("15518011"); mjonMsgVO.setCallTo(callTo); try { diff --git a/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml index 1b625a9f..529ffb04 100644 --- a/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml @@ -109,6 +109,7 @@ MJ_AGENT_SEND_RATE SET REP_AGENT = #repAgent# + , LAST_UPDT_PNTTM = now() WHERE 1=1 AND MSG_TYPE = #msgType# diff --git a/src/main/webapp/WEB-INF/jsp/agent/MjonMsgAgentSend.jsp b/src/main/webapp/WEB-INF/jsp/agent/MjonMsgAgentSend.jsp index 5ec7ab69..d5c2c1e7 100644 --- a/src/main/webapp/WEB-INF/jsp/agent/MjonMsgAgentSend.jsp +++ b/src/main/webapp/WEB-INF/jsp/agent/MjonMsgAgentSend.jsp @@ -232,7 +232,7 @@ function setClear() { 발신번호 - + diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp index f724f8e5..3c2fe97e 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp @@ -5752,7 +5752,7 @@ function kakaoATDelayCancel(msgGroupId){ 발신번호 - + 수신번호 diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp index 7ac56f94..2c284856 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp @@ -818,7 +818,7 @@ function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg) { - + diff --git a/src/main/webapp/WEB-INF/jsp/web/main/mainPageTest.jsp b/src/main/webapp/WEB-INF/jsp/web/main/mainPageTest.jsp index eccc4ff4..789c6b34 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPageTest.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPageTest.jsp @@ -1530,7 +1530,7 @@ function fn_click_banner_add_stat(bannerMenuCode){
-

010-8432-9333
010-2290-4786

+

1551-8011

E-mail : help@iten.co.kr
@@ -1619,7 +1619,7 @@ function fn_click_banner_add_stat(bannerMenuCode){

A.

- 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(010-8432-9333)로 문의주시면 즉시 처리 도와드리겠습니다. + 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(1551-8011)로 문의주시면 즉시 처리 도와드리겠습니다.

@@ -1704,7 +1704,7 @@ function fn_click_banner_add_stat(bannerMenuCode){

A.

- 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)
만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(010-8432-9333)로 연락주시면 빠른 처리 도와드리겠습니다. + 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)
만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(1551-8011)로 연락주시면 빠른 처리 도와드리겠습니다.

@@ -1781,7 +1781,7 @@ function fn_click_banner_add_stat(bannerMenuCode){ 첫결제 이벤트 잔액이 남아 있더라도 1회 발송 문자수량 및 금액이 이벤트 잔액보다 큰 경우 문자가 발송되지 않으며, 이 경우 이벤트 잔액 이하의 금액으로 문자 수량을 조정해야 문자가 정상 발송됩니다. Q. [결제] 첫결제 이벤트 후 추가 결제를 진행하였는데 잔액 부족으로 문자 발송이 안되는 경우는 왜 그런건가요? - 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(010-8432-9333)로 문의주시면 즉시 처리 도와드리겠습니다. + 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(1551-8011)로 문의주시면 즉시 처리 도와드리겠습니다. Q. [장문·단문·그림문자] 한 번 보낸 문자를 저장해서 계속 보낼 수 있나요? 문자온은 “내문자함” 기능을 제공하기 때문에 한 번 보낸 문자를 저장해서 계속 보낼 수 있습니다.문자전송 페이지에서 문자내용 작성 후 [문자저장] 버튼을 클릭하면 해당 문자가 [내문자함]에 보관되어 언제든지 자유롭게 재발송이 가능합니다. @@ -1796,7 +1796,7 @@ function fn_click_banner_add_stat(bannerMenuCode){ 위임장 양식은 [마이페이지] → [발신번호 관리]에서 다운로드 가능하며 발신번호 명의자를 위임자, 문자온 이용자를 수임자(대리인)로 작성하여 제출해주시면 됩니다. Q. [기타] 문자온 이용 중 버튼이 안눌러지는 등 장애나 오류가 발생한 경우에는 어떻게 해야 하나요? - 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(010-8432-9333)로 연락주시면 빠른 처리 도와드리겠습니다. + 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(1551-8011)로 연락주시면 빠른 처리 도와드리겠습니다. Q. [기타] 투넘버 또는 투폰 이용 시 발신번호 등록이 가능한가요? 투넘버 및 투폰 번호의 경우 두 번째 번호는 가상의 번호인 관계로 이동통신사 및 가입 유형에 따라 본인 인증이 불가할 수 있습니다. 이 경우 고객님께서 가입하신 통신사를 통해 본인 인증 가능여부 확인 후 등록 신청을 진행해주시기 바랍니다. From 4d96b51b3791212b2c4af4ae35a9bcf784feaa5c Mon Sep 17 00:00:00 2001 From: wyh Date: Wed, 7 Aug 2024 15:05:38 +0900 Subject: [PATCH 09/15] =?UTF-8?q?=EB=B2=88=ED=98=B8=EB=8F=84=EC=9A=A9=20?= =?UTF-8?q?=EC=95=88=EB=82=B4=EB=AC=B8=EC=9E=90=20=EB=82=B4=EC=9A=A9=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp | 9 +++++---- .../WEB-INF/jsp/uss/ion/kakaoft/SendKakaoFTList.jsp | 9 +++++---- src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp | 9 +++++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp index 2c284856..a0b1316a 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp @@ -822,10 +822,11 @@ function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg) { diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/SendKakaoFTList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/SendKakaoFTList.jsp index 1b181f77..74b8b68b 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/SendKakaoFTList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/SendKakaoFTList.jsp @@ -687,10 +687,11 @@ function fnSmishingUpdate(flag) { diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp index 086eeeba..7721272e 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp @@ -933,10 +933,11 @@ function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg) { From e222fdf78886c47dbe113548672624e5ac46ba73 Mon Sep 17 00:00:00 2001 From: wyh Date: Wed, 7 Aug 2024 15:06:36 +0900 Subject: [PATCH 10/15] =?UTF-8?q?=ED=85=9C=ED=94=8C=EB=A6=BF=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=ED=95=84=ED=84=B0=20=EB=B3=80=EC=88=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/itn/com/cmm/interceptor/InterceptorHandler.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/itn/com/cmm/interceptor/InterceptorHandler.java b/src/main/java/itn/com/cmm/interceptor/InterceptorHandler.java index 7ea774e1..2bd3ad86 100644 --- a/src/main/java/itn/com/cmm/interceptor/InterceptorHandler.java +++ b/src/main/java/itn/com/cmm/interceptor/InterceptorHandler.java @@ -60,6 +60,8 @@ public class InterceptorHandler extends HandlerInterceptorAdapter{ && !name.toLowerCase().contains("recommendid") && !name.toLowerCase().contains("mbernm") && !name.toLowerCase().contains("varvallist") + && !name.toLowerCase().contains("templatecontent") + && !name.toLowerCase().contains("buttonvolist") ) { //파라미터 중에 URL 주소를 넘겨주는 부분이 있어서 해당 부분에것 select~, update~, delete~ 로 시작하는 주소경로가 있어서 제외처리를 하였음 String[] values = request.getParameterValues(name); From a48c4b22dc9f5aefb3428235e71d651e3d068276 Mon Sep 17 00:00:00 2001 From: wyh Date: Wed, 7 Aug 2024 15:54:15 +0900 Subject: [PATCH 11/15] =?UTF-8?q?=EA=B8=B0=ED=83=80=EB=B3=80=EC=88=98=2010?= =?UTF-8?q?0=EC=9C=BC=EB=A1=9C=20=EC=A6=9D=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/js/kakao/at/alimtalkExcel.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/js/kakao/at/alimtalkExcel.js b/src/main/webapp/js/kakao/at/alimtalkExcel.js index 296e6b1d..23cd2d77 100644 --- a/src/main/webapp/js/kakao/at/alimtalkExcel.js +++ b/src/main/webapp/js/kakao/at/alimtalkExcel.js @@ -308,8 +308,8 @@ function displayJsonToHtmlTable02(jsonData){ else { // 기타변수는 50자리 까지 입력 - if(bodyData.length > 50){ - alert("등록 변수["+bodyData+"] \n기타 변수에는 50자리 까지 입력이 가능합니다."); + if(bodyData.length > 100){ + alert("등록 변수["+bodyData+"] \n기타 변수에는 100자리 까지 입력이 가능합니다."); lengthCheck = false; break; } From 45d7b704f7a0e6c8a72feb9726a995f4a586be2b Mon Sep 17 00:00:00 2001 From: rosewiper Date: Tue, 20 Aug 2024 14:46:32 +0900 Subject: [PATCH 12/15] =?UTF-8?q?=EC=95=BC=EA=B0=84=20=EC=8A=A4=EB=AF=B8?= =?UTF-8?q?=EC=8B=B1=20=EC=95=8C=EB=A6=BC=EA=B8=B0=EB=8A=A5=20=EA=B0=9C?= =?UTF-8?q?=EB=B0=9C=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/KakaoAlimTalkServiceImpl.java | 83 +- .../web/KakaoAlimTalkSendController.java | 17 +- .../itn/let/mjo/mjocommon/MjonHolidayApi.java | 234 +++++ .../let/mjo/msg/service/MjonMsgService.java | 5 + .../itn/let/mjo/msg/service/MjonMsgVO.java | 8 + .../let/mjo/msg/service/impl/MjonMsgDAO.java | 18 + .../msg/service/impl/MjonMsgServiceImpl.java | 22 + .../let/mjo/msg/web/MjonMsgController.java | 271 +++++- .../web/MjonMsgCampainDataController.java | 65 +- .../web/MjonMsgCampainHGDataController.java | 66 +- .../web/MjonMsgCampainTWDataController.java | 65 +- .../service/impl/MjonMsgDataServiceImpl.java | 136 +++ .../msgdata/web/MjonMsgDataController.java | 68 +- .../mjo/msgholiday/service/MsgAlarmSetVO.java | 66 ++ .../msgholiday/service/MsgHolidayService.java | 34 + .../mjo/msgholiday/service/MsgHolidayVO.java | 82 ++ .../service/impl/MsgHolidayDAO.java | 62 ++ .../service/impl/MsgHolidayServiceImpl.java | 79 ++ .../msgholiday/web/MsgHolidayController.java | 642 +++++++++++++ .../itn/let/mjo/test/web/TestController.java | 76 +- .../let/sym/site/service/JoinSettingVO.java | 9 + .../mysql/sql-map-config-mysql-holiday.xml | 9 + .../let/holiday/MsgHolidayData_SQL_mysql.xml | 213 +++++ .../sqlmap/let/msg/MjonMsgData_SQL_mysql.xml | 299 ++++++ .../let/sym/site/EgovSiteManage_SQL_Mysql.xml | 2 + .../WEB-INF/jsp/holiday/MsgHolidayList.jsp | 400 ++++++++ .../MsgHolidayAlarmSettingListPop.jsp | 675 ++++++++++++++ .../holiday/popup/MsgHolidayModifyPopup.jsp | 443 +++++++++ .../WEB-INF/jsp/sym/site/adminNotiDetail.jsp | 55 +- .../jsp/uss/ion/msg/SendHoliMsgList.jsp | 705 ++++++++++++++ .../jsp/uss/ion/msg/SendMsgDetailList.jsp | 4 + .../WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp | 870 +++++++++--------- 32 files changed, 5310 insertions(+), 473 deletions(-) create mode 100644 src/main/java/itn/let/mjo/mjocommon/MjonHolidayApi.java create mode 100644 src/main/java/itn/let/mjo/msgholiday/service/MsgAlarmSetVO.java create mode 100644 src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayService.java create mode 100644 src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayVO.java create mode 100644 src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayDAO.java create mode 100644 src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayServiceImpl.java create mode 100644 src/main/java/itn/let/mjo/msgholiday/web/MsgHolidayController.java create mode 100644 src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-holiday.xml create mode 100644 src/main/resources/egovframework/sqlmap/let/holiday/MsgHolidayData_SQL_mysql.xml create mode 100644 src/main/webapp/WEB-INF/jsp/holiday/MsgHolidayList.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/holiday/popup/MsgHolidayModifyPopup.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendHoliMsgList.jsp diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java index a05f3b9f..39152735 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java @@ -14,12 +14,18 @@ import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; import egovframework.rte.fdl.idgnr.EgovIdGnrService; import itn.let.kakao.kakaoComm.KakaoVO; import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msg.service.impl.MjonMsgDAO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; +import itn.let.mjo.msgholiday.service.impl.MsgHolidayDAO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.pay.service.MjonPayVO; +import itn.let.sym.site.service.JoinSettingVO; +import itn.let.sym.site.service.impl.SiteManagerDAO; @Service("kakaoAlimTalkService") public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements KakaoAlimTalkService{ @@ -33,6 +39,12 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements @Resource(name="kakaoAlimTalkDAO") private KakaoAlimTalkDAO kakaoAlimTalkDAO; + @Resource(name="siteManagerDAO") + SiteManagerDAO siteManagerDAO; + + @Resource(name="MsgHolidayDAO") + private MsgHolidayDAO msgHolidayDAO; + @Resource(name = "egovMjonMsgIdGnrService") private EgovIdGnrService idgenMsgId; @@ -95,6 +107,52 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements //카카오 알림톡 전송 리스트 List kakaoAtSandList = new ArrayList(); + + //야간스미싱 알림여부 정보 불러오기 + JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail(); + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + + System.out.println("++++++++++++++++++ holiSmishingNoti ::: "+holiSmishingNoti); + //스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수 + boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다. + + //야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다. + //현재는 평일, 주말, 휴일 상관없이 N 이면 30분 딜레이 없이 발송 처리하도록 함. + if(holiSmishingNoti.equals("N")) { + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayDAO.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayDAO.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + System.out.println("+++++++++ 스미싱을 패스 시킬건지 ::: "+smishingAlarmPassSts); + + spamSmishingPassStatus = smishingAlarmPassSts; + } + + String atSmishingYn = kakaoVO.getAtSmishingYn(); + + if(spamSmishingPassStatus) { + atSmishingYn = "N"; + } + + System.out.println("++++++++++++++++ spamSmishingPassStatus ::: "+spamSmishingPassStatus); /** 카카오 알림톡 전송 리스트 생성 (시작)-------------------------------------------*/ for(int i = 0; i < callToCnt; i++) { @@ -159,7 +217,7 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements } - if(kakaoVO.getAtSmishingYn().equals("Y")) { + if(atSmishingYn.equals("Y")) { String sandDate = ""; if(kakaoVO.getDivideChk().equals("Y")) { @@ -293,7 +351,14 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements mjonMsgVO.setBefCash(kakaoVO.getBefCash()); mjonMsgVO.setBefPoint(kakaoVO.getBefPoint()); mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt()); - mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn()); + + //야간 스미싱 알림 비활성화인 경우 딜레이처리 안하도록 함 20240722 우영두 수정 + if(spamSmishingPassStatus) { + mjonMsgVO.setAtDelayYn("N"); + }else { + mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn()); + } + if(kakaoVO.getBizJsonYn().equals("Y")) { @@ -311,6 +376,20 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements if(msgGroupDataCnt < 1) { mjonMsgDAO.insertGroupMsgData(mjonMsgVO); kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO); + + + try { + + //야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 + if(spamSmishingPassStatus && kakaoVO.getAtSmishingYn().equals("Y")) { + mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); + } + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus 알림톡 야간 스미싱 알림 데이터 입력 오류 발생 !!!!"); + } + + }else { mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO); } diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java index 91a4b60d..46feb662 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java @@ -769,11 +769,18 @@ public class KakaoAlimTalkSendController { JoinSettingVO joinSettingVO = new JoinSettingVO(); joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); - // SLACK 체크 - if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminKakaoAtSandSlack(kakaoVO); + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + + //야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리 + if(holiSmishingNoti.equals("Y")) { + + // SLACK 체크 + if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + //Slack으로 메세지 전송 처리 + MjonCommon comm = new MjonCommon(); + comm.getAdminKakaoAtSandSlack(kakaoVO); + } + } } diff --git a/src/main/java/itn/let/mjo/mjocommon/MjonHolidayApi.java b/src/main/java/itn/let/mjo/mjocommon/MjonHolidayApi.java new file mode 100644 index 00000000..71f24e95 --- /dev/null +++ b/src/main/java/itn/let/mjo/mjocommon/MjonHolidayApi.java @@ -0,0 +1,234 @@ +package itn.let.mjo.mjocommon; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.springframework.stereotype.Component; + +import com.ibm.icu.text.SimpleDateFormat; + +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; + +@Component +public class MjonHolidayApi { + + public List getYearHolidayApiData(MsgHolidayVO msgHolidayVO) throws Exception{ + + try { + + String sendUrl = "http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo?"; + String numOfRows = "100"; + String serviceKey = "J8QXC%2BtOGvxwmH8blG7nmqIq%2B0MrkNrxTo1PCmFMRdtSldlGN8vWDW2NpZ2om8k9LctZT6oubfFt5dMmbEDeoA%3D%3D"; + String solYear = msgHolidayVO.getSearchHoliYear(); + String frstRegisterId = msgHolidayVO.getFrstRegisterId(); + + + String strUrl = sendUrl + "&solYear=" + solYear + "&numOfRows=" + numOfRows + "&serviceKey=" + serviceKey; + + HttpClient httpClient = HttpClientBuilder.create().build(); + HttpGet httpGet = new HttpGet(strUrl); + httpGet.addHeader("Content-type", "application/json"); + httpGet.addHeader("Accept", "application/json"); + + HttpResponse response = httpClient.execute(httpGet); + + String result = ""; + String statusCode = Integer.toString(response.getStatusLine().getStatusCode()); + + if(statusCode.equals("200")) { + + result = EntityUtils.toString(response.getEntity()); + + result = new String(result.getBytes("iso-8859-1"));//한글 깨짐 현상이 있어서 변환 해줌. + //System.out.println(result); + JSONParser parser = new JSONParser(); + Object obj = parser.parse(result); + JSONObject object = (JSONObject) obj; + + Object objResp = parser.parse(object.get("response").toString()); + JSONObject objectResp = (JSONObject) objResp; + + Object objBody = parser.parse(objectResp.get("body").toString()); + JSONObject objectBody = (JSONObject) objBody; + + Object objItems = parser.parse(objectBody.get("items").toString()); + JSONObject objectItems = (JSONObject) objItems; + + JSONArray objItemArr = (JSONArray) objectItems.get("item"); + + List msgHolidayVoList = new ArrayList(); + + for(Object tmpObj : objItemArr) { + + JSONObject tmpObject = (JSONObject) tmpObj; + MsgHolidayVO tmpMsgHolidayVO = new MsgHolidayVO(); + + String isHoli = tmpObject.get("isHoliday").toString(); + String holiNm = tmpObject.get("dateName").toString(); + String holiDate = tmpObject.get("locdate").toString(); + + + if(isHoli.equals("Y")) { + + tmpMsgHolidayVO.setHolidayNm(holiNm); + tmpMsgHolidayVO.setHolidayDate(holiDate); + tmpMsgHolidayVO.setHolidayType("1"); + tmpMsgHolidayVO.setApiType("Y"); + tmpMsgHolidayVO.setFrstRegisterId(frstRegisterId); + tmpMsgHolidayVO.setLastUpdusrId(frstRegisterId); + + msgHolidayVoList.add(tmpMsgHolidayVO); + + } + + + } + + return msgHolidayVoList; + + }else { + return null; + } + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++++++ getYearHolidayApiData Method Error!!!!" + e); + return null; + } + + } + + + public boolean getHolidaySmishingPassStatus(List resultAlarmList, List resultHolidayList) throws Exception{ + + boolean holiCompareSts = false; //공휴일 일치 날자가 있는지 여부 + boolean smishingAlarmPassSts = false; //스미싱 알람 Pass 시킬건지 여부 + + //현재 날짜의 요일 구하기 + Date currentDate = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + int month = calendar.get(Calendar.MONTH); + int day = calendar.get(Calendar.DATE); + + calendar.setTime(currentDate); + + // 3. 텍스트 요일 구하기 (숫자) + int dayOfWeekNumber = calendar.get(Calendar.DAY_OF_WEEK); + // 4. 요일 출력 - 1은 일요일, 7은 토요일 + //System.out.println(dayOfWeekNumber); // 7 + + + //월에 대한 자릿수 처리 : 10미만은 앞에 0을 추가해주어 자릿수 맞춰준다. + String strMonth = ""; + if((month +1) < 10) { + strMonth = "0" + Integer.toString(month +1); + }else { + strMonth = Integer.toString(month + 1); + } + + String strNowDate = year + "-" + strMonth + "-" + day; + + for(MsgHolidayVO holiVO : resultHolidayList) { + + String holiDate = holiVO.getHolidayDate(); + + if(strNowDate.equals(holiDate)) { + + //System.out.println("공휴일이 동일한 날이 있습니다."); + holiCompareSts = true; + break; + } + + } + + + for(MsgAlarmSetVO alarmVO : resultAlarmList) { + + String alarmType = alarmVO.getAlarmType(); + String startTime = alarmVO.getAlarmStart(); + String sDate = strNowDate + " " + startTime; + + String endTime = alarmVO.getAlarmEnd(); + String eDate = strNowDate + " " + endTime; + + Date nowDate = currentDate; + Date startDate = sdf.parse(sDate); + Date endDate = sdf.parse(eDate); + + //평일인 경우 비교 + if(dayOfWeekNumber > 1 && dayOfWeekNumber < 7 ) { + + if(alarmType.equals("W")) { + + int copStart = nowDate.compareTo(startDate); + int copEnd = nowDate.compareTo(endDate); + + if(copStart > 0 && copEnd < 0) { + + //System.out.println("평일 알림 일정 해당시간에 포함됩니다."); + smishingAlarmPassSts = true; + break; + + } + + } + + }else { + + //주말인 경우 비교 + if(alarmType.equals("E")) { + + int copStart = nowDate.compareTo(startDate); + int copEnd = nowDate.compareTo(endDate); + + if(copStart > 0 && copEnd < 0) { + + //System.out.println("주말 알림 일정 해당시간에 포함됩니다."); + smishingAlarmPassSts = true; + break; + + } + + } + + } + + //공휴일인 경우 비교 + if(alarmType.equals("H")) { + + if(holiCompareSts) {//오늘 날짜가 공휴일이면 실행 + + int copStart = nowDate.compareTo(startDate); + int copEnd = nowDate.compareTo(endDate); + + if(copStart > 0 && copEnd < 0) { + + //System.out.println("공휴일 알림 일정 해당시간에 포함됩니다."); + smishingAlarmPassSts = true; + break; + + } + + } + + } + + } + + return smishingAlarmPassSts; + } + +} diff --git a/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java b/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java index f17cfdb7..7503e1f9 100644 --- a/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java +++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java @@ -231,4 +231,9 @@ public interface MjonMsgService { MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception; + int selectCallFromNumberChk(MjonMsgVO mjonMsgVO) throws Exception; + + List selectMjonHoliMsgList(MjonMsgVO mjonMsgVO) throws Exception; + + void updateHoliMsgResultYn(MjonMsgVO mjonMsgVO) throws Exception; } diff --git a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java index 10638620..473f8863 100644 --- a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java +++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java @@ -208,6 +208,8 @@ public class MjonMsgVO extends ComDefaultVO{ private String bookmarkYn = "N"; + private String cancelResultYn = ""; //야간스미싱 알림에 따른 관리자 결과(회원이용정지 또는 문자발송 취소) 처리 여부 N:미처리, Y:처리완료 + public String getSearchDelayMsgYn() { return searchDelayMsgYn; } @@ -1646,4 +1648,10 @@ public class MjonMsgVO extends ComDefaultVO{ public void setBookmarkYn(String bookmarkYn) { this.bookmarkYn = bookmarkYn; } + public String getCancelResultYn() { + return cancelResultYn; + } + public void setCancelResultYn(String cancelResultYn) { + this.cancelResultYn = cancelResultYn; + } } diff --git a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java index a61fcdd2..5108b0ac 100644 --- a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java +++ b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java @@ -94,6 +94,10 @@ public class MjonMsgDAO extends EgovAbstractDAO { insert("mjonMsgDAO.insertGroupMsgData", mjonMsgVO); } + public void insertSpamPassMsgData(MjonMsgVO mjonMsgVO) throws Exception{ + insert("mjonMsgDAO.insertSpamPassMsgData", mjonMsgVO); + } + public void updateMsgGroupDataForTotCntSum(MjonMsgVO mjonMsgVO) { update("mjonMsgDAO.updateMsgGroupDataForTotCntSum",mjonMsgVO); @@ -504,4 +508,18 @@ public class MjonMsgDAO extends EgovAbstractDAO { return (MjonMsgVO)select("mjonMsgDAO.selectApiSttstList", mjonMsgVO); } + public int selectCallFromNumberChk(MjonMsgVO mjonMsgVO) throws Exception{ + + return (int) select("mjonMsgDAO.selectCallFromNumberChk", mjonMsgVO); + } + + @SuppressWarnings("unchecked") + public List selectMjonHoliMsgList(MjonMsgVO mjonMsgVO) throws Exception{ + return (List)list("mjonMsgDAO.selectMjonHoliMsgList", mjonMsgVO); + } + + public void updateHoliMsgResultYn(MjonMsgVO mjonMsgVO) throws Exception{ + update("mjonMsgDAO.updateHoliMsgResultYn", mjonMsgVO); + } + } diff --git a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java index 77adb54d..c9e979bb 100644 --- a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java +++ b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java @@ -31,6 +31,7 @@ import itn.let.mjo.pay.service.impl.MjonPayDAO; import itn.let.mjo.reservmsg.service.MjonResvMsgVO; import itn.let.mjo.reservmsg.service.impl.MjonReservMsgDAO; import itn.let.sym.site.service.JoinSettingVO; +import itn.let.uat.uia.service.impl.MberManageDAO; import itn.let.uss.umt.service.AdmProcHstryVO; import itn.let.uss.umt.service.impl.AdmProcHstryDAO; @@ -64,6 +65,10 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM @Resource(name="MjonReservMsgDAO") private MjonReservMsgDAO mjonReservMsgDAO; + /** mberManageDAO */ + @Resource(name="mberManageDAO") + private MberManageDAO mberManageDAO; + @Resource(name="mjonPayDAO") private MjonPayDAO mjonPayDAO; @@ -1158,4 +1163,21 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM public MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception { return mjonMsgDAO.selectApiSttstList(mjonMsgVO); } + + @Override + public int selectCallFromNumberChk(MjonMsgVO mjonMsgVO) throws Exception{ + + return mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO); + } + + @Override + public List selectMjonHoliMsgList(MjonMsgVO mjonMsgVO) throws Exception{ + return mjonMsgDAO.selectMjonHoliMsgList(mjonMsgVO); + } + + @Override + public void updateHoliMsgResultYn(MjonMsgVO mjonMsgVO) throws Exception{ + mjonMsgDAO.updateHoliMsgResultYn(mjonMsgVO); + } + } diff --git a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java index 50ed83ae..b552db23 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -72,6 +72,8 @@ import itn.let.mjo.msgsent.service.MjonMsgRecvTestVO; import itn.let.mjo.msgsent.service.MjonMsgSentTestService; import itn.let.mjo.msgsent.service.MjonMsgSentTestVO; import itn.let.mjo.pay.service.MjonPayService; +import itn.let.mjo.payva.service.VacsVactService; +import itn.let.mjo.payva.service.VacsVactVO; import itn.let.mjo.reservmsg.service.MjonReservMsgService; import itn.let.mjo.reservmsg.service.MjonResvMsgVO; import itn.let.sts.com.StatsVO; @@ -161,6 +163,10 @@ public class MjonMsgController { @Resource(name = "EgovFileMngService") private EgovFileMngService fileService; + //전용계좌 서비스 + @Resource(name = "vacsVactService") + private VacsVactService vacsVactService; + //배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"} private String[][] sendMsgExcelValue ={ {"0" ,"번호" , "1" , "" }, @@ -1174,10 +1180,10 @@ public class MjonMsgController { } /** - * 문자전송 리스트 + * 문자예약전송 리스트 * @param searchVO * @param model - * @return uss/ion/msg/ReserveNumberList.do(에약 문자리스트) + * @return /uss/ion/msg/ReserveNumberList.do(예약 문자리스트) * @throws Exception */ @RequestMapping(value= {"/uss/ion/msg/ReserveNumberList.do"}) @@ -1245,6 +1251,267 @@ public class MjonMsgController { } + + /** + * 야간 스미싱 문자전송 리스트 + * @param searchVO + * @param model + * @return uss/ion/msg/selectHoliMsgList.do + * @throws Exception + */ + @RequestMapping(value= {"/uss/ion/msg/selectHoliMsgList.do"}) + public String selectHoliMsgList(@ModelAttribute("searchVO") MjonMsgVO searchVO, + HttpServletRequest request , + ModelMap model) throws Exception{ + //value 값 가져오기 +// String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ; + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + searchVO.setSearchSortCnd("FRST_REGIST_PNTTM"); + searchVO.setSearchSortOrd("desc"); + } + + + /* + * 2024.01.26 우영두 변경 + * 기존 한달전 시작일자 지정에서 하루전으로 변경 + * 데이터 양이 너무 많이 검색되어 하루전으로 변경해 달라는 기획팀 요청 + * */ + String toDay = MJUtil.getTodayDate(); //오늘 + String beforeMonthDay = MJUtil.getBefore1DayDate(); //하루 전 + if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) { + searchVO.setNtceBgnde(beforeMonthDay); + searchVO.setNtceEndde(toDay); + } + + List resultList = new ArrayList(); + resultList = mjonMsgService.selectMjonHoliMsgList(searchVO); + model.addAttribute("resultList", resultList); + + //문자발송 실패 결과 코드정보 리스트 불러오기 + MjonMsgResultCodeVO mjonMsgResultCodeVO = new MjonMsgResultCodeVO(); + List resultMsgCodeList = mjonMsgService.selectMsgResultCodeAllList(mjonMsgResultCodeVO); + + model.addAttribute("resultMsgCodeList", resultMsgCodeList); + + paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0); + model.addAttribute("paginationInfo", paginationInfo); + + return "/uss/ion/msg/SendHoliMsgList"; + + } + + /** + * 야간 스미싱 문자전송 사용자 이용정지 및 예약문자 취소 처리 + * @param searchVO + * @param model + * @return uss/ion/msg/updateUserMsgData.do + * @throws Exception + */ + @RequestMapping(value= {"/uss/ion/msg/updateUserMsgData.do"}) + public String updateUserMsgData(@RequestParam("checkedIdForDel") String checkedIdForUpt, + HttpServletRequest request , + ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String adminId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + //파라미터 데이터 파싱해주기 + String[] splitCheckId = checkedIdForUpt.split(","); + + if(splitCheckId != null && splitCheckId.length > 0) { + + for(String checkId : splitCheckId) { + + if(checkId != null && checkId.length() > 0) { //개별 데이터에 대해서 예약 문자 취소 및 회원 이용정지 + + String[] splitUserMsg = checkId.split("§"); + + if(splitUserMsg != null && splitUserMsg.length > 0) { + + MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO(); + + + String mberId = splitUserMsg[0]; + String msgGroupId = splitUserMsg[1]; + String reserveYn = splitUserMsg[2]; + + mjonResvMsgVO.setUserId(mberId);//회원 아이디 + mjonResvMsgVO.setMsgGroupId(msgGroupId);//취소 문자 그룹 아이디 + + if(reserveYn.equals("Y")) { + + int count = mjonMsgService.deleteMsgDelaySendCancelData(mjonResvMsgVO); + + } + + MberManageVO mberManageVO = new MberManageVO(); + + //이용자 상태를 변경하는 관리자 아이디 입력 + mberManageVO.setMberSttusUpdusrId(adminId); + mberManageVO.setMberId(mberId); + + //회원 정보 조회 + MberManageVO resultMberVO = mberManageService.selectMber(mberId); + + if(resultMberVO != null) { //회원 정보가 있으면 + + //회원상태가 이용정지 상태가 아니면 + if(!resultMberVO.getMberSttus().equals("B")) { + + //회원 상태 변경하기 + int resultCnt = 0; + mberManageVO.setMberSttus("B"); //이용정지 상태로 변경 + mberManageVO.setSmiMemo("야간 스미싱의심 문자 발송으로 이용정지 처리"); + resultCnt = mberManageService.updateUserMsttus(mberManageVO); + + if(resultCnt > 0) { + + if(mberManageVO.getMberSttus().equals("B")) { //회원 이용정지를 시키는 경우 가상계좌도 함께 해지 시킨다. + + //가상계좌 보유 여부 체크 + //대상 리스트 가져오기 + VacsVactVO vacsVactVO = new VacsVactVO(); + vacsVactVO.setMberId(mberId); + List myBankList = vacsVactService.selectBankAccountByUserId(vacsVactVO); //내가 할당받은 전용계좌 리스트 받아오기 + + int vacsCnt = myBankList.size(); + + //가상계좌 해지 처리 + if(vacsCnt > 0) { + + for(int i=0; i < vacsCnt; i++) { + + String acctNo = myBankList.get(i).getAcctNo(); + + VacsVactVO vacsVO = new VacsVactVO(); + vacsVO.setMberId(mberId); //회원 아이디 + //계좌 해지일자 생성 + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String closeDate = sdf.format(now); + vacsVO.setCloseIl(closeDate); //해지일자 + vacsVO.setAcctNo(acctNo); //해지계좌번호 + + //계좌 상태 셋팅 0: 미할당, 1:할당, 9: 해지 + vacsVO.setAcctSt("9"); + int blockCnt = vacsVactService.updateVacsAccountUsrBlock(vacsVO); + + } + + } + + } + + // 관리자 메모 + String memo = ""; + memo = "회원상태 변경 : 이용정지, 사유 : 야간 스미싱의심 문자 발송으로 이용정지 처리"; + mberManageVO.setMberId(mberId); + mberManageVO.setMemoCn(memo); + mberManageVO.setFrstRegisterId(adminId); + mberManageService.insertMberMemo(mberManageVO); + + } + } + + }//회원 이용정지 처리 종료 + + //야간스미싱 알림 상태 처리 완료로 변경 + MjonMsgVO mjonMsgVO = new MjonMsgVO(); + mjonMsgVO.setUserId(mberId); //사용자 아이디 + mjonMsgVO.setMsgGroupId(msgGroupId); //문자 발송 그룹 아이디 + mjonMsgVO.setLastUpdusrId(adminId); //변경 관리자 아이디 + mjonMsgService.updateHoliMsgResultYn(mjonMsgVO); + + + } + + } + + } + + } + + } catch (Exception e) { + System.out.println("++++++++++++ updateUserMsgData Controller Error !!! "); + } + + return "redirect:/uss/ion/msg/selectHoliMsgList.do"; + + } + + + + /** + * 야간 스미싱 문자전송 사용자 이용정지 및 예약문자 취소 처리 + * @param searchVO + * @param model + * @return /uss/ion/msg/updateMsgStatusData.do + * @throws Exception + */ + @RequestMapping(value= {"/uss/ion/msg/updateMsgStatusData.do"}) + public String updateMsgStatusData(@RequestParam("checkedIdForDel") String checkedIdForUpt, + HttpServletRequest request , + ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String adminId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + //파라미터 데이터 파싱해주기 + String[] splitCheckId = checkedIdForUpt.split(","); + + if(splitCheckId != null && splitCheckId.length > 0) { + + for(String checkId : splitCheckId) { + + if(checkId != null && checkId.length() > 0) { //개별 데이터에 대해서 알림 미처리 문자에 대한 상태값만 완료로 변경, 회원이용정지 및 예약문자취소는 처리 안함 + + String[] splitUserMsg = checkId.split("§"); + + if(splitUserMsg != null && splitUserMsg.length > 0) { + + String mberId = splitUserMsg[0]; + String msgGroupId = splitUserMsg[1]; + + //야간스미싱 알림 상태 처리 완료로 변경 + MjonMsgVO mjonMsgVO = new MjonMsgVO(); + mjonMsgVO.setUserId(mberId); //사용자 아이디 + mjonMsgVO.setMsgGroupId(msgGroupId); //문자 발송 그룹 아이디 + mjonMsgVO.setLastUpdusrId(adminId); //변경 관리자 아이디 + mjonMsgService.updateHoliMsgResultYn(mjonMsgVO); + + } + + } + + } + + } + + } catch (Exception e) { + System.out.println("++++++++++++ updateMsgStatusData Controller Error !!! "); + } + + return "redirect:/uss/ion/msg/selectHoliMsgList.do"; + + } + + + /** * 문자전송 리스트 * @param searchVO diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java index e6fe846c..9c2577d6 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java @@ -69,6 +69,7 @@ import itn.let.mjo.addr.service.AddrVO; import itn.let.mjo.event.service.MjonEventService; import itn.let.mjo.event.service.MjonEventVO; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msg.service.MjonMsgService; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgcampain.service.MjonCandidateService; @@ -77,6 +78,9 @@ import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; import itn.let.mjo.msgdata.service.PhoneVO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.pay.service.MjonPayVO; import itn.let.mjo.spammsg.service.MjonSpamMsgService; @@ -172,6 +176,9 @@ public class MjonMsgCampainDataController { @Resource(name = "mberGrdService") MberGrdService mberGrdService; + @Resource(name = "MsgHolidayService") + private MsgHolidayService msgHolidayService; + private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainDataController.class); /** @@ -2006,6 +2013,18 @@ public class MjonMsgCampainDataController { mjonMsgVO.setUserId(userId); + //발신번호가 등록된 유효한 번호인지 확인 + int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO); + + if(sendCallFromCnt < 1) { + + modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다."); + modelAndView.addObject("result", "loginFail"); + modelAndView.addObject("resultSts", resultSts); + return modelAndView; + + } + /** * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 * 현재 로그인 세션도 만료 처리함 @@ -3174,16 +3193,52 @@ public class MjonMsgCampainDataController { // 법인폰 알람여부 체크 JoinSettingVO joinSettingVO = new JoinSettingVO(); joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); + + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + // SMS 체크 if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) { getAdminPhoneSendMsgData(mjonMsgVO); } - // SLACK 체크 - if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + //야간 스미싱의심 알림이 활성화 되어있는 경우 + if(holiSmishingNoti.equals("Y")) { + // SLACK 체크 + if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + //Slack으로 메세지 전송 처리 + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + } + }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } + } } diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java index 716e35cb..17726f3f 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java @@ -41,6 +41,7 @@ import itn.let.mjo.addr.service.AddrVO; import itn.let.mjo.event.service.MjonEventService; import itn.let.mjo.event.service.MjonEventVO; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msg.service.MjonMsgService; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgcampain.service.MjonCandidateService; @@ -48,6 +49,9 @@ import itn.let.mjo.msgcampain.service.MjonCandidateVO; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.spammsg.service.MjonSpamMsgService; import itn.let.mjo.symbol.service.MjonSymbolService; @@ -143,6 +147,8 @@ public class MjonMsgCampainHGDataController { @Resource(name = "mberGrdService") MberGrdService mberGrdService; + @Resource(name = "MsgHolidayService") + private MsgHolidayService msgHolidayService; /** * 선거 문자 대량 발송 화면 @@ -578,6 +584,18 @@ public class MjonMsgCampainHGDataController { mjonMsgVO.setUserId(userId); + //발신번호가 등록된 유효한 번호인지 확인 + int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO); + + if(sendCallFromCnt < 1) { + + modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다."); + modelAndView.addObject("result", "loginFail"); + modelAndView.addObject("resultSts", resultSts); + return modelAndView; + + } + /** * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 * 현재 로그인 세션도 만료 처리함 @@ -873,6 +891,8 @@ public class MjonMsgCampainHGDataController { System.out.println("++++++++++++++ 중복제거 후 리스트 갯수 ::: "+addrDupListLen); + mjonMsgVO.setTotalCallCnt(addrDupListLen); + //수신자 총 수 * 단가 를 통해 총 결제 금액 계산 int tmpTotCallCnt = addrDupListLen; //mjonMsgVO.getCallToList().length; float tmpTotPrice = tmpTotCallCnt * tmpEachPrice; @@ -1082,17 +1102,53 @@ public class MjonMsgCampainHGDataController { // 법인폰 알람여부 체크 JoinSettingVO joinSettingVO = new JoinSettingVO(); joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); + + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + // SMS 체크 if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) { MjonMsgCampainDataController mcdController = new MjonMsgCampainDataController(); mcdController.getAdminPhoneSendMsgData(mjonMsgVO); } - // SLACK 체크 - if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + //야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리 + if(holiSmishingNoti.equals("Y")) { + // SLACK 체크 + if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + //Slack으로 메세지 전송 처리 + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + } + }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } + } } diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java index 838763ae..2ffc385c 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java @@ -64,6 +64,7 @@ import itn.let.mjo.addr.service.AddrVO; import itn.let.mjo.event.service.MjonEventService; import itn.let.mjo.event.service.MjonEventVO; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msg.service.MjonMsgService; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgcampain.service.MjonCandidateService; @@ -73,6 +74,9 @@ import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; import itn.let.mjo.msgdata.service.PhoneVO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.spammsg.service.MjonSpamMsgService; import itn.let.mjo.symbol.service.MjonSymbolService; @@ -167,6 +171,9 @@ public class MjonMsgCampainTWDataController { @Resource(name = "mberGrdService") MberGrdService mberGrdService; + @Resource(name = "MsgHolidayService") + private MsgHolidayService msgHolidayService; + private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainTWDataController.class); /** @@ -930,6 +937,18 @@ public class MjonMsgCampainTWDataController { mjonMsgVO.setUserId(userId); + //발신번호가 등록된 유효한 번호인지 확인 + int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO); + + if(sendCallFromCnt < 1) { + + modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다."); + modelAndView.addObject("result", "loginFail"); + modelAndView.addObject("resultSts", resultSts); + return modelAndView; + + } + /** * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 * 현재 로그인 세션도 만료 처리함 @@ -2057,17 +2076,53 @@ public class MjonMsgCampainTWDataController { // 법인폰 알람여부 체크 JoinSettingVO joinSettingVO = new JoinSettingVO(); joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); + + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + // SMS 체크 if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) { MjonMsgCampainDataController mjonCampDataController = new MjonMsgCampainDataController(); mjonCampDataController.getAdminPhoneSendMsgData(mjonMsgVO); } - // SLACK 체크 - if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + //야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리 + if(holiSmishingNoti.equals("Y")) { + // SLACK 체크 + if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + //Slack으로 메세지 전송 처리 + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + } + }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } + } } diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index ec9eed32..6fd0b26b 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -20,6 +20,7 @@ import itn.let.mjo.addr.service.AddrVO; import itn.let.mjo.event.service.MjonEventService; import itn.let.mjo.event.service.MjonEventVO; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msg.service.impl.MjonMsgDAO; import itn.let.mjo.msgagent.service.MjonMsgAgentStsService; @@ -28,10 +29,14 @@ import itn.let.mjo.msgagent.service.impl.MjonMsgAgentStsDAO; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; +import itn.let.mjo.msgholiday.service.impl.MsgHolidayDAO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.pay.service.MjonPayVO; import itn.let.mjo.pay.service.impl.MjonPayDAO; import itn.let.sym.site.service.JoinSettingVO; +import itn.let.sym.site.service.impl.SiteManagerDAO; import itn.let.uat.uia.web.SendLogVO; import itn.let.uss.umt.service.MberManageVO; @@ -50,6 +55,12 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M @Resource(name="mjonMsgAgentStsDAO") private MjonMsgAgentStsDAO mjonMsgAgentStsDAO; + @Resource(name="siteManagerDAO") + SiteManagerDAO siteManagerDAO; + + @Resource(name="MsgHolidayDAO") + private MsgHolidayDAO msgHolidayDAO; + @Resource(name = "egovMjonMsgIdGnrService") private EgovIdGnrService idgenMsgId; @@ -152,6 +163,42 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId()); String hotlineAgentCode = userInfo.getHotlineAgentCode(); + //야간스미싱 알림여부 정보(관리자 알림관리 상태 정보를 모두 불러옴) 불러오기 20240722 우영두 추가 + JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail(); + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + + //스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수 + boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다. + + //스팸, 스미싱 상태인 경우에만 true 처리 + //야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다. + //스미싱 알림 일정에 등록된 날짜와 시간에 포함되면 30분 딜레이 없이 발송 처리하도록 함. + if(holiSmishingNoti.equals("N")) { + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayDAO.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayDAO.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + spamSmishingPassStatus = smishingAlarmPassSts; + } + //전용 전송사가 지정되어 있으면 실행 if(!hotlineAgentCode.equals("00")) { @@ -310,6 +357,15 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M } + //야간 스미싱 알림여부가 비활성인 경우 스팸, 스미싱, 딜레이 값을 모두 N 으로 처리 + if(spamSmishingPassStatus && (spamStatus.equals("Y") || smishingYn.equals("Y"))) { + + spamStatus = "N"; + smishingYn = "N"; + delayYn = "N"; + + } + if(!mjonMsgVO.getReserveYn().equals("N")) {//예약문자인 경우 시간 셋팅 @@ -786,6 +842,17 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M } mjonMsgDAO.insertGroupMsgData(mjonMsgVO); + try { + + //야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 + if(spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) { + mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); + } + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus 문자전송 야간 스미싱 알림 데이터 입력 오류 발생 !!!!"); + } + }else { mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO); } @@ -2372,6 +2439,43 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId()); String hotlineAgentCode = userInfo.getHotlineAgentCode(); + //야간스미싱 알림여부 정보 불러오기 + JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail(); + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + + System.out.println("++++++++++++++++++ holiSmishingNoti ::: "+holiSmishingNoti); + //스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수 + boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다. + + //스팸, 스미싱 상태인 경우에만 true 처리 + //야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다. + //스미싱 알림 일정에 등록된 날짜와 시간에 포함되면 30분 딜레이 없이 발송 처리하도록 함. + if(holiSmishingNoti.equals("N")) { + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayDAO.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayDAO.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + spamSmishingPassStatus = smishingAlarmPassSts; + } + //전용 전송사가 지정되어 있으면 실행 if(!hotlineAgentCode.equals("00")) { @@ -2530,6 +2634,15 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M } + //야간 스미싱 알림여부가 비활성인 경우 스팸, 스미싱, 딜레이 값을 모두 N 으로 처리 + if(spamSmishingPassStatus && (spamStatus.equals("Y") || smishingYn.equals("Y"))) { + + spamStatus = "N"; + smishingYn = "N"; + delayYn = "N"; + + } + if(!mjonMsgVO.getReserveYn().equals("N")) {//예약문자인 경우 시간 셋팅 @@ -3013,6 +3126,29 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M } mjonMsgDAO.insertGroupMsgData(mjonMsgVO); + try { + + //야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 + if(spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) { + + System.out.println(mjonMsgVO.getMsgGroupId()); + System.out.println(mjonMsgVO.getMsgGroupCnt()); + System.out.println(mjonMsgVO.getUserId()); + System.out.println(mjonMsgVO.getSmsTxt()); + System.out.println(mjonMsgVO.getReqDate()); + System.out.println(mjonMsgVO.getCallFrom()); + System.out.println(mjonMsgVO.getMsgType()); + System.out.println(mjonMsgVO.getReserveYn()); + System.out.println(mjonMsgVO.getTotalCallCnt()); + + mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); + + } + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus HG 대량 선거 문자전송 야간 스미싱 알림 데이터 입력 오류 발생 !!!!"); + } + }else { mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO); } diff --git a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java index 16b49177..574c51e3 100644 --- a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java +++ b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java @@ -79,12 +79,16 @@ import itn.let.mjo.addr.service.AddrVO; import itn.let.mjo.event.service.MjonEventService; import itn.let.mjo.event.service.MjonEventVO; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msg.service.MjonMsgService; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; import itn.let.mjo.msgdata.service.PhoneVO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; import itn.let.mjo.msgsent.service.MjonMsgSentService; import itn.let.mjo.msgsent.service.MjonMsgSentVO; import itn.let.mjo.pay.service.MjonPayService; @@ -181,6 +185,9 @@ public class MjonMsgDataController { @Resource(name = "MjonMsgSentService") private MjonMsgSentService mjonMsgSentService; + @Resource(name = "MsgHolidayService") + private MsgHolidayService msgHolidayService; + private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class); /** @@ -2112,6 +2119,20 @@ public class MjonMsgDataController { mjonMsgVO.setUserId(userId); + //발신번호가 등록된 유효한 번호인지 확인 + int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO); + System.out.println(sendCallFromCnt); + + if(sendCallFromCnt < 1) { + + modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다."); + modelAndView.addObject("result", "loginFail"); + modelAndView.addObject("resultSts", resultSts); + return modelAndView; + + } + + /** * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 * 현재 로그인 세션도 만료 처리함 @@ -3022,20 +3043,55 @@ public class MjonMsgDataController { // 법인폰 알람여부 체크 JoinSettingVO joinSettingVO = new JoinSettingVO(); joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); + + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + // SMS 체크 if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) { getAdminPhoneSendMsgData(mjonMsgVO); } - // SLACK 체크 - if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + //야간 스미싱의심 알림이 활성화 되어있는 경우 + if(holiSmishingNoti.equals("Y")) { + // SLACK 체크 + if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + //Slack으로 메세지 전송 처리 + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + } + }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } + } } - } catch (Exception e) { throw new Exception("++++++++++++++++++++++ getAdminPhoneSendMsgData Error !!! " + e); } diff --git a/src/main/java/itn/let/mjo/msgholiday/service/MsgAlarmSetVO.java b/src/main/java/itn/let/mjo/msgholiday/service/MsgAlarmSetVO.java new file mode 100644 index 00000000..c1924e62 --- /dev/null +++ b/src/main/java/itn/let/mjo/msgholiday/service/MsgAlarmSetVO.java @@ -0,0 +1,66 @@ +package itn.let.mjo.msgholiday.service; + +import java.util.List; + +import itn.let.uss.umt.service.UserDefaultVO; + +public class MsgAlarmSetVO extends UserDefaultVO{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + private int alarmId; //알림 아이디 + private String alarmType; //알림 종류(W: 평일, E:주말, H:공휴일) + private String alarmStart; //알림 시작 시간 + private String alarmEnd; //알림 종료 시간 + private String useYn; //알림 사용여부(Y: 사용, N: 미사용) + + private String alarmIds; + private List alarmIdList; //알림 아이디 리스트 + + public int getAlarmId() { + return alarmId; + } + public void setAlarmId(int alarmId) { + this.alarmId = alarmId; + } + public String getAlarmType() { + return alarmType; + } + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + public String getAlarmStart() { + return alarmStart; + } + public void setAlarmStart(String alarmStart) { + this.alarmStart = alarmStart; + } + public String getAlarmEnd() { + return alarmEnd; + } + public void setAlarmEnd(String alarmEnd) { + this.alarmEnd = alarmEnd; + } + public String getUseYn() { + return useYn; + } + public void setUseYn(String useYn) { + this.useYn = useYn; + } + public String getAlarmIds() { + return alarmIds; + } + public void setAlarmIds(String alarmIds) { + this.alarmIds = alarmIds; + } + public List getAlarmIdList() { + return alarmIdList; + } + public void setAlarmIdList(List alarmIdList) { + this.alarmIdList = alarmIdList; + } + +} diff --git a/src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayService.java b/src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayService.java new file mode 100644 index 00000000..4d4e374b --- /dev/null +++ b/src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayService.java @@ -0,0 +1,34 @@ +package itn.let.mjo.msgholiday.service; + +import java.util.List; + +public interface MsgHolidayService { + + //공휴일 정보 입력하기 + public int insertHolidayData(List msgHolidayVO) throws Exception; + + //공휴일 리스트 정보 조회하기 + public List selectMsgHolidayList(MsgHolidayVO msgHolidayVO) throws Exception; + + //공휴일 상세정보 조회하기 + public MsgHolidayVO selectHolidayDetail(MsgHolidayVO msgHolidayVO) throws Exception; + + //공휴일 정보 수정하기 + public int updateHolidayData(MsgHolidayVO msgHolidayVO) throws Exception; + + //공휴일 정보 삭제하기 + public int deleteHolidayData(MsgHolidayVO msgHolidayVO) throws Exception; + + //알림 일정 추가하기 + public int insertAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception; + + //알림 일정 리스트 정보 조회하기 + public List selectAlarmSettingList(MsgAlarmSetVO msgAlarmSetVO) throws Exception; + + //알림 일정 상태정보 수정하기 + public int updateAlarmSettingDataUseYn(MsgAlarmSetVO msgAlarmSetVO) throws Exception; + + //알림 일정 삭제처리 + public int deleteAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception; + +} diff --git a/src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayVO.java b/src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayVO.java new file mode 100644 index 00000000..8a90cebe --- /dev/null +++ b/src/main/java/itn/let/mjo/msgholiday/service/MsgHolidayVO.java @@ -0,0 +1,82 @@ +package itn.let.mjo.msgholiday.service; + +import java.util.List; + +import itn.let.uss.umt.service.UserDefaultVO; + +public class MsgHolidayVO extends UserDefaultVO{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + private int holidayId; + private String holidayNm; + private String holidayDate; + private String holidayType; + private String apiType; + + private String searchHoliYear; + + private String ntceBgnde; + private String ntceEndde; + + private List holidayIdList; + + public int getHolidayId() { + return holidayId; + } + public void setHolidayId(int holidayId) { + this.holidayId = holidayId; + } + public String getHolidayNm() { + return holidayNm; + } + public void setHolidayNm(String holidayNm) { + this.holidayNm = holidayNm; + } + public String getHolidayDate() { + return holidayDate; + } + public void setHolidayDate(String holidayDate) { + this.holidayDate = holidayDate; + } + public String getHolidayType() { + return holidayType; + } + public void setHolidayType(String holidayType) { + this.holidayType = holidayType; + } + public String getApiType() { + return apiType; + } + public void setApiType(String apiType) { + this.apiType = apiType; + } + public String getSearchHoliYear() { + return searchHoliYear; + } + public void setSearchHoliYear(String searchHoliYear) { + this.searchHoliYear = searchHoliYear; + } + public String getNtceBgnde() { + return ntceBgnde; + } + public void setNtceBgnde(String ntceBgnde) { + this.ntceBgnde = ntceBgnde; + } + public String getNtceEndde() { + return ntceEndde; + } + public void setNtceEndde(String ntceEndde) { + this.ntceEndde = ntceEndde; + } + public List getHolidayIdList() { + return holidayIdList; + } + public void setHolidayIdList(List holidayIdList) { + this.holidayIdList = holidayIdList; + } + +} diff --git a/src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayDAO.java b/src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayDAO.java new file mode 100644 index 00000000..6d17f463 --- /dev/null +++ b/src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayDAO.java @@ -0,0 +1,62 @@ +package itn.let.mjo.msgholiday.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractDAO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; + +@Repository("MsgHolidayDAO") +public class MsgHolidayDAO extends EgovAbstractDAO{ + + + //기존 동일 년도의 공휴일 정보 조회 및 삭제 처리 + public int deleteDuplicateHolidayApiData(MsgHolidayVO msgHolidayVO) throws Exception{ + + return update("MsgHolidayDAO.deleteDuplicateHolidayApiData", msgHolidayVO); + } + + + //신규 api 공휴일 데이터 추가 + public int insertHolidayData(List msgHolidayVO) throws Exception{ + + return update("MsgHolidayDAO.insertHolidayData", msgHolidayVO); + + } + + @SuppressWarnings("unchecked") + public List selectMsgHolidayList(MsgHolidayVO msgHolidayVO) throws Exception{ + return (List) list("MsgHolidayDAO.selectMsgHolidayList",msgHolidayVO); + } + + public MsgHolidayVO selectHolidayDetail(MsgHolidayVO msgHolidayVO) throws Exception{ + return (MsgHolidayVO) select("MsgHolidayDAO.selectHolidayDetail", msgHolidayVO); + } + + public int updateHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{ + return update("MsgHolidayDAO.updateHolidayData",msgHolidayVO); + } + + public int deleteHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{ + return update("MsgHolidayDAO.deleteHolidayData", msgHolidayVO); + } + + public int insertAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return update("MsgHolidayDAO.insertAlarmSettingData", msgAlarmSetVO); + } + + @SuppressWarnings("unchecked") + public List selectAlarmSettingList(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return (List) list("MsgHolidayDAO.selectAlarmSettingList", msgAlarmSetVO); + } + + public int updateAlarmSettingDataUseYn(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return update("MsgHolidayDAO.updateAlarmSettingDataUseYn", msgAlarmSetVO); + } + + public int deleteAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return update("MsgHolidayDAO.deleteAlarmSettingData", msgAlarmSetVO); + } +} diff --git a/src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayServiceImpl.java b/src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayServiceImpl.java new file mode 100644 index 00000000..699473e5 --- /dev/null +++ b/src/main/java/itn/let/mjo/msgholiday/service/impl/MsgHolidayServiceImpl.java @@ -0,0 +1,79 @@ +package itn.let.mjo.msgholiday.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; + +@Service("MsgHolidayService") +public class MsgHolidayServiceImpl extends EgovAbstractServiceImpl implements MsgHolidayService{ + + @Resource(name="MsgHolidayDAO") + private MsgHolidayDAO msgHolidayDAO; + + + @Override + public int insertHolidayData(List msgHolidayVO) throws Exception{ + + //기존 데이터에 같은 해의 API로 입력된 공휴일 정보가 있으면 삭제처리를 먼저 해준다. + MsgHolidayVO tmpMsgHolidayVO = new MsgHolidayVO(); + String searchHoliYear = msgHolidayVO.get(0).getHolidayDate().substring(0,4); + String apiType = msgHolidayVO.get(0).getApiType(); + + //공공데이터 포털에서 공휴일을 받아오는 경우 기존에 등록된 공휴일 정보를 삭제 후 등록해준다. + if(apiType.equals("Y")) { + + tmpMsgHolidayVO.setSearchHoliYear(searchHoliYear); + msgHolidayDAO.deleteDuplicateHolidayApiData(tmpMsgHolidayVO); + + } + + return msgHolidayDAO.insertHolidayData(msgHolidayVO); + } + + @Override + public List selectMsgHolidayList(MsgHolidayVO msgHolidayVO) throws Exception{ + return msgHolidayDAO.selectMsgHolidayList(msgHolidayVO); + } + + @Override + public MsgHolidayVO selectHolidayDetail(MsgHolidayVO msgHolidayVO) throws Exception{ + return msgHolidayDAO.selectHolidayDetail(msgHolidayVO); + } + + @Override + public int updateHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{ + return msgHolidayDAO.updateHolidayData(msgHolidayVO); + } + + @Override + public int deleteHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{ + return msgHolidayDAO.deleteHolidayData(msgHolidayVO); + } + + @Override + public int insertAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return msgHolidayDAO.insertAlarmSettingData(msgAlarmSetVO); + } + + @Override + public List selectAlarmSettingList(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return msgHolidayDAO.selectAlarmSettingList(msgAlarmSetVO); + } + + @Override + public int updateAlarmSettingDataUseYn(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return msgHolidayDAO.updateAlarmSettingDataUseYn(msgAlarmSetVO); + } + + @Override + public int deleteAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + return msgHolidayDAO.deleteAlarmSettingData(msgAlarmSetVO); + } +} diff --git a/src/main/java/itn/let/mjo/msgholiday/web/MsgHolidayController.java b/src/main/java/itn/let/mjo/msgholiday/web/MsgHolidayController.java new file mode 100644 index 00000000..43b13862 --- /dev/null +++ b/src/main/java/itn/let/mjo/msgholiday/web/MsgHolidayController.java @@ -0,0 +1,642 @@ +package itn.let.mjo.msgholiday.web; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import itn.com.cmm.LoginVO; +import itn.com.cmm.util.MJUtil; +import itn.com.cmm.util.RedirectUrlMaker; +import itn.com.utl.fcc.service.EgovStringUtil; +import itn.let.mail.service.StatusResponse; +import itn.let.mjo.mjocommon.MjonHolidayApi; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; + +@Controller +public class MsgHolidayController { + + @Resource(name = "MsgHolidayService") + private MsgHolidayService msgHolidayService; + + @Autowired + MjonHolidayApi mjonHolidayApi; + + /** + * 공휴일 관리 리스트 화면 + * @param searchVO + * @param model + * @return "/let/mjo/holiday/selectHolidayList.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/selectHolidayList.do") + public String selectHolidayList(@ModelAttribute("searchVO") MsgHolidayVO searchVO, + ModelMap model) throws Exception{ + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + searchVO.setSearchSortCnd("holidayDate"); + searchVO.setSearchSortOrd("desc"); + } + + /* + * 2024.01.26 우영두 변경 + * 기존 한달전 시작일자 지정에서 하루전으로 변경 + * 데이터 양이 너무 많이 검색되어 하루전으로 변경해 달라는 기획팀 요청 + * */ + String toDay = MJUtil.getTodayDate(); //오늘 + String endDay = ""; + + + if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) { + searchVO.setNtceBgnde(toDay); + + //현재년도의 12월 31일로 종료일을 셋팅 + Calendar cal = Calendar.getInstance(); + String year = Integer.toString(cal.get(Calendar.YEAR)); + + endDay = year +"-"+"12-31"; + searchVO.setNtceEndde(endDay); + } + + List resultList = msgHolidayService.selectMsgHolidayList(searchVO); + + model.addAttribute("resultList", resultList); + + paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MsgHolidayVO)resultList.get(0)).getTotCnt() : 0); + model.addAttribute("paginationInfo", paginationInfo); + + return "/holiday/MsgHolidayList"; + + } + + /** + * 공휴일 관리 리스트 삭제 처리 + * @param String + * @param model + * @return "/let/mjo/holiday/deleteHolidayList.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/deleteHolidayList.do") + public String deleteHolidayList(@RequestParam("checkedIdForDel") String checkedIdForUpt, + ModelMap model) throws Exception{ + + try { + + String[] idArr = checkedIdForUpt.split(","); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + List idList = Arrays.asList(idArr); + + msgHolidayVO.setHolidayIdList(idList); + + int resultCnt = msgHolidayService.deleteHolidayData(msgHolidayVO); + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++ deleteHolidayList Error !!! "); + } + + return "redirect:/let/mjo/holiday/selectHolidayList.do"; + } + + /** + * 공휴일 관리 공공데이터 포털에서 공휴일 정보 받아오기 API + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/getHolidayApiDataAjax.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/getHolidayApiDataAjax.do") + public String getHolidayApiDataAjax(MsgHolidayVO msgHolidayVO, RedirectAttributes redirectAttributes) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do"); + return redirectUrlMaker.getRedirectUrl(); + + } + + String searchHoliYear = msgHolidayVO.getSearchHoliYear(); + + if(searchHoliYear == null) {//년도 파라미터가 없으면 현재 년도를 넘겨준다. + + Calendar cal = Calendar.getInstance(); + String year = Integer.toString(cal.get(Calendar.YEAR)); + + msgHolidayVO.setSearchHoliYear(year); + + } + + //공휴일 등록요청한 아이디를 셋팅 + msgHolidayVO.setFrstRegisterId(userId); + + //공공데이터 포털에서 공휴일 API를 통하여 정보를 받아온다. + List msgHolidayList = mjonHolidayApi.getYearHolidayApiData(msgHolidayVO); + + int resultCnt = msgHolidayService.insertHolidayData(msgHolidayList); + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++++++ getHolidayApiDataAjax Controller Error!!!! " + e); + redirectAttributes.addFlashAttribute("message", "오류가 발생하였습니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + redirectAttributes.addFlashAttribute("message", "공휴일 등록이 완료 되었습니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + /** + * 공휴일 관리 공휴일 정보 등록 팝업 화면 + * @param MsgHolidayVO + * @param model + * @return "/uss/umt/holiday/selectHolidayModifyPopupAjax.do" + * @throws Exception + */ + @RequestMapping("/uss/umt/holiday/selectHolidayModifyPopupAjax.do") + public String selectHolidayModifyPopupAjax(MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{ + + String toDay = MJUtil.getTodayDate(); //오늘 + msgHolidayVO.setHolidayDate(toDay); + + model.addAttribute("result", msgHolidayVO); + + return "/holiday/popup/MsgHolidayModifyPopup"; + } + + /** + * 공휴일 관리 공휴일 정보 신규 등록 처리 + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/insertHolidayRegistAjax.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/insertHolidayRegistAjax.do") + public ResponseEntity insertHolidayRegistAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.UNAUTHORIZED + , "로그인을 하셔야 이용 가능합니다." + , LocalDateTime.now() + ) + ); + + } + + //공공데이터 포털이 아닌 일반 등록 타입으로 등록해 준다. + msgHolidayVO.setApiType("N"); + msgHolidayVO.setFrstRegisterId(userId); + + //캘린더에서 넘어오는 날짜에서 하이픈을 삭제해준다. + String holidayDate = msgHolidayVO.getHolidayDate().replace("-", ""); + msgHolidayVO.setHolidayDate(holidayDate); + + List msgHolidayList = new ArrayList(); + + msgHolidayList.add(msgHolidayVO); + + int resultCnt = msgHolidayService.insertHolidayData(msgHolidayList); + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++ insertHolidayRegistAjax Controller Error!!!! "); + return ResponseEntity.ok( + new StatusResponse(HttpStatus.BAD_REQUEST + , "공휴일 등록 중 오류가 발생하였습니다.." + , LocalDateTime.now() + ) + ); + } + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.OK + , "공휴일 등록을 완료하였습니다." + , LocalDateTime.now() + ) + ); + } + + /** + * 공휴일 관리 공휴일 정보 신규 등록 처리 + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/insertHolidayRegistAjax.do" + * @throws Exception + */ + @RequestMapping("/uss/umt/holiday/selectHolidayDetailPopupAjax.do") + public String selectHolidayDetailPopupAjax(MsgHolidayVO msgHolidayVO, RedirectAttributes redirectAttributes, ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do"); + return redirectUrlMaker.getRedirectUrl(); + + } + + MsgHolidayVO resultVO = msgHolidayService.selectHolidayDetail(msgHolidayVO); + + model.addAttribute("result", resultVO); + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++ selectHolidayDetailPopupAjax Error !!!! "); + redirectAttributes.addFlashAttribute("message", "오류가 발생하였습니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + return "/holiday/popup/MsgHolidayModifyPopup"; + } + + + /** + * 공휴일 관리 공휴일 정보 수정 처리 + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/updateHolidayDataAjax.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/updateHolidayDataAjax.do") + public ResponseEntity updateHolidayDataAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.UNAUTHORIZED + , "로그인을 하셔야 이용 가능합니다." + , LocalDateTime.now() + ) + ); + + } + + //공공데이터 포털이 아닌 일반 등록 타입으로 등록해 준다. + msgHolidayVO.setApiType("N"); + msgHolidayVO.setLastUpdusrId(userId); + + //캘린더에서 넘어오는 날짜에서 하이픈을 삭제해준다. + String holidayDate = msgHolidayVO.getHolidayDate().replace("-", ""); + msgHolidayVO.setHolidayDate(holidayDate); + + int resultCnt = msgHolidayService.updateHolidayData(msgHolidayVO); + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++ updateHolidayDataAjax Controller Error!!!! "); + return ResponseEntity.ok( + new StatusResponse(HttpStatus.BAD_REQUEST + , "공휴일 수정 중 오류가 발생하였습니다.." + , LocalDateTime.now() + ) + ); + } + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.OK + , "공휴일 수정을 완료하였습니다." + , LocalDateTime.now() + ) + ); + } + + /** + * 공휴일 관리 공휴일 정보 삭제 처리(상세 팝업화면에서 삭제 요청시 처리) + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/deleteHolidayDataAjax.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/deleteHolidayDataAjax.do") + public ResponseEntity deleteHolidayDataAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.UNAUTHORIZED + , "로그인을 하셔야 이용 가능합니다." + , LocalDateTime.now() + ) + ); + + } + + List idList = new ArrayList(); + + String holiId = Integer.toString(msgHolidayVO.getHolidayId()); + + idList.add(holiId); + + msgHolidayVO.setHolidayIdList(idList); + int resultCnt = msgHolidayService.deleteHolidayData(msgHolidayVO); + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++ deleteHolidayDataAjax Controller Error!!!! "); + return ResponseEntity.ok( + new StatusResponse(HttpStatus.BAD_REQUEST + , "공휴일 삭제 중 오류가 발생하였습니다.." + , LocalDateTime.now() + ) + ); + } + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.OK + , "공휴일이 삭제 되었습니다." + , LocalDateTime.now() + ) + ); + } + + /** + * 관리자 알림 설정 - 야간스미싱알림 설정 팝업 화면 + * @param MsgHolidayVO + * @param model + * @return "/uss/umt/holiday/alarmSet/selectAlarmSettingPopupAjax.do" + * @throws Exception + */ + @RequestMapping("/uss/umt/holiday/alarmSet/selectAlarmSettingPopupAjax.do") + public String selectAlarmSettingPopupAjax(MsgAlarmSetVO msgAlarmSetVO, RedirectAttributes redirectAttributes, ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do"); + return redirectUrlMaker.getRedirectUrl(); + + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(msgAlarmSetVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(msgAlarmSetVO.getPageUnit()); + paginationInfo.setPageSize(msgAlarmSetVO.getPageSize()); + + msgAlarmSetVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + msgAlarmSetVO.setLastIndex(paginationInfo.getLastRecordIndex()); + msgAlarmSetVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + if("".equals(msgAlarmSetVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + msgAlarmSetVO.setSearchSortCnd("ALARM_START"); + msgAlarmSetVO.setSearchSortOrd("desc"); + } + + List resultList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + model.addAttribute("resultList", resultList); + model.addAttribute("msgAlarmSetVO", msgAlarmSetVO); + + paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MsgAlarmSetVO)resultList.get(0)).getTotCnt() : 0); + model.addAttribute("paginationInfo", paginationInfo); + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++ selectAlarmSettingPopupAjax Error !!!! "); + } + + return "/holiday/alarmset/MsgHolidayAlarmSettingListPop"; + } + + /** + * 관리자 알림 설정 - 야간스미싱알림 일정 추가 처리 + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/alarmSet/insertAlarmSettinDataAjax.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/alarmSet/insertAlarmSettingDataAjax.do") + public ResponseEntity insertAlarmSettingDataAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO, ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.UNAUTHORIZED + , "로그인을 하셔야 이용 가능합니다." + , LocalDateTime.now() + ) + ); + + } + + //등록자 아이디 셋팅 + msgAlarmSetVO.setFrstRegisterId(userId); + + int resultCnt = msgHolidayService.insertAlarmSettingData(msgAlarmSetVO); + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++ insertAlimSettingDataAjax Controller Error!!!! "); + return ResponseEntity.ok( + new StatusResponse(HttpStatus.BAD_REQUEST + , "알림 일정 등록 중 오류가 발생하였습니다.." + , LocalDateTime.now() + ) + ); + } + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.OK + , "알림 일정이 등록 되었습니다." + , LocalDateTime.now() + ) + ); + } + + /** + * 관리자 알림 설정 - 야간스미싱알림 일정 사용상태 변경 + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do") + public ResponseEntity updateAlarmSettingDataUseYnAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO, ModelMap model) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.UNAUTHORIZED + , "로그인을 하셔야 이용 가능합니다." + , LocalDateTime.now() + ) + ); + + } + + + System.out.println(msgAlarmSetVO.getAlarmId()); + System.out.println(msgAlarmSetVO.getUseYn()); + msgAlarmSetVO.setLastUpdusrId(userId); + + int resultCnt = msgHolidayService.updateAlarmSettingDataUseYn(msgAlarmSetVO); + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++ updateAlarmSettingDataUseYnAjax Controller Error!!!! "); + return ResponseEntity.ok( + new StatusResponse(HttpStatus.BAD_REQUEST + , "사용여부 변경 중 오류가 발생하였습니다.." + , LocalDateTime.now() + ) + ); + } + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.OK + , "변경이 완료 되었습니다." + , LocalDateTime.now() + ) + ); + } + + /** + * 관리자 알림 설정 - 야간스미싱알림 일정 삭제 처리 + * @param MsgHolidayVO + * @param model + * @return "/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do" + * @throws Exception + */ + @RequestMapping("/let/mjo/holiday/alarmSet/deleteAlarmSettingDataAjax.do") + public ResponseEntity deleteAlarmSettingDataAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO) throws Exception{ + + try { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.UNAUTHORIZED + , "로그인을 하셔야 이용 가능합니다." + , LocalDateTime.now() + ) + ); + + } + + String[] splitId = msgAlarmSetVO.getAlarmIds().split(","); + + List idList = Arrays.asList(splitId); + + msgAlarmSetVO.setAlarmIdList(idList); + + int resultCnt = msgHolidayService.deleteAlarmSettingData(msgAlarmSetVO); + + } catch (Exception e) { + System.out.println("++++++++++++++++++++++++ deleteAlarmSettingDataAjax Controller Error!!!! " + e); + return ResponseEntity.ok( + new StatusResponse(HttpStatus.BAD_REQUEST + , "사용여부 변경 중 오류가 발생하였습니다.." + , LocalDateTime.now() + ) + ); + } + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.OK + , "변경이 완료 되었습니다." + , LocalDateTime.now() + ) + ); + } + + @RequestMapping("/let/mjo/holiday/alarmSet/selectAlarmSettingDataCheckAjax.do") + public ResponseEntity selectAlarmSettingDataCheckAjax() throws Exception{ + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + System.out.println("+++++++++ 스미싱을 패스 시킬건지 ::: "+smishingAlarmPassSts); + + return ResponseEntity.ok( + new StatusResponse(HttpStatus.OK + , "변경이 완료 되었습니다." + , LocalDateTime.now() + ) + ); + } + +} diff --git a/src/main/java/itn/let/mjo/test/web/TestController.java b/src/main/java/itn/let/mjo/test/web/TestController.java index 607ae395..fe74160d 100644 --- a/src/main/java/itn/let/mjo/test/web/TestController.java +++ b/src/main/java/itn/let/mjo/test/web/TestController.java @@ -78,10 +78,14 @@ import itn.let.mjo.apikey.service.ApiKeyMngService; import itn.let.mjo.event.service.MjonEventService; import itn.let.mjo.event.service.MjonEventVO; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msg.service.MjonMsgService; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.payva.service.VacsVactService; import itn.let.mjo.payva.service.VacsVactVO; @@ -196,6 +200,9 @@ public class TestController { @Autowired CheckNoServiceCommon checkNoServiceCommon; + @Autowired + MjonHolidayApi mjonHolidayApi; + @Resource(name = "egovSiteManagerService") private EgovSiteManagerService egovSiteManagerService; @@ -223,6 +230,9 @@ public class TestController { @Resource (name = "userManageService") private EgovUserManageService egovUserManageService; + @Resource(name = "MsgHolidayService") + private MsgHolidayService msgHolidayService; + private static final Logger logger = LoggerFactory.getLogger(TestController.class); ///////////////////////////////////////////////////////////////////////////////////////// @@ -1029,6 +1039,22 @@ public class TestController { try { + //회원 정보 중 금지어 예외 항목에 대해서 스팸 필터링 처리 유무 적용 - 20240820 우영두 + MberManageVO mberManageVO = new MberManageVO(); + + //회원정보 불러오기 + mberManageVO = mberManageService.selectMber(mjonMsgVO.getMberId()); + + //스팸 필터링 예외처리 여부 값 - (온: Y, 오프 : N) 온 일때 스미싱의심 예외 되도록 적용 + String exceptSpamYn = mberManageVO.getExceptSpamYn(); + + if(exceptSpamYn.equals("Y")) {//스팸 필터링 예외 온 일 경우 리턴 처리 + + modelAndView.addObject("result", "clear"); + return modelAndView; + + } + List resultSpamTxt = mjonMsgDataService.selectSpamKeywordList(); String spmFilterTxt = ""; if(resultSpamTxt == null) {//스팸 체크리스트가 없는 경우 @@ -2109,12 +2135,47 @@ public class TestController { JoinSettingVO joinSettingVO = new JoinSettingVO(); joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); - // SLACK 체크 - if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - System.out.println("slack noti"); - comm.getAdminSandSlack(mjonMsgVO); + String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); + + //야간 스미싱의심 알림이 활성화 되어있는 경우 + if(holiSmishingNoti.equals("Y")) { + // SLACK 체크 + if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + //Slack으로 메세지 전송 처리 + MjonCommon comm = new MjonCommon(); + System.out.println("slack noti"); + comm.getAdminSandSlack(mjonMsgVO); + } + }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } + } } @@ -3289,6 +3350,5 @@ public class TestController { } } - - + } diff --git a/src/main/java/itn/let/sym/site/service/JoinSettingVO.java b/src/main/java/itn/let/sym/site/service/JoinSettingVO.java index 0fe89cea..8dc3b39d 100644 --- a/src/main/java/itn/let/sym/site/service/JoinSettingVO.java +++ b/src/main/java/itn/let/sym/site/service/JoinSettingVO.java @@ -48,6 +48,7 @@ public class JoinSettingVO { private String emailNoti; //관리자 이메일 알림 여부 private String slackNoti; //관리자 SLACK 알림 여부 private String smishingNoti; //첫결제(카드제외) 스미싱의심 알림 여부 + private String holiSmishingNoti; //야간 스미싱알림 여부 public String getSmishingNoti() { return smishingNoti; @@ -215,6 +216,14 @@ public class JoinSettingVO { public void setFaxPrice(float faxPrice) { this.faxPrice = faxPrice; + } + + public String getHoliSmishingNoti() { + return holiSmishingNoti; + } + + public void setHoliSmishingNoti(String holiSmishingNoti) { + this.holiSmishingNoti = holiSmishingNoti; } } diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-holiday.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-holiday.xml new file mode 100644 index 00000000..217461e0 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-holiday.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/let/holiday/MsgHolidayData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/holiday/MsgHolidayData_SQL_mysql.xml new file mode 100644 index 00000000..529eab4d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/let/holiday/MsgHolidayData_SQL_mysql.xml @@ -0,0 +1,213 @@ + + + + + + + + + INSERT INTO MJ_HOLIDAY + (HOLIDAY_NM, + HOLIDAY_DATE, + HOLIDAY_TYPE, + API_TYPE, + FRST_REGIST_PNTTM, + FRST_REGISTER_ID, + LAST_UPDT_PNTTM, + LAST_UPDUSR_ID + )VALUES + + ( + #[].holidayNm#, + #[].holidayDate#, + #[].holidayType#, + #[].apiType#, + NOW(), + #[].frstRegisterId#, + NOW(), + #[].lastUpdusrId# + ) + + + + + + + + + + DELETE + FROM MJ_HOLIDAY + WHERE HOLIDAY_ID IN + ( SELECT HOLIDAY_ID + FROM MJ_HOLIDAY + WHERE API_TYPE = 'Y' + AND HOLIDAY_DATE LIKE CONCAT(#searchHoliYear#,'%') + ) + + + + + + UPDATE MJ_HOLIDAY + SET HOLIDAY_NM = #holidayNm#, + HOLIDAY_DATE = #holidayDate#, + HOLIDAY_TYPE = #holidayType#, + LAST_UPDUSR_ID = #lastUpdusrId# + WHERE HOLIDAY_ID = #holidayId# + + + + + + DELETE FROM MJ_HOLIDAY + WHERE 1=1 + + + #holidayIdList[]# + + + + + + + + INSERT + INTO MJ_SPAMPASS_ALARM + ( + ALARM_TYPE, + ALARM_START, + ALARM_END, + FRST_REGIST_PNTTM, + FRST_REGISTER_ID, + LAST_UPDT_PNTTM, + LAST_UPDUSR_ID + ) + VALUES + ( #alarmType# + , #alarmStart# + , #alarmEnd# + , NOW() + , #frstRegisterId# + , NOW() + , #frstRegisterId# + ) + + + + + + + + UPDATE MJ_SPAMPASS_ALARM SET + USE_YN = #useYn#, + LAST_UPDT_PNTTM = NOW(), + LAST_UPDUSR_ID = #lastUpdusrId# + WHERE ALARM_ID = #alarmId# + + + + + + DELETE FROM MJ_SPAMPASS_ALARM + WHERE 1=1 + + + #alarmIdList[]# + + + + + + + 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 832a3c7d..b70160c9 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 @@ -2302,6 +2302,39 @@ ) + + + INSERT + INTO MJ_SPAMPASS_MSG + ( + MSG_GROUP_ID, + USER_ID, + REQ_DATE, + SMS_TXT, + MSG_GROUP_CNT, + CALL_FROM, + MSG_TYPE, + RESERVE_YN, + FRST_REGIST_PNTTM, + LAST_UPDT_PNTTM + ) + VALUES + ( + #msgGroupId# + , #userId# + , #reqDate# + , #smsTxt# + , #totalCallCnt# + , #callFrom# + , #msgType# + , #reserveYn# + , NOW() + , NOW() + + ) + + + UPDATE MJ_MSG_GROUP_DATA @@ -7517,5 +7550,271 @@ + + + + + + + UPDATE MJ_SPAMPASS_MSG + SET CANCEL_RESULT_YN = 'Y' + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = NOW() + WHERE USER_ID = #userId# + AND MSG_GROUP_ID = #msgGroupId# + + + diff --git a/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml index 3dba239c..e9004017 100644 --- a/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml @@ -956,6 +956,7 @@ IFNULL(EMAIL_NOTI, 'N') AS emailNoti, IFNULL(SLACK_NOTI, 'N') AS slackNoti, IFNULL(SMISHING_NOTI, 'N') AS smishingNoti, + IFNULL(HOLI_SMISHING_NOTI, 'N') AS holiSmishingNoti, LAST_UPDUSR_ID AS lasUpdusrId, LAST_UPDT_PNTTM AS lastUpdtPnttm FROM MJ_MBER_SETTING @@ -972,6 +973,7 @@ ,EMAIL_NOTI = #emailNoti# ,SLACK_NOTI = #slackNoti# ,SMISHING_NOTI = #smishingNoti# + ,HOLI_SMISHING_NOTI = #holiSmishingNoti# ,LAST_UPDUSR_ID = #lasUpdusrId# ,LAST_UPDT_PNTTM = NOW() diff --git a/src/main/webapp/WEB-INF/jsp/holiday/MsgHolidayList.jsp b/src/main/webapp/WEB-INF/jsp/holiday/MsgHolidayList.jsp new file mode 100644 index 00000000..79d2322e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/holiday/MsgHolidayList.jsp @@ -0,0 +1,400 @@ +<%-- + Class Name : MsgHolidayList.jsp + Description : 공휴일 관리 리스트 + Modification Information + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2024.07.29 우영두 최초 생성 + + author : 공통서비스 개발팀 장동한 + since : 2009.09.16 + + Copyright (C) 2009 by MOPAS All right reserved. +--%> +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> +<% pageContext.setAttribute("newLineChar", "\r\n"); %> +<% pageContext.setAttribute("newLineChar2", "\n"); %> +<% + response.setHeader("Cache-Control","no-store"); + response.setHeader("Pragma","no-cache"); + response.setDateHeader("Expires",0); + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); +%> + + + +공휴일 관리 조회 + + + + + + + +
+ + + " /> + " /> + + + + + + +
+
+
+

공휴일 관리

+

공휴일 등록 관리

+
+
+
+
+ + + + + " > + + + ~ + + " + > + + + + 타임아웃 아이콘 + +
+

+ + + + + +
+
+

+ 총 건 + + (예약발송 : 건) + +

+
+ + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호공휴일명휴일일자휴일종류등록일자등록자
+ " title="Check " type="checkbox"/> + + + + + + + + + + '); return false;"> + + + + + + + + 법정 공휴일 + + + 임시 공휴일 + + + 기타 + + + + + + +
+
+
+ + +
+ + +
+
    + +
+
+
+ +
+
+
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp b/src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp new file mode 100644 index 00000000..22bc138d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp @@ -0,0 +1,675 @@ +<%-- + Class Name : MsgHolidayAlarmSettingListPop.jsp + Description : 야간 스미싱알림 일정 등록관리 팝업 + Modification Information + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2024.07.31 우영두 최초 생성 + + author : 우영두 + since : 2022.07.01 + + Copyright (C) 2009 by MOPAS All right reserved. +--%> +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> +<% pageContext.setAttribute("newLineChar", "\r\n"); %> +<% pageContext.setAttribute("newLineChar2", "\n"); %> +<% + response.setHeader("Cache-Control","no-store"); + response.setHeader("Pragma","no-cache"); + response.setDateHeader("Expires",0); + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); +%> + + + +스미싱의심 알림 설정 관리 + + + + + + + + + + + + + + + + + +
+
+
+
Loading
+
+
+
+ + +
+
+ +

야간 스미싱의심 알림 일정 관리

+ +
+
+
+ + + + + 부터 + + + + + + 까지 + + + + + +
+
+

+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호구분시작시간종료시간사용여부
+ " title="Check " type="checkbox"/> + + + + + + + + + + + + 평일 + + + 주말 + + + 공휴일 + + + + + + + + + + 사용 중 + + + + ','Y');" value="사용" style="width:55px;"/> + + + + + + + ','N');" value="미사용"/> + + + 미사용 + + +
+
+
+ + +
+ + +
+
    + +
+
+
+ +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/holiday/popup/MsgHolidayModifyPopup.jsp b/src/main/webapp/WEB-INF/jsp/holiday/popup/MsgHolidayModifyPopup.jsp new file mode 100644 index 00000000..8c78aa58 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/holiday/popup/MsgHolidayModifyPopup.jsp @@ -0,0 +1,443 @@ +<%-- + Class Name : MsgHolidayModifyPopup.jsp + Description : 공휴일 등록 팝업 + Modification Information + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2024.07.29 우영두 최초 생성 + + author : 우영두 + since : 2022.07.01 + + Copyright (C) 2009 by MOPAS All right reserved. +--%> +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> +<% pageContext.setAttribute("newLineChar", "\r\n"); %> +<% pageContext.setAttribute("newLineChar2", "\n"); %> +<% + response.setHeader("Cache-Control","no-store"); + response.setHeader("Pragma","no-cache"); + response.setDateHeader("Expires",0); + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); +%> + + + +공휴일 등록 + + + + + + + + + + + + + + + + +
+
+
+
Loading
+
+
+
+ + + + +
+
+ +

공휴일 등록

+ +
+
+ + + + + + + + + + + + + + + + + + + +
휴일명 + +
휴일 일자 + + + + + +
휴일 구분 + +
+
+ + + + + + + + + + +
+
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp b/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp index 3b8f55b1..55272be9 100644 --- a/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp @@ -6,9 +6,34 @@ - - 관리자 알림 관리 - +
@@ -73,6 +111,17 @@ + + + 스미싱의심 알림 여부 + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendHoliMsgList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendHoliMsgList.jsp new file mode 100644 index 00000000..ab82993f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendHoliMsgList.jsp @@ -0,0 +1,705 @@ +<%-- + Class Name : SendHoliMsgList.jsp + Description : 야간 스미싱의심 알림 제한 발송 내역 + Modification Information + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2024.07.24 우영두 최초 생성 + + author : 공통서비스 개발팀 장동한 + since : 2009.09.16 + + Copyright (C) 2009 by MOPAS All right reserved. +--%> +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> +<% pageContext.setAttribute("newLineChar", "\r\n"); %> +<% pageContext.setAttribute("newLineChar2", "\n"); %> +<% + response.setHeader("Cache-Control","no-store"); + response.setHeader("Pragma","no-cache"); + response.setDateHeader("Expires",0); + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); +%> + + + +알림 미처리 문자예약 조회 + + + + + + + +
+ + + + + " /> + " /> + + + + + + + +
+
+
+

알림 미처리 문자 조회

+

스미싱의심 알림 비활성화로 인해 발송된 문자리스트 현황을 파악할 수 있습니다.

+
+
+
+
+ + + + + " > + + + ~ + + " + > + + + + 타임아웃 아이콘 + +
+

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

+ 총 건 + + (예약발송 : 건) + +

+
+ + + + +
+
+
+ + + + + + + + + + + + + + + + <%-- + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호아이디회원상태발신번호발송건수요청시간예약여부내용타입방식등록일자처리상태
+ " title="Check " type="checkbox"/> + + style="color: #0000FF; cursor:pointer;"> + + + + + + + style="color: #0000FF; cursor:pointer;"> + '); return false;"> + + () + + style="color: #0000FF; cursor:pointer;"> + + + 일반 + + + 탈퇴 + + + 이용정지 + + + 기타(${result.mberSttus}) + + + style="color: #0000FF; cursor:pointer;"style="cursor:pointer;"> + + + + style="color: #0000FF; cursor:pointer;"style="cursor:pointer;"> + + + + + + + + (%) + + + style="color: #0000FF; cursor:pointer;"style="cursor:pointer;"> + + style="color: #0000FF; cursor:pointer;"> + + + 예약 + <%-- + (취소) + --%> + + + 즉시 + + + style="color: #0000FF;"> + + + + + 내용없음 + + + 그림문자 + + +
+ + + + + + + + + +
+
+ +

+
+ + + + + + + + + + + +
+
+ + +
+
+
+
style="color: #0000FF; cursor:pointer;"> + + + SMS + + + LMS + + + MMS + + + 알림톡 + + + + + + style="color: #0000FF; cursor:pointer;"> + + + API + + + WEB + + + style="color: #0000FF; cursor:pointer;"> + + style="color: #0000FF; cursor:pointer;"> + + + 처리완료 + + + 이용정지 + + + 예약취소 + + + 미처리 + + + +
+
+
+ + +
+ + +
+
    + +
+
+
+ +
+
+
+
+ + + +
+ +
+ +
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgDetailList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgDetailList.jsp index 34075d5d..b4ac83b9 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgDetailList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgDetailList.jsp @@ -105,6 +105,10 @@ function goList() { frm.action ='/uss/ion/msg/NewUserSendMsgList.do'; } + if(detailType == "sendHoliMsgList") { + frm.action ='/uss/ion/msg/selectHoliMsgList.do'; + } + frm.submit(); } diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp index 4f5dc648..fb0a93ef 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp @@ -17,10 +17,10 @@ <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> <% - response.setHeader("Cache-Control","no-store"); - response.setHeader("Pragma","no-cache"); - response.setDateHeader("Expires",0); - if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); + response.setHeader("Cache-Control","no-store"); + response.setHeader("Pragma","no-cache"); + response.setDateHeader("Expires",0); + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); %> @@ -35,7 +35,7 @@ html { overflow-x: hidden; overflow-y: auto; -} +} @@ -45,141 +45,141 @@ html { @@ -188,247 +188,247 @@ function setRejectAreaHide() {
-
-

발신번호 신청 정보

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
발신번호대표담당자회원구분인증방식인증자인증여부다운로드
${phoneNumber}${userName}${managerNm} - - - 기업 - - - 개인 - - - - - - - - 당사 - - - 대표 - - - 직원 - - - 타사 - - - 본인 - - - 타인 - - - - - 없음 - - - - - - 휴대폰 - - - 서류 - - - - - - - - - - - - - - - - - - 발신번호 차단 - - - 인증요청 - - - - - - - -
-
+
+

발신번호 신청 정보

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
발신번호대표담당자회원구분인증방식인증자인증여부다운로드
${phoneNumber}${userName}${managerNm} + + + 기업 + + + 개인 + + + + + + + + 당사 + + + 대표 + + + 직원 + + + 타사 + + + 본인 + + + 타인 + + + + + 없음 + + + + + + 휴대폰 + + + 서류 + + + + + + + + + + + + + + + + + + 발신번호 차단 + + + 인증요청 + + + + + + + +
+
-

- -
-

승인에 필요한 서류

-
-
- - - - - - - - - - - - -
${requiredDocuments} - - - - -
-
- - - - +

+ +
+

승인에 필요한 서류

+
+
+ + + + + + + + + + + + +
${requiredDocuments} + + + + +
+
+ + + + - -
- - - - - - - - - - - - - - -
-
+ +
+ + + + + + + + + + + + + + +
+
- -
- PDF 뷰어에서 지원하지 않는 형식의 파일입니다. 첨부파일 다운로드후 확인해주세요. -
-
- + +
+ PDF 뷰어에서 지원하지 않는 형식의 파일입니다. 첨부파일 다운로드후 확인해주세요. +
+
+ -
- -  Page: /   - - -
-
+
+ +  Page: /   + + +
+


@@ -458,95 +458,101 @@ function setRejectAreaHide() { - \ No newline at end of file + // Initial/first page rendering + renderPage(pageNum); + }); + \ No newline at end of file From ea145c3a4c3d859d6d030fcd7338406c223a0d01 Mon Sep 17 00:00:00 2001 From: rosewiper Date: Tue, 20 Aug 2024 18:42:37 +0900 Subject: [PATCH 13/15] =?UTF-8?q?=EC=8A=A4=EB=AF=B8=EC=8B=B1=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=EA=B8=B0=EB=8A=A5=20=EA=B8=B0=EC=A1=B4=20=EB=B9=84?= =?UTF-8?q?=ED=99=9C=EC=84=B1=ED=99=94=20=EC=83=81=ED=83=9C=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EA=B2=83=EC=9D=84=20=ED=99=9C=EC=84=B1=ED=99=94=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=EC=97=90=EC=84=9C=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EB=90=98=EB=8F=84=EB=A1=9D=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EB=B3=80=EA=B2=BD=20=EC=B2=98=EB=A6=AC=20=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/KakaoAlimTalkServiceImpl.java | 13 ++-- .../web/KakaoAlimTalkSendController.java | 39 +++++++++- .../let/mjo/msg/web/MjonMsgController.java | 4 +- .../web/MjonMsgCampainDataController.java | 59 +++++++-------- .../web/MjonMsgCampainHGDataController.java | 59 +++++++-------- .../web/MjonMsgCampainTWDataController.java | 74 +++++++------------ .../service/impl/MjonMsgDataServiceImpl.java | 37 ++++------ .../msgdata/web/MjonMsgDataController.java | 59 +++++++-------- .../itn/let/mjo/test/web/TestController.java | 38 +++++++++- .../MsgHolidayAlarmSettingListPop.jsp | 2 +- .../WEB-INF/jsp/sym/site/adminNotiDetail.jsp | 6 +- 11 files changed, 210 insertions(+), 180 deletions(-) diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java index 39152735..afdb623a 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java @@ -112,13 +112,12 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail(); String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); - System.out.println("++++++++++++++++++ holiSmishingNoti ::: "+holiSmishingNoti); //스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수 boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다. //야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다. //현재는 평일, 주말, 휴일 상관없이 N 이면 30분 딜레이 없이 발송 처리하도록 함. - if(holiSmishingNoti.equals("N")) { + if(holiSmishingNoti.equals("Y")) { MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); @@ -141,9 +140,11 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); - System.out.println("+++++++++ 스미싱을 패스 시킬건지 ::: "+smishingAlarmPassSts); - spamSmishingPassStatus = smishingAlarmPassSts; + }else { + + spamSmishingPassStatus = true; + } String atSmishingYn = kakaoVO.getAtSmishingYn(); @@ -152,8 +153,6 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements atSmishingYn = "N"; } - System.out.println("++++++++++++++++ spamSmishingPassStatus ::: "+spamSmishingPassStatus); - /** 카카오 알림톡 전송 리스트 생성 (시작)-------------------------------------------*/ for(int i = 0; i < callToCnt; i++) { @@ -380,7 +379,7 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements try { - //야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 + //야간 스미싱 알림이 활성화 이고 알림 예외 일정에 포함되고, 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 if(spamSmishingPassStatus && kakaoVO.getAtSmishingYn().equals("Y")) { mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); } diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java index 46feb662..ca1678bf 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java @@ -51,9 +51,13 @@ import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate; import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService; import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; import itn.let.mjo.mjocommon.MjonCommon; +import itn.let.mjo.mjocommon.MjonHolidayApi; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; +import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; +import itn.let.mjo.msgholiday.service.MsgHolidayService; +import itn.let.mjo.msgholiday.service.MsgHolidayVO; import itn.let.sym.site.service.EgovSiteManagerService; import itn.let.sym.site.service.JoinSettingVO; import itn.let.uss.umt.service.EgovUserManageService; @@ -104,6 +108,9 @@ public class KakaoAlimTalkSendController { @Resource(name = "egovSiteManagerService") EgovSiteManagerService egovSiteManagerService; + @Resource(name = "MsgHolidayService") + private MsgHolidayService msgHolidayService; + @Autowired KakaoApiProfile kakaoApiProfile; @@ -776,9 +783,35 @@ public class KakaoAlimTalkSendController { // SLACK 체크 if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminKakaoAtSandSlack(kakaoVO); + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminKakaoAtSandSlack(kakaoVO); + + } + } } diff --git a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java index b552db23..7ddb1ab8 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -1374,7 +1374,7 @@ public class MjonMsgController { //회원 상태 변경하기 int resultCnt = 0; mberManageVO.setMberSttus("B"); //이용정지 상태로 변경 - mberManageVO.setSmiMemo("야간 스미싱의심 문자 발송으로 이용정지 처리"); + mberManageVO.setSmiMemo("시스템 스팸 필터링에 의한 이용정지"); resultCnt = mberManageService.updateUserMsttus(mberManageVO); if(resultCnt > 0) { @@ -1417,7 +1417,7 @@ public class MjonMsgController { // 관리자 메모 String memo = ""; - memo = "회원상태 변경 : 이용정지, 사유 : 야간 스미싱의심 문자 발송으로 이용정지 처리"; + memo = "회원상태 변경 : 이용정지, 사유 : 알림 비활성화 시간대 발송(예약) 문자내역 중 스미싱 의심으로 판단하여 이용자 정지 처리"; mberManageVO.setMberId(mberId); mberManageVO.setMemoCn(memo); mberManageVO.setFrstRegisterId(adminId); diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java index 9c2577d6..09e0f84a 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java @@ -3205,41 +3205,38 @@ public class MjonMsgCampainDataController { if(holiSmishingNoti.equals("Y")) { // SLACK 체크 if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); - } - }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) - - MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); - - msgAlarmSetVO.setUseYn("Y"); - msgAlarmSetVO.setFirstIndex(0); - - List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); - - Calendar calendar = Calendar.getInstance(); - int year = calendar.get(Calendar.YEAR); - - MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); - msgHolidayVO.setFirstIndex(0); - msgHolidayVO.setRecordCountPerPage(100); - msgHolidayVO.setSearchHoliYear(Integer.toString(year)); - - List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); - - MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); - - boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); - - if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } } - } + } } diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java index 17726f3f..2ac0dff7 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java @@ -1115,41 +1115,38 @@ public class MjonMsgCampainHGDataController { if(holiSmishingNoti.equals("Y")) { // SLACK 체크 if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); - } - }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) - - MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); - - msgAlarmSetVO.setUseYn("Y"); - msgAlarmSetVO.setFirstIndex(0); - - List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); - - Calendar calendar = Calendar.getInstance(); - int year = calendar.get(Calendar.YEAR); - - MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); - msgHolidayVO.setFirstIndex(0); - msgHolidayVO.setRecordCountPerPage(100); - msgHolidayVO.setSearchHoliYear(Integer.toString(year)); - - List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); - - MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); - - boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); - - if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } } - } + } } diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java index 2ffc385c..f0c4f2bc 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java @@ -2089,41 +2089,38 @@ public class MjonMsgCampainTWDataController { if(holiSmishingNoti.equals("Y")) { // SLACK 체크 if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); - } - }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) - - MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); - - msgAlarmSetVO.setUseYn("Y"); - msgAlarmSetVO.setFirstIndex(0); - - List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); - - Calendar calendar = Calendar.getInstance(); - int year = calendar.get(Calendar.YEAR); - - MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); - msgHolidayVO.setFirstIndex(0); - msgHolidayVO.setRecordCountPerPage(100); - msgHolidayVO.setSearchHoliYear(Integer.toString(year)); - - List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); - - MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); - - boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); - - if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } } - } + } } @@ -2136,21 +2133,6 @@ public class MjonMsgCampainTWDataController { } - - /* - * 선거문자 20건 발송 처리 종료 - * - * */ - - - - - - - - - - /** * 선거문자 20건씩 문자 발송 - 엑셀파일 불러오기 * @param body diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index 6fd0b26b..d41aa501 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -171,9 +171,9 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다. //스팸, 스미싱 상태인 경우에만 true 처리 - //야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다. + //야간스미싱알리 여부가 활성화 인경우 무조건 문자를 즉시 보내도록 한다. //스미싱 알림 일정에 등록된 날짜와 시간에 포함되면 30분 딜레이 없이 발송 처리하도록 함. - if(holiSmishingNoti.equals("N")) { + if(holiSmishingNoti.equals("Y")) { MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); @@ -197,6 +197,10 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); spamSmishingPassStatus = smishingAlarmPassSts; + }else { + + spamSmishingPassStatus = true; + } //전용 전송사가 지정되어 있으면 실행 @@ -357,8 +361,8 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M } - //야간 스미싱 알림여부가 비활성인 경우 스팸, 스미싱, 딜레이 값을 모두 N 으로 처리 - if(spamSmishingPassStatus && (spamStatus.equals("Y") || smishingYn.equals("Y"))) { + //야간 스미싱 알림여부가 활성화 이고 예외시간에 포함되는 경우 스팸, 스미싱, 딜레이 값을 모두 N 으로 처리 + if(spamSmishingPassStatus) { spamStatus = "N"; smishingYn = "N"; @@ -2445,12 +2449,12 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M System.out.println("++++++++++++++++++ holiSmishingNoti ::: "+holiSmishingNoti); //스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수 - boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다. + boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 예외 알림 일정에 포함되는 시간에는 슬랙 및 30분 딜레이를 하지 않는다. //스팸, 스미싱 상태인 경우에만 true 처리 //야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다. - //스미싱 알림 일정에 등록된 날짜와 시간에 포함되면 30분 딜레이 없이 발송 처리하도록 함. - if(holiSmishingNoti.equals("N")) { + //야간 스미싱 알림 여부가 활성화 이고 스미싱 알림 일정에 등록된 날짜와 시간에 포함되면 30분 딜레이 없이 발송 처리하도록 함. + if(holiSmishingNoti.equals("Y")) { MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); @@ -2474,6 +2478,9 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); spamSmishingPassStatus = smishingAlarmPassSts; + }else { + + spamSmishingPassStatus = true; } //전용 전송사가 지정되어 있으면 실행 @@ -2634,8 +2641,8 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M } - //야간 스미싱 알림여부가 비활성인 경우 스팸, 스미싱, 딜레이 값을 모두 N 으로 처리 - if(spamSmishingPassStatus && (spamStatus.equals("Y") || smishingYn.equals("Y"))) { + //스팸스미싱 예외 상태가 true 이면 30분 딜레이 및 슬랙 알림을 하지 않는다. + if(spamSmishingPassStatus) { spamStatus = "N"; smishingYn = "N"; @@ -3130,19 +3137,7 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M //야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 if(spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) { - - System.out.println(mjonMsgVO.getMsgGroupId()); - System.out.println(mjonMsgVO.getMsgGroupCnt()); - System.out.println(mjonMsgVO.getUserId()); - System.out.println(mjonMsgVO.getSmsTxt()); - System.out.println(mjonMsgVO.getReqDate()); - System.out.println(mjonMsgVO.getCallFrom()); - System.out.println(mjonMsgVO.getMsgType()); - System.out.println(mjonMsgVO.getReserveYn()); - System.out.println(mjonMsgVO.getTotalCallCnt()); - mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); - } } catch (Exception e) { diff --git a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java index 574c51e3..0ee23cf7 100644 --- a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java +++ b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java @@ -3055,41 +3055,38 @@ public class MjonMsgDataController { if(holiSmishingNoti.equals("Y")) { // SLACK 체크 if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { - //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); - } - }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) - - MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); - - msgAlarmSetVO.setUseYn("Y"); - msgAlarmSetVO.setFirstIndex(0); - - List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); - - Calendar calendar = Calendar.getInstance(); - int year = calendar.get(Calendar.YEAR); - - MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); - msgHolidayVO.setFirstIndex(0); - msgHolidayVO.setRecordCountPerPage(100); - msgHolidayVO.setSearchHoliYear(Integer.toString(year)); - - List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); - - MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); - - boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); - - if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 - MjonCommon comm = new MjonCommon(); - comm.getAdminSandSlack(mjonMsgVO); + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림 예외설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } } - } + } } catch (Exception e) { diff --git a/src/main/java/itn/let/mjo/test/web/TestController.java b/src/main/java/itn/let/mjo/test/web/TestController.java index fe74160d..a60021f6 100644 --- a/src/main/java/itn/let/mjo/test/web/TestController.java +++ b/src/main/java/itn/let/mjo/test/web/TestController.java @@ -2141,12 +2141,42 @@ public class TestController { if(holiSmishingNoti.equals("Y")) { // SLACK 체크 if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + + MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); + + msgAlarmSetVO.setUseYn("Y"); + msgAlarmSetVO.setFirstIndex(0); + + List resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); + msgHolidayVO.setFirstIndex(0); + msgHolidayVO.setRecordCountPerPage(100); + msgHolidayVO.setSearchHoliYear(Integer.toString(year)); + + List resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); + + MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); + + boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); + + if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송 + + MjonCommon comm = new MjonCommon(); + comm.getAdminSandSlack(mjonMsgVO); + + } + //Slack으로 메세지 전송 처리 - MjonCommon comm = new MjonCommon(); + /*MjonCommon comm = new MjonCommon(); System.out.println("slack noti"); - comm.getAdminSandSlack(mjonMsgVO); + comm.getAdminSandSlack(mjonMsgVO);*/ } - }else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) + } + /*else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X) MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); @@ -2176,7 +2206,7 @@ public class TestController { } - } + }*/ } diff --git a/src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp b/src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp index 22bc138d..88e69cbd 100644 --- a/src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp +++ b/src/main/webapp/WEB-INF/jsp/holiday/alarmset/MsgHolidayAlarmSettingListPop.jsp @@ -494,7 +494,7 @@ function fnClose(){
-

야간 스미싱의심 알림 일정 관리

+

스미싱의심 알림 예외 일정 관리

diff --git a/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp b/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp index 55272be9..9bd58074 100644 --- a/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/sym/site/adminNotiDetail.jsp @@ -14,7 +14,7 @@ var holiSmishingNoti = $('#holiSmishingNoti').val(); - if(holiSmishingNoti == "Y"){ + if(holiSmishingNoti == "N"){ $('.btnTypeAlim').hide(); @@ -22,7 +22,7 @@ $('#holiSmishingNoti').change(function(){ - if($('#holiSmishingNoti').val() == "Y"){ + if($('#holiSmishingNoti').val() == "N"){ $('.btnTypeAlim').hide(); @@ -119,7 +119,7 @@ - + From 4680e1c9411e49122721a9c5c8bc6c079d3615ff Mon Sep 17 00:00:00 2001 From: rosewiper Date: Wed, 21 Aug 2024 12:31:04 +0900 Subject: [PATCH 14/15] =?UTF-8?q?=EC=9D=B4=EC=9A=A9=EC=A0=95=EC=A7=80=20?= =?UTF-8?q?=EC=82=AC=EC=9C=A0=20=EC=85=80=EB=A0=89=ED=8A=B8=20=EB=B0=95?= =?UTF-8?q?=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/KakaoAlimTalkServiceImpl.java | 4 +- .../service/impl/MjonMsgDataServiceImpl.java | 8 ++-- .../uss/umt/web/EgovUserManageController.java | 8 ++++ ...govGnrUserSelectSpamBlockDetailPopAjax.jsp | 8 +++- .../umt/EgovGnrlUserSelectMsgDataListPop.jsp | 1 + .../cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp | 47 +++++++++++++++++++ .../jsp/web/login/loginRestrictionUse.jsp | 2 +- 7 files changed, 70 insertions(+), 8 deletions(-) diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java index afdb623a..60d01ef7 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java @@ -379,8 +379,8 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements try { - //야간 스미싱 알림이 활성화 이고 알림 예외 일정에 포함되고, 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 - if(spamSmishingPassStatus && kakaoVO.getAtSmishingYn().equals("Y")) { + //야간 스미싱 알림이 활성화 이고 알림 예외 일정에 포함되고, 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240821 우영두 추가 + if(holiSmishingNoti.equals("Y") && spamSmishingPassStatus && kakaoVO.getAtSmishingYn().equals("Y")) { mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); } diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index d41aa501..3bf34f54 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -848,8 +848,8 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M try { - //야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 - if(spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) { + //야간 스미싱 알림이 활성화이고 알림 예외 일정에 포함되고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240821 우영두 추가 + if(holiSmishingNoti.equals("Y") && spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) { mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); } @@ -3135,8 +3135,8 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M try { - //야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가 - if(spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) { + //야간 스미싱 알림이 활성화이고 알림 예외 일정에 포함되고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240821 우영두 추가 + if(holiSmishingNoti.equals("Y") && spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) { mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); } diff --git a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java index b9b827c9..0ff37d34 100644 --- a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java +++ b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java @@ -4929,6 +4929,14 @@ public String selectMberSpamBlockMemoDetailAjax(MberManageVO mberManageVO, Model } + // 관리자 메모 + String memo = ""; + memo = "회원상태 변경 : 이용정지, 사유 : "+ mberManageVO.getSmiMemo(); + mberManageVO.setMberId(mberId); + mberManageVO.setMemoCn(memo); + mberManageVO.setFrstRegisterId(userId); + mberManageService.insertMberMemo(mberManageVO); + modelAndView.addObject("message", "차단처리가 완료되었습니다."); modelAndView.addObject("result", "success"); diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrUserSelectSpamBlockDetailPopAjax.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrUserSelectSpamBlockDetailPopAjax.jsp index b1914e0c..1ccb9082 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrUserSelectSpamBlockDetailPopAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrUserSelectSpamBlockDetailPopAjax.jsp @@ -6,6 +6,12 @@ <%@ page import="itn.com.cmm.LoginVO" %>
+
+

+ +

+
+ <%-- 이용정지 사유 표시 변경으로 문자내용은 표시 안하고 사유로만 표시하기로 변경 됨 - 20240821 우영두 변경 @@ -74,7 +80,7 @@

- + --%>
diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectMsgDataListPop.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectMsgDataListPop.jsp index 5c5f71ab..7fccb3e2 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectMsgDataListPop.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectMsgDataListPop.jsp @@ -153,6 +153,7 @@ function fn_updateMberSttus(msgGroupId){ var data = new FormData(form); url = "/uss/umt/user/updateMberSttusBlockAjax.do"; data.append("msgGroupId", msgGroupId); + data.append("smiMemo", "시스템 스팸 필터링에 의한 이용정지"); $.ajax({ type: "POST", diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp index 3c2fe97e..b72619d0 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp @@ -2949,6 +2949,31 @@ function kakaoATDelayCancel(msgGroupId){ }); } } + +function fnInputSpamBlockMemo(){ + var memo = $("#inputSpamBlockMemo option:selected").text(); + var memoVal = $("#inputSpamBlockMemo option:selected").val(); + + if(memoVal != "6"){ + $("#smiMemoEdit").text(memo); + }else{ + $("#smiMemoEdit").text(""); + } + +} + +function fnInputSmiBlockMemo(){ + var memo = $("#inputSmiBlockMemo option:selected").text(); + var memoVal = $("#inputSmiBlockMemo option:selected").val(); + + if(memoVal != "6"){ + $("#smiContents").text(memo); + }else{ + $("#smiContents").text(""); + } + +} +