diff --git a/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java b/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java index e479e055..c45ab844 100644 --- a/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java +++ b/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java @@ -661,4 +661,56 @@ public class KakaoFriendsTalkSendController { return modelAndView; } + /** + * @Method Name : kakaoFriendsTalkMsgSendRefundTestAjax + * @작성일 : 2024. 1. 18. + * @작성자 : 우영두 + * @Method 설명 : 카카오 친구톡 전송 환불 스케줄러 서비스 테스트 + */ + @RequestMapping(value= {"/web/mjon/kakao/friendstalk/selectKakaoFriendsTalkTestSendPopup.do"}) + public String selectKakaoFriendsTalkTestSendPopup(ModelMap model + , @ModelAttribute("kakaoVO") KakaoVO kakaoVO) throws Exception { + + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + if(userId == "") { + return "redirect:/web/user/login/login.do"; + }else { + //1.시스템 기본 단가 정보 불러오기 + JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); + + //2.사용자 개인 단가 정보 불러오기 + MberManageVO mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); + Float kakaoFtPrice = mberManageVO.getKakaoFtPrice(); + + if(kakaoFtPrice < 1) { + kakaoFtPrice = sysJoinSetVO.getKakaoFtPrice(); + } + + BigDecimal userMoney = new BigDecimal(mberManageVO.getUserMoney()).setScale(2, RoundingMode.HALF_EVEN); + model.addAttribute("userMoney", userMoney); + model.addAttribute("kakaoFtPrice", kakaoFtPrice); + } + + String tmpContents = kakaoVO.getTemplateContent(); + String txtReplYn = kakaoVO.getTxtReplYn(); + + if(txtReplYn.equals("Y")) { + + String[] varValStr = kakaoVO.getVarValList().get(0); + tmpContents = kakaoSendUtil.getKakaoFTCntReplace(varValStr[0], tmpContents); + + kakaoVO.setTemplateContent(tmpContents); + + } + + System.out.println("++++++++++++++ tmpContents ::: "+tmpContents); + + model.addAttribute("kakaoVO", kakaoVO); + + return "web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataTestPop"; + } + + } diff --git a/src/main/webapp/WEB-INF/decorators.xml b/src/main/webapp/WEB-INF/decorators.xml index 78fdba3c..38c86778 100644 --- a/src/main/webapp/WEB-INF/decorators.xml +++ b/src/main/webapp/WEB-INF/decorators.xml @@ -183,6 +183,7 @@ */web/pop/* /web/mjon/kakao/template/selectKakaoAlimtalkTemplateListPopupAjax.do /web/mjon/kakao/alimtalk/selectKakaoAlimtalkTemplateDataTestPopup.do + /web/mjon/kakao/friendstalk/selectKakaoFriendsTalkTestSendPopup.do /web/mjon/fax/faxSendDetailPopup.do diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataTestPop.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataTestPop.jsp index bca84c71..1978ab87 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataTestPop.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataTestPop.jsp @@ -134,7 +134,7 @@
- 친구톡 수정 + 알림톡 도착
@@ -195,10 +195,10 @@ -
+

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

diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataTestPop.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataTestPop.jsp new file mode 100644 index 00000000..06ba0dd7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataTestPop.jsp @@ -0,0 +1,221 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib 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"); %> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+
    +
  • 테스트 발송은 친구톡을 본인에게 발송하여 친구톡 내용을 미리 확인하는 서비스 입니다.
  • +
+
+
+
+
+
+
수신번호
+
+ +
+
+
+
발송금액
+
${kakaoFtPrice}
+
+

발송하시겠습니까?※ 친구톡 발송과 동일하게 요금이 차감됩니다.

+ +
+
+
+

+ ${kakaoVO.yellowId} +

+ +
+
+ 친구톡 +
+
+ + +
+ +
+
+ +

+ +

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

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

+

+
+
\ No newline at end of file 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 1a848ef5..670e84fa 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 @@ -785,37 +785,8 @@ function fn_sendMsgData(){ //이미지 첨부 체크 var imgChk = $("input[name=img_file_add]:checked").val(); - if(imgChk == 'I' || imgChk == 'W'){ - - var imgTitle = $("#imgTitle").val(); - var imgLink = $("#imgLink").val(); - var imgFileName = $("#imageFileName").val(); - - if(imgTitle == ''){ - - alert("친구톡 이미지 제목정보를 입력해 주세요."); - return false; - - } - - if(imgLink == ''){ - - alert("친구톡 이미지 선택시 이동할 링크 주소를 입력해 주세요."); - return false; - - } - - if(imgFileName == ''){ - - alert("친구톡 이미지를 등록해 주세요."); - return false; - - } - - $("#imageType").val(imgChk); - - //json 파일 필요 유무 셋팅 - $("#bizJsonYn").val("Y"); + if(!getFtImageType(imgChk)){ + return false; } //템플릿 버튼 갯수 체크 @@ -1434,6 +1405,275 @@ function msgSuccessClose(obj){ $('html').scrollTop(0); } +function getFtImageType(imgChk){ + + if(imgChk == 'I' || imgChk == 'W'){ + + var imgTitle = $("#imgTitle").val(); + var imgLink = $("#imgLink").val(); + var imgFileName = $("#imageFileName").val(); + + if(imgTitle == ''){ + + alert("친구톡 이미지 제목정보를 입력해 주세요."); + return false; + + } + + if(imgLink == ''){ + + alert("친구톡 이미지 선택시 이동할 링크 주소를 입력해 주세요."); + return false; + + } + + if(imgFileName == ''){ + + alert("친구톡 이미지를 등록해 주세요."); + return false; + + } + + $("#imageType").val(imgChk); + + //json 파일 필요 유무 셋팅 + $("#bizJsonYn").val("Y"); + } + + return true; + +} + + +function goToKakaoTestPopUp(){ + + if(loginVO == "" || loginVO == null){ + alert("테스트 발송 서비스는 로그인 후 이용 가능합니다."); + location.href=""; + return false; + } + + //기업회원 체크 + if(!usrDeptChk()){ + return false; + } + + var form = document.bizForm; + var senderKey = $("#selectAgentCode option:checked").val(); + var yellowId = $("#selectAgentCode option:checked").text(); + + if(senderKey == ''){ + alert("채널ID를 선택해 주세요."); + return false; + }else{ + $("#inputSenderKey").val(senderKey); + $("#yellowId").val(yellowId); + } + + var imgChk = $("input[name=img_file_add]:checked").val(); + if(!getFtImageType(imgChk)){ + return false; + } + + //템플릿 버튼 갯수 체크 + var buttonCnt = $(".btn_kakao_type").length; + + if(buttonCnt > 0){ + //json 파일 필요 유무 셋팅 + $("#bizJsonYn").val("Y"); + } + + //친구톡 내용 체크 + var tmpContents = $('#inputTemplateContent').val(); + + if(tmpContents == ""){ + + alert("친구톡 내용을 입력해 주세요."); + return false; + + }else{ + + //템플릿 내용 입력 + $("#templateContent").val(tmpContents); + + } + + var rtnStr = strChinJpnCheck(tmpContents); + + //문자내용에 이모지가 있는지 체크 + if(!emojiCheck(tmpContents)) return false; + + if(rtnStr.length > 0){ + + alert("입력하신 문구 중 \" " + rtnStr + " \" 는 일부 휴대폰에서 표기되지 않을 수 있습니다."); + + } + + + var selectedData = tableL.getRows(); + + if(selectedData == "" || selectedData == null){ + + alert("받는사람 주소를 한 건 이상 입력해주세요."); + return false; + + }else{ + + //치환문구 변환 + var txtReplYn = $("#txtReplYn").val(); + + if(txtReplYn == 'Y'){ + + var name = tableL.getRows()[0].getData().name; + var phone = removeDash(tableL.getRows()[0].getData().phone); + var rep1 = tableL.getRows()[0].getData().rep1; + var rep2 = tableL.getRows()[0].getData().rep2; + var rep3 = tableL.getRows()[0].getData().rep3; + var rep4 = tableL.getRows()[0].getData().rep4; + + var varValList = []; //치환문자 연결시킬 변수 셋팅 + + + var nmStatus = false; + var rep1Status = false; + var rep2Status = false; + var rep3Status = false; + var rep4Status = false; + + var varValStr = ""; + var varValStatus = true; + + + if(tmpContents.indexOf("\#{이름}") > -1){ + nmStatus = true; + } + + if(tmpContents.indexOf("\#{1}") > -1){ + rep1Status = true; + } + + if(tmpContents.indexOf("\#{2}") > -1){ + rep2Status = true; + } + + if(tmpContents.indexOf("\#{3}") > -1){ + rep3Status = true; + } + + if(tmpContents.indexOf("\#{4}") > -1){ + rep4Status = true; + } + + + if(nmStatus && (typeof(name) != 'undefined' && name != null && name !="")){ + + if(varValStr == ''){ + varValStr = name.replaceAll(",","§"); + }else{ + varValStr = varValStr + "¶" + name.replaceAll(",","§"); + } + + }else{ + + if(nmStatus){ + varValStatus = false; + } + + } + + if(varValStr == ''){ + varValStr = phone; + }else{ + varValStr = varValStr + "¶" + phone; + } + + if(rep1Status && (typeof(rep1) != 'undefined' && rep1 != null && rep1 !="")){ + + if(varValStr == ''){ + varValStr = rep1.replaceAll(",","§"); + }else{ + varValStr = varValStr + "¶" + rep1.replaceAll(",","§"); + } + + }else{ + + if(rep1Status){ + varValStatus = false; + } + + } + + + if(rep2Status && (typeof(rep2) != 'undefined' && rep2 != null && rep2 !="")){ + + if(varValStr == ''){ + varValStr = rep2.replaceAll(",","§"); + }else{ + varValStr = varValStr + "¶" + rep2.replaceAll(",","§"); + } + + }else{ + + if(rep2Status){ + varValStatus = false; + } + + } + + if(rep3Status && (typeof(rep3) != 'undefined' && rep3 != null && rep3 !="")){ + + if(varValStr == ''){ + varValStr = rep3.replaceAll(",","§"); + }else{ + varValStr = varValStr + "¶" + rep3.replaceAll(",","§"); + } + + }else{ + + if(rep3Status){ + varValStatus = false; + } + + } + + if(rep4Status && (typeof(rep4) != 'undefined' && rep4 != null && rep4 !="")){ + + if(varValStr == ''){ + varValStr = rep4.replaceAll(",","§"); + }else{ + varValStr = varValStr + "¶" + rep4.replaceAll(",","§"); + } + + }else{ + + if(rep4Status){ + varValStatus = false; + } + + } + + if(!varValStatus){ + + alert("특정문구 일괄변환에 대한 일부 데이터가 누락된 부분이 있습니다. 데이터를 확인해 주세요."); + return false; + + } + + varValList[0] = varValStr; + + $("#varValList").val(varValList); + } + + } + + form.method = "post"; + window.open("about:blank", 'testSendPop', 'width=770, height=850, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1'); + form.target = "testSendPop"; + form.action = "/web/mjon/kakao/friendstalk/selectKakaoFriendsTalkTestSendPopup.do"; + form.submit(); +} + + @@ -1509,6 +1749,8 @@ function msgSuccessClose(obj){ + +
@@ -2109,7 +2351,7 @@ function msgSuccessClose(obj){ - +