diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATVO.java b/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATVO.java index a7baa76d..1792b097 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATVO.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATVO.java @@ -217,6 +217,7 @@ public class MjonKakaoATVO extends ComDefaultVO{ private int regComCount; private int orderByCode; // 문자타입 정렬번호 private String detailType; + private String adFlag; diff --git a/src/main/java/itn/let/kakao/kakaoComm/KakaoSendUtil.java b/src/main/java/itn/let/kakao/kakaoComm/KakaoSendUtil.java index a7ddbd85..6d63f619 100644 --- a/src/main/java/itn/let/kakao/kakaoComm/KakaoSendUtil.java +++ b/src/main/java/itn/let/kakao/kakaoComm/KakaoSendUtil.java @@ -493,17 +493,9 @@ public class KakaoSendUtil { private Calendar setupBaseDate(KakaoVO kakaoVO, boolean isNotified) throws ParseException { - // 예약 시간 기본값 설정 - Date now = new Date(); - // ReqDate가 비어 있으면 현재 시간으로 설정, 그렇지 않으면 ReqDate로 설정 - // 화면에서 예약문자면 예약시간을 regDate로 설정한다. - Date baseDate; - if (StringUtils.isEmpty(kakaoVO.getReqDate())) { - kakaoVO.setReqDate(DATE_FORMATTER.format(now)); // ReqDate에 현재 시간 설정 - baseDate = now; - } else { - baseDate = DATE_FORMATTER.parse(kakaoVO.getReqDate()); // ReqDate를 baseDate로 설정 - } + + // baseDate 추출 + Date baseDate = resolveBaseDate(kakaoVO); // 시간 성정 Calendar calendar = Calendar.getInstance(); @@ -518,6 +510,31 @@ public class KakaoSendUtil { return calendar; } + public Date resolveBaseDate(KakaoVO kakaoVO) throws ParseException { + Date now = new Date(); + + if (StringUtils.isEmpty(kakaoVO.getReqDate())) { + kakaoVO.setReqDate(DATE_FORMATTER.format(now)); + return now; + } + return DATE_FORMATTER.parse(kakaoVO.getReqDate()); + } + + // 2. 친구톡 발송 제한 시간인지 확인 + public boolean isRestrictedFriendTalkTime(Date baseDate) { + Calendar cal = Calendar.getInstance(); + cal.setTime(baseDate); + + int hour = cal.get(Calendar.HOUR_OF_DAY); + int minute = cal.get(Calendar.MINUTE); + + // 20:50 이후 ~ 익일 08:00 이전은 제한 + if ((hour == 20 && minute >= 50) || hour > 20 || hour < 8) { + return true; + } + return false; + } + /** * @methodName : createSendVO * @author : 이호영 diff --git a/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java b/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java index 24b47cf2..0d28cd6e 100644 --- a/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java +++ b/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java @@ -105,6 +105,15 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem } + /** + * 친구톡은 발송 시간 제약이 있음 + */ + if(kakaoSendUtil.isRestrictedFriendTalkTime(kakaoSendUtil.resolveBaseDate(kakaoVO))) { + // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때 + return new StatusResponse(HttpStatus.BAD_REQUEST, + "친구톡은 20시 50분부터 익일 08시까지 발송이 제한됩니다."); + } + /** @isHolidayNotified * @false : 알림 X diff --git a/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java b/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java index 0cd9b891..792bcfae 100644 --- a/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java +++ b/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java @@ -1042,13 +1042,11 @@ public class KakaoSentController { //발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(MJ_MSG_DATA) MjonKakaoATVO mjonKakaoATResultVO = kakaoSentService.selectKakaoSentDetailDataAjax(mjonKakaoATVO); - log.info(" 1 resultMsgDetail.bizKakaoResendOrgnlTxt : [{}]", mjonKakaoATResultVO.getBizKakaoResendOrgnlTxt()); // 대체문자 엔터키 치환 if(StringUtils.isNotEmpty(mjonKakaoATResultVO.getSmsTxt())) { mjonKakaoATResultVO.setSmsTxt(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxt())); } model.addAttribute("resultMsgDetail", mjonKakaoATResultVO); - log.info(" 2 resultMsgDetail.bizKakaoResendOrgnlTxt : [{}]", mjonKakaoATResultVO.getBizKakaoResendOrgnlTxt()); String msgType = mjonKakaoATResultVO.getMsgType(); @@ -1080,7 +1078,6 @@ public class KakaoSentController { } model.addAttribute("msgType", msgType); - log.info(" 3 resultMsgDetail.bizKakaoResendOrgnlTxt : [{}]", mjonKakaoATResultVO.getBizKakaoResendOrgnlTxt()); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml index c571a6d8..1f37609c 100644 --- a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml @@ -926,6 +926,7 @@ , MGD.BIZ_KAKAO_RESEND_ORGNL_TXT as bizKakaoResendOrgnlTxt /* 대체 문자( 치환X ) */ , MD.BIZ_KAKAO_JSON_FILE as bizKakaoJsonFile /* Json 파일 경로 */ , BA.CONTENTS as contents + , MGD.AD_FLAG as adFlag FROM MJ_MSG_GROUP_DATA MGD INNER JOIN MJ_MSG_DATA MD ON MGD.MSG_GROUP_ID = MD.MSG_GROUP_ID diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp index 653ec2dd..3f4d110f 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp @@ -5,7 +5,7 @@ <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> <%@ page import="itn.com.cmm.LoginVO" %> - + @@ -66,6 +66,7 @@ $(document).ready(function (){ fnAgentCodeChg(); } + thisFnByteString($('#smsTxtArea').val()); }); $("#send_fail_check").change(function(){ if($("#send_fail_check").is(":checked")){ @@ -126,7 +127,7 @@ $(document).ready(function (){ }); - //대체문자 초기화 버튼 선택 처리 +/* //대체문자 초기화 버튼 선택 처리 $("#failCheckInit").click(function(){ $('#smsTxtArea').val(""); @@ -140,7 +141,7 @@ $(document).ready(function (){ fn_insertErrorYN('N'); }); - + */ // 광고포함여부 체크 이벤트 $("#ad_Y").click(function () { @@ -942,7 +943,7 @@ function fnSelectMinChk(){ if(resMin >= 50 && resMin <= 59){ - alert("친구톡은 20:50 ~ 익일 08:00까지 발송할 수 없습니다."); + alert("친구톡은 20시 50분부터 익일 08시까지 발송이 제한됩니다."); $("#msgResMin").val("40").prop("selected", true); } @@ -1353,13 +1354,18 @@ function thisFnByteString(contents){ $('#msgLeng').html(""); $('#limitLeng').html(""); + + if ($("#ad_Y").is(":checked")) { + contents = "(광고)"+contents+"\n무료거부 0808800858" + } + console.log(contents); var conLeng = conByteLeng(contents); // 내용 문자 입력 바이트 수 계산하기 $('#msgLeng').text(conLeng); //문자 길이 변수에 저장해주기 - $('#smsLen').val(conLeng); +// $('#smsLen').val(conLeng); if(conLeng > 90){ @@ -2201,9 +2207,15 @@ function updateButtons(){
(광고)
+무료거부 0808800858
+0 / diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailPopAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailPopAjax.jsp index 4789a0fd..9c20acb9 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailPopAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailPopAjax.jsp @@ -19,18 +19,21 @@
![]()
![]()
(광고)
+수신거부 : 홈 > 채널차단
+※ 단말기 설정에 따라 다르게 보일 수 있습니다
@@ -105,15 +113,23 @@ --%> -(광고)
+${fn:replace(resultMsgDetail.bizKakaoResendOrgnlTxt, newLineChar, "
")}
무료거부 0808800858
+상세결과
* 전체건수를 클릭하면 받는 사람 상세정보를 확인하실 수 있습니다.
-* 대체문자 발송 성공 시, 성공건수로 집계됩니다.
+* 전체건수를 클릭하면 받는 사람 상세정보를 확인하실 수 있습니다.
+* 대체문자 발송 성공 시, 성공건수로 집계됩니다.
+