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 15bf7ad6..749f614d 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 @@ -76,9 +76,11 @@ public class KakaoFriendsTalkSendController { String author = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority()); String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); - if(userId == "") { + /*if(userId == "") { return "redirect:/web/user/login/login.do"; - } + }*/ + + model.addAttribute("loginVO", loginVO); try { diff --git a/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java b/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java index 669d5f0f..737aee6c 100644 --- a/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java +++ b/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java @@ -651,6 +651,11 @@ public class KakaoFriendsTalkTemplateController { paginationInfo.setTotalRecordCount(kakaoTemplateInfoList.size() > 0 ? ((KakaoVO)kakaoTemplateInfoList.get(0)).getTotCnt() : 0); model.addAttribute("paginationInfo", paginationInfo); + //사용자 등록 발신프로필 정보 조회해오기 + searchVO.setUserId(userId); + List resultProfileList = kakaoApiService.selectKakaoProfileList(searchVO); + model.addAttribute("resultProfileList", resultProfileList); + } catch (Exception e) { System.out.println("selectKakaoFriendsTemplateListAjax Controller Error !!! " + e); } diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp index da076590..5ca30dcb 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp @@ -1,7 +1,6 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> -<%@ page import="itn.com.cmm.LoginVO" %> - + + + @@ -636,7 +669,7 @@ $('.popupAddr').click(function(){ 채널ID - + + - + + + * 중복번호는 한번만 발송됩니다.
- +
@@ -1091,7 +1139,8 @@ $('.popupAddr').click(function(){

대체문자

- + +
@@ -1103,7 +1152,7 @@ $('.popupAddr').click(function(){
발신번호 - +
- + - + - +
@@ -1353,7 +1402,7 @@ $('.popupAddr').click(function(){
- + @@ -1362,7 +1411,7 @@ $('.popupAddr').click(function(){
diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp index 8ce249d7..ad13ecf2 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp @@ -426,7 +426,7 @@ function fnGoSampleTemplate(){ diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateListPopupAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateListPopupAjax.jsp index 2a508ce7..a90629b6 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateListPopupAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateListPopupAjax.jsp @@ -106,7 +106,8 @@ function selectTemplateListLoad(page){ var form = document.listForm; - + form.searchKeyword.value = $("#inputSearchKeyword").val(); + form.senderKey.value = $("select[name='selectAgentCode_select']").val(); form.pageIndex.value = page; form.action = "/web/mjon/kakao/template/selectKakaoFriendsTemplateListPopupAjax.do"; form.submit(); @@ -123,9 +124,11 @@ +
- + +
    -
  • +
  • '); return false;" style="cursor:pointer;">
    @@ -177,10 +181,10 @@

    수신거부 | 홈 > 채널차단

    -
    + <%--
    -
    - <%--
    +
    --%> +
    템플릿명
    @@ -191,7 +195,7 @@
    등록일
    -
    --%> +
  • diff --git a/src/main/webapp/js/kakao/ft/friendstalkExcel.js b/src/main/webapp/js/kakao/ft/friendstalkExcel.js index db222e58..cad5ebba 100644 --- a/src/main/webapp/js/kakao/ft/friendstalkExcel.js +++ b/src/main/webapp/js/kakao/ft/friendstalkExcel.js @@ -29,6 +29,130 @@ $(document).ready(function(){ //엑셀 파일 불러오기 function excelExport(event){ + var data = new FormData(document.excelForm); + data.append("file0", $('#excelFile').prop('files')[0]); + + var fileValue = $("#excelFile").val().split("\\"); + var fileName = fileValue[fileValue.length-1]; + + var fileExt = fileName.split('.').pop().toLowerCase(); + + if(fileExt.length > 0){ + if($.inArray(fileExt, ['txt','xls','xlsx']) == -1) { + + alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.'); + return false; + + } + + + var url = ""; + + if(fileExt == "xls" || fileExt == "xlsx"){ + + url = "/web/mjon/msgdata/sendExelFilePhoneNumAjax.do"; + + }else if(fileExt = "txt"){ + + url = "/web/mjon/msgdata/sendTxtFilePhoneNumAjax.do"; + + }else{ + + alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.'); + return; + + } + + //엑셀 데이터 변수에 자료가 있으면 지워준다. + if(excelAddr.length > 0){ + + excelAddr = []; + + } + + $.ajax({ + type: "POST", + enctype: 'multipart/form-data', + url: url, + data: data, + dataType:'json', + async: true, + processData: false, + contentType: false, + cache: false, + //timeout: 600000, + success: function (returnData, status) { + if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 + + if(returnData.success){ + + var data = returnData.data; + var message = returnData.message; + + if(message != '' ){ + alert(returnData.message); + } + + if(data != null){ + + $.each(data, function(i, item){ + + if(checkHpNum(item.phone)){ + + excelAddr.push({phone: item.phone, name: item.name, rep1: item.replace1, rep2: item.replace2, rep3: item.replace3, rep4: item.replace4}); + console.log(item.phone); + }/* else{ + + alert("엑셀 파일 데이터의 형식이 맞지 않는 부분이 있습니다."); + excelAddr = []; //엑셀 데이터 저장 변수 초기화 + $("#excelFile").val(""); //첨부파일 input 초기화 + $("#excelNm").val(""); // 첨부파일 명 초기화 + fileName = ""; + return; + + } */ + + }); + + } + + }else{ + alert(returnData.message); +// alert("첨부파일 불러오는 중 오류가 발생하였습니다."); + excelAddr = []; //엑셀 데이터 저장 변수 초기화 + $("#excelFile").val(""); //첨부파일 input 초기화 + $("#excelNm").val(""); // 첨부파일 명 초기화 + fileName = ""; + return; + + } + } else if(status== 'fail'){ + alert("첨부파일 불러오는 중 오류가 발생하였습니다."); + console.log("status : fail ~"); + } + }, + error: function (e) { + alert("첨부파일 불러오는 중 오류가 발생하였습니다."); + console.log("ERROR : ", e); + }, + beforeSend : function(xmlHttpRequest) { + //로딩창 show + $('.loading_layer').addClass('active'); + }, + complete : function(xhr, textStatus) { + //로딩창 hide + $('.loading_layer').removeClass('active'); + } + }); + + $("#excelFile").val(""); + $("#excelNm").val(fileName); + + } + +} +/*function excelExport(event){ + var fileValue = $("#excelFile").val().split("\\"); var fileName = fileValue[fileValue.length-1]; @@ -48,7 +172,7 @@ function excelExport(event){ } -} +}*/ //엑셀파일 자료 데이터베이스에 입력해주기 diff --git a/src/main/webapp/js/kakao/ft/ftTabulator.js b/src/main/webapp/js/kakao/ft/ftTabulator.js index 28218ece..d091e2fb 100644 --- a/src/main/webapp/js/kakao/ft/ftTabulator.js +++ b/src/main/webapp/js/kakao/ft/ftTabulator.js @@ -3,7 +3,7 @@ * @author : 우영두 * @fileName : ftTabulator.js * @date : 2024.01.09 - * @description : tabulator 관련 js + * @description : 받는사람 목록 tabulator 관련 js * =========================================================== * DATE AUTHOR NOTE * ----------------------------------------------------------- * @@ -14,7 +14,7 @@ */ $(document).ready(function (){ - /** + //받는사람 연락처 내용 처리 //Tabulator AJAX Data Loading tableL = new Tabulator(".callList_box", { @@ -88,7 +88,7 @@ $(document).ready(function (){ }); - */ + //주소록 불러오기 팝업 내용 //Tabulator AJAX Data Loading tableAddr = new Tabulator(".callAddr_box", { @@ -147,38 +147,57 @@ $(document).ready(function (){ //핸드폰 번호에 '-' 문자 제거하기 callToNum = removeDash(callToNum); - - var dpCnt = 0; - $(".phoneArea p").each(function(index, item){ - if(this.textContent == callToNum){ - - dpCnt++; - - alert("받는사람 리스트에 동일한 연락처가 있습니다."); - $('#callTo').val(""); - return false; - } - }); + + //기존 받는사람 연락처 모두 불러오기 + var data = tableL.getRows(); + var tableData = []; + var dpCnt = 0; + for(var i=0; i < tableL.getRows().length; i++){ + + if(callToNum == data[i].getData().phone){ + + dpCnt++; + + } + + } + + if(dpCnt > 0){ + + alert("받는사람 리스트에 동일한 연락처가 있습니다."); + $('#callTo').val(""); + return false; + + }else{ + + tabledata = [{phone: callToNum},]; + + //빈 row 데이터 삭제하기 + var befData = tableL.getRows(); + var totLen = tableL.getRows().length; + + for(var i=0; i < totLen; i++){ + + tableData.push({phone: data[i].getData().phone.trim(), name: data[i].getData().name}); + + } + + //연락처 추가해 주기 + addPhoneInfo(tabledata); + + //tableL.addData(tabledata); + + //전체 데이터 갯수 구하기 + //totRows = tableL.getRows().length; + //updateTotCnt(totRows); + + //결제 금액 구하기 + totalPriceSum(totRows); + + $('#callTo').val(""); + + } - if(dpCnt > 0){ - alert("받는사람 리스트에 동일한 연락처가 있습니다."); - $('#callTo').val(""); - return false; - }else{ - // fn_displayJsonToHtmlTable 재사용을 위한 - // 파라미터 형변환 - var data =[]; - data.push({ phone: callToNum, name: ''}); - fn_displayJsonToHtmlTable(data); - - /* - * 토탈 카운트 화면에 노출 - */ - updateTotCnt(); - - // 번호 추가란 초기화 - $('#callTo').val(''); - } }); @@ -449,68 +468,104 @@ function updateTotCnt(){ } //주소록 불러오기에서 수신자 리스트 화면에 추가해주기 -function addPhoneInfo(taData){ +function addPhoneInfo(data){ - if(taData == null){ + if(data == null){ + alert("연락처 정보가 없습니다."); return; + + }else{ + + var idx = 0; + var newData = data;//중복 연락처는 하나만 남기고 모두 제거 + + var recTableData = tableL.getRows(); // 받는사람 리스트의 전체 목록을 저장 + var tableData = []; + + //기존 받는사람 리스트를 배열에 미리 담아둔다. + if(recTableData.length > 0){ + + for(var j=0; j < recTableData.length; j++){ + + tableData.push({phone: removeDash(recTableData[j].getData().phone) , name: recTableData[j].getData().name, rep1: recTableData[j].getData().rep1, rep2: recTableData[j].getData().rep2, rep3: recTableData[j].getData().rep3, rep4: recTableData[j].getData().rep4}); + + } + + } + + //받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다. + for(var i=0; i < newData.length; i++){ + + tableData.push({phone: removeDash(newData[i].phone) , name: newData[i].name, rep1: newData[i].rep1, rep2: newData[i].rep2, rep3: newData[i].rep3, rep4: newData[i].rep4}); + + } + + var temp = tableData.length; + + //기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다. + tableL.clearData(); //기존 받는사람 목록을 삭제. + tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기 + _fileForm2 = []; //form file data 초기화 + _fileIdx = 0; //form file idx 초기화 + + totRows = tableL.getRows().length; + updateTotCnt(totRows); //전체 데이터 갯수 구하기 + + var smsTxtArea = $('#smsTxtArea').val(); + //일괄변환 문구 결제금액 처리 + if(smsTxtArea.indexOf("[*이름*]") > -1 + || smsTxtArea.indexOf("[*1*]") > -1 + || smsTxtArea.indexOf("[*2*]") > -1 + || smsTxtArea.indexOf("[*3*]") > -1 + || smsTxtArea.indexOf("[*4*]") > -1){ + + fnReplCell(); + + }else{ + + //결제 금액 구하기 + totalPriceSum(totRows); + + } + } - /* - * 주소록 데이터 화면에 추가 - */ - this.fn_displayJsonToHtmlTable(taData); +} - /* - * 토탈 카운트 화면에 노출 - */ - this.updateTotCnt(); + +function addrToList(){ + + var selectedData = tableAddr.getSelectedRows(); + var tableData = []; + + if(selectedData == "" || selectedData == null){ + alert("주소록을 선택해 주세요."); + return false; + + }else{ // 선택한 Row 데이터 저장해주기 + + for(var i=0; i < selectedData.length; i++){ + + //좌측 받는사람 리스트를 담아둔 배열에 데이터를 추가해 준다. + tableData.push({phone: removeDash(selectedData[i].getData().addrPhone), + name: selectedData[i].getData().addrName, + rep1: selectedData[i].getData().addrRep1, + rep2: selectedData[i].getData().addrRep2, + rep3: selectedData[i].getData().addrRep3, + rep4: selectedData[i].getData().addrRep4} + ); + + } + + //선택한 데이터 받는사람 리스트에 추가해 주기 + addPhoneInfo(tableData); + $(".closeAddr").trigger("click"); + + //주소록 레이어 팝업의 Tabulator 데이터 지워주기 + tableAddr.clearData(); + + } + } - -/* -* 주소록 데이터 화면에 추가 -*/ -function fn_displayJsonToHtmlTable(taData){ - - // fn_viewDataInit01(); - // 치환문자가 있으면 데이터 초기화 - - - var $htmlBody = $('#wrap01_body'); - - var addHtml = '
    ' - +'\t
    ' - +'\t\t' - +'\t\t' - +'\t
    ' - +'\t
    ' - +'\t\t

    $PHONE$

    ' - +'\t
    ' - /*23.04.06 이름제거 요청으로인한 화면 이름 제거*/ - /*+'\t
    ' - +'\t\t

    $NAME$

    ' - +'\t
    '*/ - +'
    '; - - - - - var totalDuplCnt = $('#rowDupCnt').text(); - - var itemPhone; - var itemName; - $.each(taData, function(index, item){ - itemPhone = item.phone; - itemName = item.name; - // == null ? '': item.name; - if(!phoneDupl(itemPhone)) - /*23.04.06 이름제거 요청으로인한 화면 이름 제거*/ -// $htmlBody.append(addHtml.replace('$PHONE$', itemPhone).replace('$NAME$', itemName ??= '')); - $htmlBody.append(addHtml.replace('$PHONE$', itemPhone)); - else - totalDuplCnt++; - }); - $('#rowDupCnt').text(totalDuplCnt); -} -