선거문자 20건 기능 개선 2차 - 선거문자 발송 기능 추가 - 문자 발송 후 받는사람 리스트 상태값 변경 및 받는사람 목록 갱신 - 발송 결과 팝업 내용 수정 등
- 선거문자 발송 기능 추가 - 문자 발송 후 받는사람 리스트 상태값 변경 및 받는사람 목록 갱신 - 발송 결과 팝업 내용 수정 등
@81fc60300186f8485c539c86805488ecf8adf686
--- src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java
+++ src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java
... | ... | @@ -49,4 +49,7 @@ |
| 49 | 49 |
//선거문자 20건 마지막 번호 불러오기 |
| 50 | 50 |
public int selectMsgCallToSeqNum(String mberId) throws Exception; |
| 51 | 51 |
|
| 52 |
+ //선거문자 20건 전송 후 CallTo 상태값 전송 완료로 변경 처리 |
|
| 53 |
+ public int updateMsgTWCallToListSendFlag(MjonCandidateTWVO mjonCandidateTWVO) throws Exception; |
|
| 54 |
+ |
|
| 52 | 55 |
} |
--- src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java
+++ src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java
... | ... | @@ -173,4 +173,23 @@ |
| 173 | 173 |
return resultNum; |
| 174 | 174 |
|
| 175 | 175 |
} |
| 176 |
+ |
|
| 177 |
+ |
|
| 178 |
+ //선거문자 20건 전송 후 CallTo 상태값 전송 완료로 변경 처리 |
|
| 179 |
+ public int updateMsgTWCallToListSendFlag(MjonCandidateTWVO mjonCandidateTWVO) throws Exception{
|
|
| 180 |
+ |
|
| 181 |
+ int resultCnt = 0; |
|
| 182 |
+ |
|
| 183 |
+ try {
|
|
| 184 |
+ |
|
| 185 |
+ resultCnt = update("mjonCandidateDAO.updateMsgTWCallToListSendFlag", mjonCandidateTWVO);
|
|
| 186 |
+ |
|
| 187 |
+ } catch (Exception e) {
|
|
| 188 |
+ System.out.println("updateMsgTWCallToListSendFlag Service Imple Error!!! " + e);
|
|
| 189 |
+ } |
|
| 190 |
+ |
|
| 191 |
+ return resultCnt; |
|
| 192 |
+ |
|
| 193 |
+ } |
|
| 194 |
+ |
|
| 176 | 195 |
} |
--- src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java
+++ src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java
... | ... | @@ -210,4 +210,23 @@ |
| 210 | 210 |
return resultNum; |
| 211 | 211 |
|
| 212 | 212 |
} |
| 213 |
+ |
|
| 214 |
+ |
|
| 215 |
+ //선거문자 20건 전송 후 CallTo 상태값 전송 완료로 변경 처리 |
|
| 216 |
+ public int updateMsgTWCallToListSendFlag(MjonCandidateTWVO mjonCandidateTWVO) throws Exception{
|
|
| 217 |
+ |
|
| 218 |
+ int resultCnt = 0; |
|
| 219 |
+ |
|
| 220 |
+ try {
|
|
| 221 |
+ |
|
| 222 |
+ resultCnt = mjonCandidateDAO.updateMsgTWCallToListSendFlag(mjonCandidateTWVO); |
|
| 223 |
+ |
|
| 224 |
+ } catch (Exception e) {
|
|
| 225 |
+ System.out.println("updateMsgTWCallToListSendFlag Service Imple Error!!! " + e);
|
|
| 226 |
+ } |
|
| 227 |
+ |
|
| 228 |
+ return resultCnt; |
|
| 229 |
+ |
|
| 230 |
+ } |
|
| 231 |
+ |
|
| 213 | 232 |
} |
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
... | ... | @@ -6,6 +6,7 @@ |
| 6 | 6 |
import java.math.RoundingMode; |
| 7 | 7 |
import java.text.SimpleDateFormat; |
| 8 | 8 |
import java.util.ArrayList; |
| 9 |
+import java.util.Arrays; |
|
| 9 | 10 |
import java.util.Calendar; |
| 10 | 11 |
import java.util.Date; |
| 11 | 12 |
import java.util.HashMap; |
... | ... | @@ -25,6 +26,8 @@ |
| 25 | 26 |
import org.apache.poi.xssf.usermodel.XSSFRow; |
| 26 | 27 |
import org.apache.poi.xssf.usermodel.XSSFSheet; |
| 27 | 28 |
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| 29 |
+import org.slf4j.Logger; |
|
| 30 |
+import org.slf4j.LoggerFactory; |
|
| 28 | 31 |
import org.springframework.beans.factory.annotation.Value; |
| 29 | 32 |
import org.springframework.stereotype.Controller; |
| 30 | 33 |
import org.springframework.ui.ModelMap; |
... | ... | @@ -59,12 +62,15 @@ |
| 59 | 62 |
import itn.let.mjo.addr.service.AddrVO; |
| 60 | 63 |
import itn.let.mjo.event.service.MjonEventService; |
| 61 | 64 |
import itn.let.mjo.event.service.MjonEventVO; |
| 65 |
+import itn.let.mjo.mjocommon.MjonCommon; |
|
| 62 | 66 |
import itn.let.mjo.msg.service.MjonMsgService; |
| 67 |
+import itn.let.mjo.msg.service.MjonMsgVO; |
|
| 63 | 68 |
import itn.let.mjo.msgcampain.service.MjonCandidateService; |
| 64 | 69 |
import itn.let.mjo.msgcampain.service.MjonCandidateTWVO; |
| 65 | 70 |
import itn.let.mjo.msgcampain.service.MjonCandidateVO; |
| 66 | 71 |
import itn.let.mjo.msgdata.service.MjonMsgDataService; |
| 67 | 72 |
import itn.let.mjo.msgdata.service.MjonMsgDataVO; |
| 73 |
+import itn.let.mjo.msgdata.service.MjonMsgReturnVO; |
|
| 68 | 74 |
import itn.let.mjo.msgdata.service.PhoneVO; |
| 69 | 75 |
import itn.let.mjo.pay.service.MjonPayService; |
| 70 | 76 |
import itn.let.mjo.spammsg.service.MjonSpamMsgService; |
... | ... | @@ -78,6 +84,7 @@ |
| 78 | 84 |
import itn.let.uss.umt.service.EgovMberManageService; |
| 79 | 85 |
import itn.let.uss.umt.service.EgovUserManageService; |
| 80 | 86 |
import itn.let.uss.umt.service.MberManageVO; |
| 87 |
+import itn.let.uss.umt.service.UserManageVO; |
|
| 81 | 88 |
import itn.let.utl.fcc.service.EgovCryptoUtil; |
| 82 | 89 |
|
| 83 | 90 |
@Controller |
... | ... | @@ -158,6 +165,8 @@ |
| 158 | 165 |
/** 등급제 관리 서비스 */ |
| 159 | 166 |
@Resource(name = "mberGrdService") |
| 160 | 167 |
MberGrdService mberGrdService; |
| 168 |
+ |
|
| 169 |
+ private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainTWDataController.class); |
|
| 161 | 170 |
|
| 162 | 171 |
/** |
| 163 | 172 |
* 선거 문자 20건씩 발송 화면 |
... | ... | @@ -583,7 +592,7 @@ |
| 583 | 592 |
/** pageing */ |
| 584 | 593 |
PaginationInfo paginationInfo = new PaginationInfo(); |
| 585 | 594 |
paginationInfo.setCurrentPageNo(mjonCandidateTWVO.getPageIndex()); |
| 586 |
- paginationInfo.setRecordCountPerPage(mjonCandidateTWVO.getPageUnit()); |
|
| 595 |
+ paginationInfo.setRecordCountPerPage(20); |
|
| 587 | 596 |
paginationInfo.setPageSize(5); |
| 588 | 597 |
|
| 589 | 598 |
mjonCandidateTWVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); |
... | ... | @@ -631,7 +640,6 @@ |
| 631 | 640 |
|
| 632 | 641 |
for(String callTo : mjonCandidateTWVO.getCallToArr()) {
|
| 633 | 642 |
|
| 634 |
- System.out.println("++++++++++++++ callTo ::: "+callTo);
|
|
| 635 | 643 |
callToList.add(callTo); |
| 636 | 644 |
totRowDataCnt++; |
| 637 | 645 |
|
... | ... | @@ -865,6 +873,1218 @@ |
| 865 | 873 |
return modelAndView; |
| 866 | 874 |
|
| 867 | 875 |
} |
| 876 |
+ |
|
| 877 |
+ |
|
| 878 |
+ |
|
| 879 |
+ /* |
|
| 880 |
+ * 선거문자 20건 발송 처리 |
|
| 881 |
+ * |
|
| 882 |
+ * */ |
|
| 883 |
+ |
|
| 884 |
+ /** |
|
| 885 |
+ * 선거문자 20건 문자 발송 화면 |
|
| 886 |
+ * @param searchVO |
|
| 887 |
+ * @param model |
|
| 888 |
+ * @return "/web/mjon/msgcampain/sendMsgTWDataAjax.do" |
|
| 889 |
+ * @throws Exception |
|
| 890 |
+ */ |
|
| 891 |
+ @RequestMapping(value= {"/web/mjon/msgcampain/sendMsgTWDataAjax.do"})
|
|
| 892 |
+ public ModelAndView sendMsgTWData(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
|
|
| 893 |
+ RedirectAttributes redirectAttributes, |
|
| 894 |
+ HttpServletRequest request, |
|
| 895 |
+ ModelMap model) throws Exception{
|
|
| 896 |
+ |
|
| 897 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 898 |
+ modelAndView.setViewName("jsonView");
|
|
| 899 |
+ |
|
| 900 |
+ //String resultSts = "0"; |
|
| 901 |
+ //String resultBlockSts = "0"; |
|
| 902 |
+ |
|
| 903 |
+ int resultSts = 0; //발송결과 건수 |
|
| 904 |
+ int resultBlockSts = 0; //수신거부 등록번호로 발송을 안한 건수 |
|
| 905 |
+ String userId = ""; |
|
| 906 |
+ |
|
| 907 |
+ try {
|
|
| 908 |
+ |
|
| 909 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 910 |
+ userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 911 |
+ |
|
| 912 |
+ if(userId.equals("")) {
|
|
| 913 |
+ |
|
| 914 |
+ modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
|
|
| 915 |
+ modelAndView.addObject("result", "loginFail");
|
|
| 916 |
+ modelAndView.addObject("resultSts", resultSts);
|
|
| 917 |
+ return modelAndView; |
|
| 918 |
+ |
|
| 919 |
+ }else {
|
|
| 920 |
+ |
|
| 921 |
+ mjonMsgVO.setUserId(userId); |
|
| 922 |
+ |
|
| 923 |
+ /** |
|
| 924 |
+ * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 |
|
| 925 |
+ * 현재 로그인 세션도 만료 처리함 |
|
| 926 |
+ * */ |
|
| 927 |
+ boolean mberSttus = userManageService.selectUserStatusInfo(userId); |
|
| 928 |
+ |
|
| 929 |
+ if(!mberSttus) {
|
|
| 930 |
+ |
|
| 931 |
+ modelAndView.addObject("message", "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다.");
|
|
| 932 |
+ modelAndView.addObject("result", "statusFail");
|
|
| 933 |
+ modelAndView.addObject("resultSts", resultSts);
|
|
| 934 |
+ |
|
| 935 |
+ request.getSession().invalidate(); |
|
| 936 |
+ |
|
| 937 |
+ return modelAndView; |
|
| 938 |
+ |
|
| 939 |
+ } |
|
| 940 |
+ |
|
| 941 |
+ } |
|
| 942 |
+ |
|
| 943 |
+ //회원정보에서 스미싱 회원 여부 정보 조회 |
|
| 944 |
+ UserManageVO userManageVO = new UserManageVO(); |
|
| 945 |
+ |
|
| 946 |
+ userManageVO.setMberId(userId); |
|
| 947 |
+ UserManageVO resultUserVO = userManageService.selectSmishingYnUserInfo(userManageVO); |
|
| 948 |
+ String smishingYn = resultUserVO.getSmishingYn(); |
|
| 949 |
+ mjonMsgVO.setSmishingYn(smishingYn); |
|
| 950 |
+ |
|
| 951 |
+ String charset = "euc-kr"; //문자 바이트 계산에 필요한 캐릭터 셋 : 한글 2Byte로 계산 |
|
| 952 |
+ String smsCont = mjonMsgVO.getSmsTxt().replace("\r\n", "\n");
|
|
| 953 |
+ |
|
| 954 |
+ int FrBytes = smsCont.getBytes(charset).length; |
|
| 955 |
+ |
|
| 956 |
+ if(FrBytes > 2000) {
|
|
| 957 |
+ |
|
| 958 |
+ modelAndView.addObject("message", "문자 내용은 2000Byte를 넘을 수 없습니다.");
|
|
| 959 |
+ modelAndView.addObject("result", "smsLengFail");
|
|
| 960 |
+ return modelAndView; |
|
| 961 |
+ |
|
| 962 |
+ } |
|
| 963 |
+ |
|
| 964 |
+ System.out.println("mjonMsgVO.getMsgType1() ::: "+mjonMsgVO.getMsgType());
|
|
| 965 |
+ |
|
| 966 |
+ String msgType = mjonMsgVO.getMsgType(); |
|
| 967 |
+ |
|
| 968 |
+ //내문자저장함에 저장후 문자를 발송하는경우 문자 타입이 숫자가 아닌 문자로 넘어와서 변경 처리함- 20220520 우영두 |
|
| 969 |
+ if(msgType.equals("P") || msgType.equals("L")) {
|
|
| 970 |
+ msgType = "6"; |
|
| 971 |
+ }else if(msgType.equals("S")) {
|
|
| 972 |
+ |
|
| 973 |
+ msgType = "4"; |
|
| 974 |
+ } |
|
| 975 |
+ |
|
| 976 |
+ //메세지 타입이 단문이면 진짜 단문인지 한번더 확인해 준다. |
|
| 977 |
+ if(msgType.equals("4")) {
|
|
| 978 |
+ |
|
| 979 |
+ //메세지 길이가 90Byte를초과 하거나, 그림 이미지가 있는경우 메세지 타입을 6으로 변경해준다. |
|
| 980 |
+ if(FrBytes > 90 || mjonMsgVO.getImgFilePath().length > 0) {
|
|
| 981 |
+ |
|
| 982 |
+ msgType = "6"; |
|
| 983 |
+ |
|
| 984 |
+ } |
|
| 985 |
+ |
|
| 986 |
+ } |
|
| 987 |
+ |
|
| 988 |
+ mjonMsgVO.setMsgType(msgType); |
|
| 989 |
+ |
|
| 990 |
+ //장문 메세지일 경우 |
|
| 991 |
+ int fileCount = 0; |
|
| 992 |
+ if(msgType.equals("6")) {
|
|
| 993 |
+ |
|
| 994 |
+ //그림 이미지가 첨부된 경우 |
|
| 995 |
+ if(mjonMsgVO.getImgFilePath() != null || mjonMsgVO.getImgFilePath().length > 0) {
|
|
| 996 |
+ |
|
| 997 |
+ String[] path = mjonMsgVO.getImgFilePath(); |
|
| 998 |
+ String[] fileId = mjonMsgVO.getImgFileId(); |
|
| 999 |
+ String[] templateYn = mjonMsgVO.getTemplateYn(); |
|
| 1000 |
+ |
|
| 1001 |
+ for(int i=0; i<path.length; i++) {
|
|
| 1002 |
+ |
|
| 1003 |
+ if("Y".equals(templateYn[i])) {
|
|
| 1004 |
+ //템플릿 사용누계 증가 |
|
| 1005 |
+ letterService.updateTemplateUseCount(fileId[i]); |
|
| 1006 |
+ } |
|
| 1007 |
+ |
|
| 1008 |
+ String atchFileId = fileId[i]; |
|
| 1009 |
+ String imgFilePath = mjonMsgService.selectPhotoImgFileRealPath(atchFileId); |
|
| 1010 |
+ |
|
| 1011 |
+ // 아이하트, 현대퓨쳐넷 두 중계사는 이미지 경로는 풀패스 경로로 넘겨주면 됨 |
|
| 1012 |
+ if(i == 0) {
|
|
| 1013 |
+ |
|
| 1014 |
+ mjonMsgVO.setFileName1(imgFilePath); |
|
| 1015 |
+ |
|
| 1016 |
+ }else if(i == 1) {
|
|
| 1017 |
+ |
|
| 1018 |
+ mjonMsgVO.setFileName2(imgFilePath); |
|
| 1019 |
+ |
|
| 1020 |
+ }else {
|
|
| 1021 |
+ |
|
| 1022 |
+ mjonMsgVO.setFileName3(imgFilePath); |
|
| 1023 |
+ |
|
| 1024 |
+ } |
|
| 1025 |
+ fileCount ++; |
|
| 1026 |
+ } |
|
| 1027 |
+ |
|
| 1028 |
+ //첨부파일 갯수 셋팅해주기 |
|
| 1029 |
+ mjonMsgVO.setFileCnt(Integer.toString(fileCount)); |
|
| 1030 |
+ |
|
| 1031 |
+ } |
|
| 1032 |
+ |
|
| 1033 |
+ } |
|
| 1034 |
+ |
|
| 1035 |
+ //파일 갯수는 있는데 파일 경로가 없는 경우 문자발송이 안되도록 튕겨내도록 함 - 20220520 우영두 |
|
| 1036 |
+ if(fileCount > 0) {
|
|
| 1037 |
+ |
|
| 1038 |
+ if(mjonMsgVO.getFileName1() == null && mjonMsgVO.getFileName2() == null && mjonMsgVO.getFileName3() == null) {
|
|
| 1039 |
+ |
|
| 1040 |
+ modelAndView.addObject("message", "문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다.");
|
|
| 1041 |
+ modelAndView.addObject("result", "imgSourceFail");
|
|
| 1042 |
+ modelAndView.addObject("resultSts", "0");
|
|
| 1043 |
+ modelAndView.addObject("resultBlockSts", "0");
|
|
| 1044 |
+ |
|
| 1045 |
+ return modelAndView; |
|
| 1046 |
+ |
|
| 1047 |
+ } |
|
| 1048 |
+ |
|
| 1049 |
+ } |
|
| 1050 |
+ |
|
| 1051 |
+ /* |
|
| 1052 |
+ * 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기 |
|
| 1053 |
+ * 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회 |
|
| 1054 |
+ * 조회 단가를 이용하여 총 결제 캐시 금액 계산 |
|
| 1055 |
+ * 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌. |
|
| 1056 |
+ */ |
|
| 1057 |
+ MjonEventVO mjonEventVO = new MjonEventVO(); |
|
| 1058 |
+ mjonEventVO.setMberId(userId); |
|
| 1059 |
+ MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); |
|
| 1060 |
+ |
|
| 1061 |
+ //1.시스템 기본 단가 정보 불러오기 |
|
| 1062 |
+ JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); |
|
| 1063 |
+ |
|
| 1064 |
+ // 등급제 단가 추출 => 시스템 단가에 적용 |
|
| 1065 |
+ sysJoinSetVO = mberGrdService.selectMberGrdDefaultInfo(sysJoinSetVO, userId); |
|
| 1066 |
+ |
|
| 1067 |
+ //2.사용자 개인 단가 정보 불러오기 |
|
| 1068 |
+ MberManageVO mberManageVO = new MberManageVO(); |
|
| 1069 |
+ mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
|
| 1070 |
+ |
|
| 1071 |
+ //3.사용자 개인단가 정보가 0이 아니면 개인단가 사용, 없으면 시스템 기본 단가 사용 |
|
| 1072 |
+ Float shortPrice = mberManageVO.getShortPrice(); |
|
| 1073 |
+ Float longPrice = mberManageVO.getLongPrice(); |
|
| 1074 |
+ Float picturePrice = mberManageVO.getPicturePrice(); |
|
| 1075 |
+ Float picture2Price = mberManageVO.getPicture2Price(); |
|
| 1076 |
+ Float picture3Price = mberManageVO.getPicture3Price(); |
|
| 1077 |
+ |
|
| 1078 |
+ //기존 소수점 2째자리에서 반올림하였으나, 정책 변경으로 소수점 버림 처리함 20220623 |
|
| 1079 |
+ boolean compareEndDate = false; |
|
| 1080 |
+ float eventRemainCash = 0; |
|
| 1081 |
+ float paramEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); |
|
| 1082 |
+ |
|
| 1083 |
+ if(eventMberInfo != null) {
|
|
| 1084 |
+ |
|
| 1085 |
+ String eventEndDate = eventMberInfo.getEventEndDate(); |
|
| 1086 |
+ |
|
| 1087 |
+ if(eventEndDate != null) {
|
|
| 1088 |
+ compareEndDate = MJUtil.getCompareDate(eventEndDate); |
|
| 1089 |
+ eventRemainCash = (float) eventMberInfo.getEventRemainCash(); |
|
| 1090 |
+ |
|
| 1091 |
+ //이벤트 금액 및 기간 체크 |
|
| 1092 |
+ if(!compareEndDate || eventRemainCash < paramEachPrice) {
|
|
| 1093 |
+ |
|
| 1094 |
+ if(!eventMberInfo.getEventStatus().equals("E")) {
|
|
| 1095 |
+ |
|
| 1096 |
+ //이벤트 상태값을 종료로 변경한다. |
|
| 1097 |
+ mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId()); |
|
| 1098 |
+ mjonEventVO.setEventStatus("E");
|
|
| 1099 |
+ mjonEventVO.setEventMemo("발송 최소 금액("+ paramEachPrice +") 부족 혹은 이벤트 종료일 초과되어 이벤트 종료 시킴");
|
|
| 1100 |
+ mjonEventVO.setEventRemainCash(eventRemainCash); |
|
| 1101 |
+ mjonEventService.updateEventEndStatus(mjonEventVO); |
|
| 1102 |
+ eventMberInfo.setEventStatus("E");
|
|
| 1103 |
+ |
|
| 1104 |
+ } |
|
| 1105 |
+ |
|
| 1106 |
+ } |
|
| 1107 |
+ } |
|
| 1108 |
+ } |
|
| 1109 |
+ |
|
| 1110 |
+ //이벤트 진행 회원의 발송 단가 처리해주기 |
|
| 1111 |
+ if(eventMberInfo != null && eventMberInfo.getEventStatus().equals("Y") && compareEndDate) {
|
|
| 1112 |
+ |
|
| 1113 |
+ shortPrice = Float.parseFloat(eventMberInfo.getEventShortPrice()); |
|
| 1114 |
+ longPrice = Float.parseFloat(eventMberInfo.getEventLongPrice()); |
|
| 1115 |
+ picturePrice = Float.parseFloat(eventMberInfo.getEventPicturePrice()); |
|
| 1116 |
+ picture2Price = Float.parseFloat(eventMberInfo.getEventPicture2Price()); |
|
| 1117 |
+ picture3Price = Float.parseFloat(eventMberInfo.getEventPicture3Price()); |
|
| 1118 |
+ |
|
| 1119 |
+ }else if(shortPrice < 1 || longPrice < 1 || picturePrice < 1) {//협의 단가가 없는 경우 시스템 단가 적용해 주기
|
|
| 1120 |
+ |
|
| 1121 |
+ shortPrice = (float) sysJoinSetVO.getShortPrice(); |
|
| 1122 |
+ longPrice = (float) sysJoinSetVO.getLongPrice(); |
|
| 1123 |
+ picturePrice = (float) sysJoinSetVO.getPicturePrice(); |
|
| 1124 |
+ picture2Price = (float) sysJoinSetVO.getPicture2Price(); |
|
| 1125 |
+ picture3Price = (float) sysJoinSetVO.getPicture3Price(); |
|
| 1126 |
+ |
|
| 1127 |
+ } |
|
| 1128 |
+ |
|
| 1129 |
+ // 토탈금액 "," 리플레이스 처리 |
|
| 1130 |
+ mjonMsgVO.setTotPrice(mjonMsgVO.getTotPrice().replaceAll(",", ""));
|
|
| 1131 |
+ |
|
| 1132 |
+ float tmpOrgEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); |
|
| 1133 |
+ float tmpOrgTotPrice = Float.parseFloat(mjonMsgVO.getTotPrice()); |
|
| 1134 |
+ |
|
| 1135 |
+ System.out.println("mjonMsgVO.getMsgType2() ::: "+mjonMsgVO.getMsgType());
|
|
| 1136 |
+ |
|
| 1137 |
+ // MSG_TYPE 다시계산 |
|
| 1138 |
+ if(mjonMsgVO.getFileName1() != null) {
|
|
| 1139 |
+ mjonMsgVO.setMsgType("6");
|
|
| 1140 |
+ }else {
|
|
| 1141 |
+ if(FrBytes < 2000) {
|
|
| 1142 |
+ if(FrBytes > 90) {// 90Byte 초과시 장문
|
|
| 1143 |
+ mjonMsgVO.setMsgType("6");
|
|
| 1144 |
+ }else {// 그외 단문
|
|
| 1145 |
+ mjonMsgVO.setMsgType("4");
|
|
| 1146 |
+ } |
|
| 1147 |
+ } |
|
| 1148 |
+ } |
|
| 1149 |
+ |
|
| 1150 |
+ System.out.println("mjonMsgVO.getMsgType3() ::: "+mjonMsgVO.getMsgType());
|
|
| 1151 |
+ |
|
| 1152 |
+ //각 문자 종류별 단가 셋팅해주기 |
|
| 1153 |
+ float tmpEachPrice = 0; |
|
| 1154 |
+ if(mjonMsgVO.getMsgType().equals("4")) {
|
|
| 1155 |
+ mjonMsgVO.setEachPrice(shortPrice.toString()); |
|
| 1156 |
+ tmpEachPrice = shortPrice; |
|
| 1157 |
+ }else if(mjonMsgVO.getMsgType().equals("6")) {
|
|
| 1158 |
+ |
|
| 1159 |
+ if(mjonMsgVO.getFileName3() != null) {
|
|
| 1160 |
+ mjonMsgVO.setEachPrice(picture3Price.toString()); |
|
| 1161 |
+ tmpEachPrice = picture3Price; |
|
| 1162 |
+ }else if(mjonMsgVO.getFileName2() != null) {
|
|
| 1163 |
+ mjonMsgVO.setEachPrice(picture2Price.toString()); |
|
| 1164 |
+ tmpEachPrice = picture2Price; |
|
| 1165 |
+ }else if(mjonMsgVO.getFileName1() != null) {
|
|
| 1166 |
+ mjonMsgVO.setEachPrice(picturePrice.toString()); |
|
| 1167 |
+ tmpEachPrice = picturePrice; |
|
| 1168 |
+ }else {
|
|
| 1169 |
+ mjonMsgVO.setEachPrice(longPrice.toString()); |
|
| 1170 |
+ tmpEachPrice = longPrice; |
|
| 1171 |
+ } |
|
| 1172 |
+ |
|
| 1173 |
+ } |
|
| 1174 |
+ |
|
| 1175 |
+ //수신자 총 수 * 단가 를 통해 총 결제 금액 계산 |
|
| 1176 |
+ int tmpTotCallCnt = mjonMsgVO.getCallToList().length; |
|
| 1177 |
+ float tmpTotPrice = tmpTotCallCnt * tmpEachPrice; |
|
| 1178 |
+ |
|
| 1179 |
+ |
|
| 1180 |
+ //화면에서 넘어온 파라미터 개별 단가와 컨트롤러에서 계산한 단가를 비교하여 맞지 않으면 컨트롤러 계산 단가 입력 |
|
| 1181 |
+ if(tmpOrgEachPrice != tmpEachPrice) {
|
|
| 1182 |
+ mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); |
|
| 1183 |
+ |
|
| 1184 |
+ System.out.println("화면 : tmpOrgEachPrice ::: "+tmpOrgEachPrice);
|
|
| 1185 |
+ System.out.println("컨트롤러 : tmpEachPrice ::: "+tmpEachPrice);
|
|
| 1186 |
+ }else {
|
|
| 1187 |
+ System.out.println("tmpOrgEachPrice ::: "+tmpOrgEachPrice);
|
|
| 1188 |
+ } |
|
| 1189 |
+ |
|
| 1190 |
+ if(tmpOrgTotPrice != tmpTotPrice ) {
|
|
| 1191 |
+ mjonMsgVO.setTotPrice(Float.toString(tmpTotPrice)); |
|
| 1192 |
+ |
|
| 1193 |
+ System.out.println("화면 : tmpOrgTotPrice ::: "+tmpOrgTotPrice);
|
|
| 1194 |
+ System.out.println("컨트롤러 : tmpTotPrice ::: "+tmpTotPrice);
|
|
| 1195 |
+ }else {
|
|
| 1196 |
+ System.out.println("tmpOrgTotPrice ::: "+tmpOrgTotPrice);
|
|
| 1197 |
+ } |
|
| 1198 |
+ |
|
| 1199 |
+ /* |
|
| 1200 |
+ * 개별단가 및 총결제 캐시 금액 체크 로직 종료 |
|
| 1201 |
+ * |
|
| 1202 |
+ * */ |
|
| 1203 |
+ |
|
| 1204 |
+ //치환문자 체크 처리 |
|
| 1205 |
+ String txtReplYn = mjonMsgVO.getTxtReplYn(); |
|
| 1206 |
+ if(txtReplYn.equals("Y")) {
|
|
| 1207 |
+ |
|
| 1208 |
+ int totListCnt = mjonMsgVO.getCallToList().length; |
|
| 1209 |
+ String[] nameList = mjonMsgVO.getNameList(); //치환 이름 리스트 |
|
| 1210 |
+ String[] phone = mjonMsgVO.getCallToList(); //수신자 휴대폰 번호 |
|
| 1211 |
+ String[] rep1 = mjonMsgVO.getRep1List(); //치환 문자1 리스트 |
|
| 1212 |
+ String[] rep2 = mjonMsgVO.getRep2List(); //치환 문자2 리스트 |
|
| 1213 |
+ String[] rep3 = mjonMsgVO.getRep3List(); //치환 문자3 리스트 |
|
| 1214 |
+ String[] rep4 = mjonMsgVO.getRep4List(); //치환 문자4 리스트 |
|
| 1215 |
+ |
|
| 1216 |
+ //이름, 휴대폰, 치환문자 데이터가 없으면 취소 처리 |
|
| 1217 |
+ if((nameList.length == 0 || nameList == null) |
|
| 1218 |
+ && (rep1.length == 0 || rep1 == null) |
|
| 1219 |
+ && (rep2.length == 0 || rep2 == null) |
|
| 1220 |
+ && (rep3.length == 0 || rep3 == null) |
|
| 1221 |
+ && (rep4.length == 0 || rep4 == null)) {
|
|
| 1222 |
+ |
|
| 1223 |
+ modelAndView.addObject("message", "특정문구 일괄변환 치환문자 데이터가 없습니다.");
|
|
| 1224 |
+ modelAndView.addObject("result", "fail");
|
|
| 1225 |
+ return modelAndView; |
|
| 1226 |
+ |
|
| 1227 |
+ } |
|
| 1228 |
+ |
|
| 1229 |
+ // 치환문자 전체 필수체크 Start |
|
| 1230 |
+ boolean isRepCountOk = true; |
|
| 1231 |
+ if (mjonMsgVO.getSmsTxt().indexOf("[*이름*]") > -1) {
|
|
| 1232 |
+ if(nameList.length != phone.length) {
|
|
| 1233 |
+ isRepCountOk = false; |
|
| 1234 |
+ } |
|
| 1235 |
+ } |
|
| 1236 |
+ if (mjonMsgVO.getSmsTxt().indexOf("[*1*]") > -1) {
|
|
| 1237 |
+ if(rep1.length != phone.length) {
|
|
| 1238 |
+ isRepCountOk = false; |
|
| 1239 |
+ } |
|
| 1240 |
+ } |
|
| 1241 |
+ if (mjonMsgVO.getSmsTxt().indexOf("[*2*]") > -1) {
|
|
| 1242 |
+ if(rep2.length != phone.length) {
|
|
| 1243 |
+ isRepCountOk = false; |
|
| 1244 |
+ } |
|
| 1245 |
+ } |
|
| 1246 |
+ if (mjonMsgVO.getSmsTxt().indexOf("[*3*]") > -1) {
|
|
| 1247 |
+ if(rep3.length != phone.length) {
|
|
| 1248 |
+ isRepCountOk = false; |
|
| 1249 |
+ } |
|
| 1250 |
+ } |
|
| 1251 |
+ if (mjonMsgVO.getSmsTxt().indexOf("[*4*]") > -1) {
|
|
| 1252 |
+ if(rep4.length != phone.length) {
|
|
| 1253 |
+ isRepCountOk = false; |
|
| 1254 |
+ } |
|
| 1255 |
+ } |
|
| 1256 |
+ |
|
| 1257 |
+ if (isRepCountOk == false) {
|
|
| 1258 |
+ modelAndView.addObject("message", "특정문구 일괄변환 치환문자 데이터가 없습니다");
|
|
| 1259 |
+ modelAndView.addObject("result", "fail");
|
|
| 1260 |
+ return modelAndView; |
|
| 1261 |
+ } |
|
| 1262 |
+ // End |
|
| 1263 |
+ |
|
| 1264 |
+ //--------------------------------------------------------------------------------------------------------------- |
|
| 1265 |
+ |
|
| 1266 |
+ |
|
| 1267 |
+ int msgLeng = 90; //단문 문자열 길이 |
|
| 1268 |
+ |
|
| 1269 |
+ if(msgType.equals("6")) {
|
|
| 1270 |
+ |
|
| 1271 |
+ msgLeng = 2000; //장문 문자열 길이 |
|
| 1272 |
+ |
|
| 1273 |
+ } |
|
| 1274 |
+ |
|
| 1275 |
+ for(int i=0; i < totListCnt; i ++) {
|
|
| 1276 |
+ |
|
| 1277 |
+ String smsTxt = mjonMsgVO.getSmsTxt(); //발송 문자 내용 |
|
| 1278 |
+ |
|
| 1279 |
+ /** |
|
| 1280 |
+ * 본문 내용 - 치환 처리 후 문자 길이 초과 여부만 체크 |
|
| 1281 |
+ * 치환 리스트 중 데이터가 없는 경우 데이터 밀림방지를 위하여 공백 하나를 추가해줌 |
|
| 1282 |
+ * 공백처리를 안하는 경우 데이터가 밀려서 치환되는 오류가 있어서 처리해줌 |
|
| 1283 |
+ * |
|
| 1284 |
+ * */ |
|
| 1285 |
+ |
|
| 1286 |
+ |
|
| 1287 |
+ int repCnt = 0; |
|
| 1288 |
+ smsTxt = smsTxt.replaceAll(String.valueOf((char)13), ""); |
|
| 1289 |
+ if (smsTxt.indexOf("[*이름*]") > -1) {
|
|
| 1290 |
+ if(nameList.length > i && StringUtil.isNotEmpty(nameList[i])) {
|
|
| 1291 |
+ smsTxt = smsTxt.replaceAll("\\[\\*이름\\*\\]", StringUtil.getString(nameList[i].replaceAll("§", ",")));
|
|
| 1292 |
+ }else {
|
|
| 1293 |
+ smsTxt = smsTxt.replaceAll("\\[\\*이름\\*\\]", "");
|
|
| 1294 |
+ nameList[i] = " "; |
|
| 1295 |
+ } |
|
| 1296 |
+ repCnt++; |
|
| 1297 |
+ } |
|
| 1298 |
+ if (smsTxt.indexOf("[*1*]") > -1) {
|
|
| 1299 |
+ if(rep1.length > i && StringUtil.isNotEmpty(rep1[i])) {
|
|
| 1300 |
+ smsTxt = smsTxt.replaceAll("\\[\\*1\\*\\]", StringUtil.getString(rep1[i].replaceAll("§", ",")));
|
|
| 1301 |
+ }else {
|
|
| 1302 |
+ smsTxt = smsTxt.replaceAll("\\[\\*1\\*\\]", "");
|
|
| 1303 |
+ rep1[i] = " "; |
|
| 1304 |
+ } |
|
| 1305 |
+ repCnt++; |
|
| 1306 |
+ } |
|
| 1307 |
+ if (smsTxt.indexOf("[*2*]") > -1) {
|
|
| 1308 |
+ if(rep2.length > i && StringUtil.isNotEmpty(rep2[i])) {
|
|
| 1309 |
+ smsTxt = smsTxt.replaceAll("\\[\\*2\\*\\]", StringUtil.getString(rep2[i].replaceAll("§", ",")));
|
|
| 1310 |
+ }else {
|
|
| 1311 |
+ smsTxt = smsTxt.replaceAll("\\[\\*2\\*\\]", "");
|
|
| 1312 |
+ rep2[i] = " "; |
|
| 1313 |
+ } |
|
| 1314 |
+ repCnt++; |
|
| 1315 |
+ } |
|
| 1316 |
+ if (smsTxt.indexOf("[*3*]") > -1) {
|
|
| 1317 |
+ if(rep3.length > i && StringUtil.isNotEmpty(rep3[i])) {
|
|
| 1318 |
+ smsTxt = smsTxt.replaceAll("\\[\\*3\\*\\]", StringUtil.getString(rep3[i].replaceAll("§", ",")));
|
|
| 1319 |
+ }else {
|
|
| 1320 |
+ smsTxt = smsTxt.replaceAll("\\[\\*3\\*\\]", "");
|
|
| 1321 |
+ rep3[i] = " "; |
|
| 1322 |
+ } |
|
| 1323 |
+ repCnt++; |
|
| 1324 |
+ } |
|
| 1325 |
+ if (smsTxt.indexOf("[*4*]") > -1) {
|
|
| 1326 |
+ if(rep4.length > i && StringUtil.isNotEmpty(rep4[i])) {
|
|
| 1327 |
+ smsTxt = smsTxt.replaceAll("\\[\\*4\\*\\]", StringUtil.getString(rep4[i].replaceAll("§", ",")));
|
|
| 1328 |
+ }else {
|
|
| 1329 |
+ smsTxt = smsTxt.replaceAll("\\[\\*4\\*\\]", "");
|
|
| 1330 |
+ rep4[i] = " "; |
|
| 1331 |
+ } |
|
| 1332 |
+ repCnt++; |
|
| 1333 |
+ } |
|
| 1334 |
+ |
|
| 1335 |
+ //문자열 바이트 수 구하기(한글 2Byte로 계산) |
|
| 1336 |
+ // 한글 3Byte로 하기 위해서는 StandardCharsets.UTF_8 로 변경하면 된다. |
|
| 1337 |
+ int bytes = smsTxt.getBytes(charset).length; |
|
| 1338 |
+ if(repCnt > 0) {
|
|
| 1339 |
+ if(bytes > msgLeng) { //전송 문자 길이를 초과한 경우 전송 취소 - 단문 작성 후 치환했을 때 장문으로 길이가 초과되는 경우 체크
|
|
| 1340 |
+ modelAndView.addObject("message", "문자 치환 후 전송 문자 길이를 초과하였습니다.");
|
|
| 1341 |
+ modelAndView.addObject("result", "fail");
|
|
| 1342 |
+ modelAndView.addObject("resultSts", "0");
|
|
| 1343 |
+ modelAndView.addObject("resultBlockSts", "0");
|
|
| 1344 |
+ return modelAndView; |
|
| 1345 |
+ } |
|
| 1346 |
+ } |
|
| 1347 |
+ } |
|
| 1348 |
+ |
|
| 1349 |
+ mjonMsgVO.setNameList(nameList); |
|
| 1350 |
+ mjonMsgVO.setRep1List(rep1); |
|
| 1351 |
+ mjonMsgVO.setRep2List(rep2); |
|
| 1352 |
+ mjonMsgVO.setRep3List(rep3); |
|
| 1353 |
+ mjonMsgVO.setRep4List(rep4); |
|
| 1354 |
+ |
|
| 1355 |
+ } |
|
| 1356 |
+ |
|
| 1357 |
+ //현재 고객의 보유 캐시가 문자 발송이 가능한 금액인지 체크 |
|
| 1358 |
+ String userMoney = mjonMsgDataService.selectBeforeCashData(mjonMsgVO); |
|
| 1359 |
+ String userPoint = mjonMsgDataService.selectBeforePointData(mjonMsgVO); |
|
| 1360 |
+ mjonMsgVO.setBefPoint(userPoint); //현재 보유 포인트 정보 저장 |
|
| 1361 |
+ String totPrice = mjonMsgVO.getTotPrice(); |
|
| 1362 |
+ String eachPrice = mjonMsgVO.getEachPrice(); |
|
| 1363 |
+ |
|
| 1364 |
+ if(msgType.equals("6")) {//문자 mms, lms 단가 설정하기
|
|
| 1365 |
+ |
|
| 1366 |
+ if(fileCount > 2) {//그림 이미지가 3개
|
|
| 1367 |
+ |
|
| 1368 |
+ eachPrice = mjonMsgVO.getP3Price(); |
|
| 1369 |
+ |
|
| 1370 |
+ }else if(fileCount > 1) {//그림 이미지가 2개
|
|
| 1371 |
+ |
|
| 1372 |
+ eachPrice = mjonMsgVO.getP2Price(); |
|
| 1373 |
+ |
|
| 1374 |
+ }else if(fileCount == 1) {//그림 이미지가 1개
|
|
| 1375 |
+ eachPrice = mjonMsgVO.getpPrice(); |
|
| 1376 |
+ |
|
| 1377 |
+ }else {//장문 문자인 경우
|
|
| 1378 |
+ |
|
| 1379 |
+ eachPrice = mjonMsgVO.getmPrice(); |
|
| 1380 |
+ } |
|
| 1381 |
+ |
|
| 1382 |
+ } |
|
| 1383 |
+ |
|
| 1384 |
+ BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN); |
|
| 1385 |
+ BigDecimal totMsgPrice = new BigDecimal(totPrice).setScale(2, RoundingMode.HALF_EVEN); |
|
| 1386 |
+ |
|
| 1387 |
+ |
|
| 1388 |
+ //현재 보유 금액이 발송 문자 총 금액보다 클 경우만 문자 발송 |
|
| 1389 |
+ //BigDecimal 비교 연산 |
|
| 1390 |
+ // befCash(현재 보유금액) 값이 totMsgPrice(문자전송 금액) 보다 많으면 문자 전송 |
|
| 1391 |
+ if(befCash.compareTo(totMsgPrice) != -1) { // -1 : befCash < totMsgPrice, 0 : befCash = totMsgPrice, 1 : befCash > totMsgPrice,
|
|
| 1392 |
+ |
|
| 1393 |
+ mjonMsgVO.setBefCash(befCash.toString()); |
|
| 1394 |
+ |
|
| 1395 |
+ //문자 전송 그룹아이디 생성 |
|
| 1396 |
+ mjonMsgVO.setMsgGroupId(idgenMjonMsgGroupId.getNextStringId()); |
|
| 1397 |
+ |
|
| 1398 |
+ String[] tempPhoneList = new String[200]; //임시 수신번호 리스트 저장용 배열 |
|
| 1399 |
+ String[] tempNameList = new String[200]; //임시 이름 리스트 저장용 배열 |
|
| 1400 |
+ String[] tempRep1List = new String[200]; //임시 치환문자1 리스트 저장용 배열 |
|
| 1401 |
+ String[] tempRep2List = new String[200]; //임시 치환문자1 리스트 저장용 배열 |
|
| 1402 |
+ String[] tempRep3List = new String[200]; //임시 치환문자1 리스트 저장용 배열 |
|
| 1403 |
+ String[] tempRep4List = new String[200]; //임시 치환문자1 리스트 저장용 배열 |
|
| 1404 |
+ |
|
| 1405 |
+ String[] phoneList = mjonMsgVO.getCallToList(); |
|
| 1406 |
+ String[] nameList = mjonMsgVO.getNameList(); |
|
| 1407 |
+ String[] rep1List = mjonMsgVO.getRep1List(); |
|
| 1408 |
+ String[] rep2List = mjonMsgVO.getRep2List(); |
|
| 1409 |
+ String[] rep3List = mjonMsgVO.getRep3List(); |
|
| 1410 |
+ String[] rep4List = mjonMsgVO.getRep4List(); |
|
| 1411 |
+ |
|
| 1412 |
+ int callToListCnt = mjonMsgVO.getCallToList().length; |
|
| 1413 |
+ mjonMsgVO.setTotalCallCnt(callToListCnt); |
|
| 1414 |
+ |
|
| 1415 |
+ /** |
|
| 1416 |
+ * 예약 문자인 경우 시간 및 분할 시간 셋팅 해주기 |
|
| 1417 |
+ * |
|
| 1418 |
+ * |
|
| 1419 |
+ * */ |
|
| 1420 |
+ |
|
| 1421 |
+ //분할문자 시간에 간격시간 더해주기 |
|
| 1422 |
+ String dividDay = null; |
|
| 1423 |
+ Calendar cal = Calendar.getInstance(); |
|
| 1424 |
+ |
|
| 1425 |
+ //예약시간 변환 |
|
| 1426 |
+ SimpleDateFormat transFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
| 1427 |
+ |
|
| 1428 |
+ int turmMin = 0; |
|
| 1429 |
+ int totalCallCnt = 0; |
|
| 1430 |
+ int divideCnt = 0; |
|
| 1431 |
+ int count = 1; //분할 카운트 |
|
| 1432 |
+ |
|
| 1433 |
+ |
|
| 1434 |
+ if(!mjonMsgVO.getReserveYn().equals("N")) {//예약문자인 경우 시간 셋팅
|
|
| 1435 |
+ |
|
| 1436 |
+ Date toDate = transFormat.parse(mjonMsgVO.getReqDate()); |
|
| 1437 |
+ cal.setTime(toDate); //예약 시간 캘린터 변수에 입력 |
|
| 1438 |
+ |
|
| 1439 |
+ //String 타입 시간 Int로 변환 |
|
| 1440 |
+ turmMin = Integer.parseInt(mjonMsgVO.getDivideTime()); //분할발송 시간 간격 |
|
| 1441 |
+ dividDay = transFormat.format(cal.getTime()); |
|
| 1442 |
+ |
|
| 1443 |
+ totalCallCnt = mjonMsgVO.getCallToList().length; // 수신자 전체 갯수 |
|
| 1444 |
+ divideCnt = Integer.parseInt(mjonMsgVO.getDivideCnt()); //분할 발송 갯수 |
|
| 1445 |
+ |
|
| 1446 |
+ } |
|
| 1447 |
+ |
|
| 1448 |
+ //분할 예약 시간 저장 리스트 생성 |
|
| 1449 |
+ List<String> dividDayList = new ArrayList<String>(); |
|
| 1450 |
+ |
|
| 1451 |
+ //서비스 단으로 특정 문자 건수 이상으로 한번에 보내지 않기 위해서 처리함 |
|
| 1452 |
+ //200건이 넘으면 200개씩 서비스로 넘기고 |
|
| 1453 |
+ if(callToListCnt > 200) {
|
|
| 1454 |
+ |
|
| 1455 |
+ int sendCnt = 0; |
|
| 1456 |
+ for(int i=0; i< callToListCnt; i++) {
|
|
| 1457 |
+ |
|
| 1458 |
+ //분할 발송을 체크 한 경우 |
|
| 1459 |
+ if(mjonMsgVO.getDivideChk() != null) {
|
|
| 1460 |
+ |
|
| 1461 |
+ if(count > divideCnt) {
|
|
| 1462 |
+ |
|
| 1463 |
+ count = 1; |
|
| 1464 |
+ |
|
| 1465 |
+ //분할 시간 간격을 증가시켜 준다. |
|
| 1466 |
+ cal.add(Calendar.MINUTE, turmMin); |
|
| 1467 |
+ dividDay = transFormat.format(cal.getTime()); |
|
| 1468 |
+ |
|
| 1469 |
+ dividDayList.add(dividDay); |
|
| 1470 |
+ //tempVO.setReqDate(dividDay); //분할 문자 예약 시간 입력해주기 |
|
| 1471 |
+ count++; |
|
| 1472 |
+ |
|
| 1473 |
+ }else {
|
|
| 1474 |
+ |
|
| 1475 |
+ dividDayList.add(dividDay); |
|
| 1476 |
+ //tempVO.setReqDate(dividDay); //분할 문자 예약 시간 입력해주기 |
|
| 1477 |
+ count++; |
|
| 1478 |
+ |
|
| 1479 |
+ } |
|
| 1480 |
+ |
|
| 1481 |
+ } |
|
| 1482 |
+ |
|
| 1483 |
+ if((i < callToListCnt -1) && sendCnt == 199) {
|
|
| 1484 |
+ |
|
| 1485 |
+ //sendCnt 200번째 값을 추가해준다. |
|
| 1486 |
+ tempPhoneList[sendCnt] = phoneList[i]; |
|
| 1487 |
+ |
|
| 1488 |
+ if(nameList.length > 0) {
|
|
| 1489 |
+ tempNameList[sendCnt] = nameList[i]; |
|
| 1490 |
+ } |
|
| 1491 |
+ |
|
| 1492 |
+ if(rep1List.length > 0) {
|
|
| 1493 |
+ tempRep1List[sendCnt] = rep1List[i]; |
|
| 1494 |
+ } |
|
| 1495 |
+ |
|
| 1496 |
+ if(rep2List.length > 0) {
|
|
| 1497 |
+ tempRep2List[sendCnt] = rep2List[i]; |
|
| 1498 |
+ } |
|
| 1499 |
+ |
|
| 1500 |
+ if(rep3List.length > 0) {
|
|
| 1501 |
+ tempRep3List[sendCnt] = rep3List[i]; |
|
| 1502 |
+ } |
|
| 1503 |
+ |
|
| 1504 |
+ if(rep4List.length > 0) {
|
|
| 1505 |
+ tempRep4List[sendCnt] = rep4List[i]; |
|
| 1506 |
+ } |
|
| 1507 |
+ |
|
| 1508 |
+ List<String> arrPhoneList = new ArrayList<String>(); |
|
| 1509 |
+ List<String> arrNameList = new ArrayList<String>(); |
|
| 1510 |
+ List<String> arrRep1List = new ArrayList<String>(); |
|
| 1511 |
+ List<String> arrRep2List = new ArrayList<String>(); |
|
| 1512 |
+ List<String> arrRep3List = new ArrayList<String>(); |
|
| 1513 |
+ List<String> arrRep4List = new ArrayList<String>(); |
|
| 1514 |
+ |
|
| 1515 |
+ for(String temp : tempPhoneList) {
|
|
| 1516 |
+ |
|
| 1517 |
+ if(temp != null) {
|
|
| 1518 |
+ |
|
| 1519 |
+ arrPhoneList.add(temp); |
|
| 1520 |
+ |
|
| 1521 |
+ } |
|
| 1522 |
+ |
|
| 1523 |
+ } |
|
| 1524 |
+ |
|
| 1525 |
+ if(tempNameList.length > 0) {
|
|
| 1526 |
+ for(String tmpName : tempNameList) {
|
|
| 1527 |
+ |
|
| 1528 |
+ if(tmpName != null) {
|
|
| 1529 |
+ |
|
| 1530 |
+ arrNameList.add(tmpName); |
|
| 1531 |
+ |
|
| 1532 |
+ } |
|
| 1533 |
+ |
|
| 1534 |
+ } |
|
| 1535 |
+ |
|
| 1536 |
+ } |
|
| 1537 |
+ |
|
| 1538 |
+ if(tempRep1List.length > 0) {
|
|
| 1539 |
+ for(String tmpRep1 : tempRep1List) {
|
|
| 1540 |
+ |
|
| 1541 |
+ if(tmpRep1 != null) {
|
|
| 1542 |
+ |
|
| 1543 |
+ arrRep1List.add(tmpRep1); |
|
| 1544 |
+ |
|
| 1545 |
+ } |
|
| 1546 |
+ |
|
| 1547 |
+ } |
|
| 1548 |
+ |
|
| 1549 |
+ } |
|
| 1550 |
+ |
|
| 1551 |
+ if(tempRep2List.length > 0) {
|
|
| 1552 |
+ for(String tmpRep2 : tempRep2List) {
|
|
| 1553 |
+ |
|
| 1554 |
+ if(tmpRep2 != null) {
|
|
| 1555 |
+ |
|
| 1556 |
+ arrRep2List.add(tmpRep2); |
|
| 1557 |
+ |
|
| 1558 |
+ } |
|
| 1559 |
+ |
|
| 1560 |
+ } |
|
| 1561 |
+ |
|
| 1562 |
+ } |
|
| 1563 |
+ |
|
| 1564 |
+ if(tempRep3List.length > 0) {
|
|
| 1565 |
+ for(String tmpRep3 : tempRep3List) {
|
|
| 1566 |
+ |
|
| 1567 |
+ if(tmpRep3 != null) {
|
|
| 1568 |
+ |
|
| 1569 |
+ arrRep3List.add(tmpRep3); |
|
| 1570 |
+ |
|
| 1571 |
+ } |
|
| 1572 |
+ |
|
| 1573 |
+ } |
|
| 1574 |
+ |
|
| 1575 |
+ } |
|
| 1576 |
+ |
|
| 1577 |
+ if(tempRep4List.length > 0) {
|
|
| 1578 |
+ for(String tmpRep4 : tempRep4List) {
|
|
| 1579 |
+ |
|
| 1580 |
+ if(tmpRep4 != null) {
|
|
| 1581 |
+ |
|
| 1582 |
+ arrRep4List.add(tmpRep4); |
|
| 1583 |
+ |
|
| 1584 |
+ } |
|
| 1585 |
+ |
|
| 1586 |
+ } |
|
| 1587 |
+ |
|
| 1588 |
+ } |
|
| 1589 |
+ |
|
| 1590 |
+ //리스트에 추가된 내용 만큼 임시 수신목록 배열에 넣어준다. |
|
| 1591 |
+ String[] sendPhoneList = new String[arrPhoneList.size()]; |
|
| 1592 |
+ String[] sendNameList = new String[arrNameList.size()]; |
|
| 1593 |
+ String[] sendRep1List = new String[arrRep1List.size()]; |
|
| 1594 |
+ String[] sendRep2List = new String[arrRep2List.size()]; |
|
| 1595 |
+ String[] sendRep3List = new String[arrRep3List.size()]; |
|
| 1596 |
+ String[] sendRep4List = new String[arrRep4List.size()]; |
|
| 1597 |
+ |
|
| 1598 |
+ for(int j=0; j< arrPhoneList.size(); j++) {
|
|
| 1599 |
+ |
|
| 1600 |
+ sendPhoneList[j] = arrPhoneList.get(j); |
|
| 1601 |
+ |
|
| 1602 |
+ } |
|
| 1603 |
+ |
|
| 1604 |
+ for(int k=0; k< arrNameList.size(); k++) {
|
|
| 1605 |
+ |
|
| 1606 |
+ sendNameList[k] = arrNameList.get(k); |
|
| 1607 |
+ |
|
| 1608 |
+ } |
|
| 1609 |
+ |
|
| 1610 |
+ for(int k=0; k< arrRep1List.size(); k++) {
|
|
| 1611 |
+ |
|
| 1612 |
+ sendRep1List[k] = arrRep1List.get(k); |
|
| 1613 |
+ |
|
| 1614 |
+ } |
|
| 1615 |
+ |
|
| 1616 |
+ for(int k=0; k< arrRep2List.size(); k++) {
|
|
| 1617 |
+ |
|
| 1618 |
+ sendRep2List[k] = arrRep2List.get(k); |
|
| 1619 |
+ |
|
| 1620 |
+ } |
|
| 1621 |
+ |
|
| 1622 |
+ for(int k=0; k< arrRep3List.size(); k++) {
|
|
| 1623 |
+ |
|
| 1624 |
+ sendRep3List[k] = arrRep3List.get(k); |
|
| 1625 |
+ |
|
| 1626 |
+ } |
|
| 1627 |
+ |
|
| 1628 |
+ for(int k=0; k< arrRep4List.size(); k++) {
|
|
| 1629 |
+ |
|
| 1630 |
+ sendRep4List[k] = arrRep4List.get(k); |
|
| 1631 |
+ |
|
| 1632 |
+ } |
|
| 1633 |
+ |
|
| 1634 |
+ mjonMsgVO.setCallToList(sendPhoneList); |
|
| 1635 |
+ |
|
| 1636 |
+ if(sendNameList.length > 0) {
|
|
| 1637 |
+ mjonMsgVO.setNameList(sendNameList); |
|
| 1638 |
+ } |
|
| 1639 |
+ |
|
| 1640 |
+ if(sendRep1List.length > 0) {
|
|
| 1641 |
+ mjonMsgVO.setRep1List(sendRep1List); |
|
| 1642 |
+ } |
|
| 1643 |
+ |
|
| 1644 |
+ if(sendRep2List.length > 0) {
|
|
| 1645 |
+ mjonMsgVO.setRep2List(sendRep2List); |
|
| 1646 |
+ } |
|
| 1647 |
+ |
|
| 1648 |
+ if(sendRep3List.length > 0) {
|
|
| 1649 |
+ mjonMsgVO.setRep3List(sendRep3List); |
|
| 1650 |
+ } |
|
| 1651 |
+ |
|
| 1652 |
+ if(sendRep4List.length > 0) {
|
|
| 1653 |
+ mjonMsgVO.setRep4List(sendRep4List); |
|
| 1654 |
+ } |
|
| 1655 |
+ sendCnt = 0; |
|
| 1656 |
+ |
|
| 1657 |
+ mjonMsgVO.setDividDay(dividDayList); |
|
| 1658 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.insertMsgDataInfo(mjonMsgVO); |
|
| 1659 |
+ mjonMsgVO.setAgentCode(returnVO.getAgentCode()); |
|
| 1660 |
+ resultSts = resultSts + Integer.parseInt(returnVO.getSendMsgCnt()); |
|
| 1661 |
+ resultBlockSts = resultBlockSts + Integer.parseInt(returnVO.getSendMsgBlockCnt()); |
|
| 1662 |
+ |
|
| 1663 |
+ //발송 처리후 배열 초기화 |
|
| 1664 |
+ Arrays.fill(tempPhoneList, null); |
|
| 1665 |
+ dividDayList.clear(); |
|
| 1666 |
+ |
|
| 1667 |
+ |
|
| 1668 |
+ System.out.println("=========================================================================");
|
|
| 1669 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++선거문자 ==> 199 resultSts ::: " + resultSts);
|
|
| 1670 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++선거문자 ==> 199 resultBlockSts ::: " + resultBlockSts);
|
|
| 1671 |
+ System.out.println("=========================================================================");
|
|
| 1672 |
+ |
|
| 1673 |
+ }else if((i == callToListCnt -1) && sendCnt < 200){//수신목록 마지막이면서 200개 미만으로 남은 경우 발송 처리해준다.
|
|
| 1674 |
+ |
|
| 1675 |
+ //마지막 리스트의 수신번호를 추가해 준다. |
|
| 1676 |
+ tempPhoneList[sendCnt] = phoneList[i]; |
|
| 1677 |
+ if(nameList.length > 0) {
|
|
| 1678 |
+ tempNameList[sendCnt] = nameList[i]; |
|
| 1679 |
+ } |
|
| 1680 |
+ |
|
| 1681 |
+ if(rep1List.length > 0) {
|
|
| 1682 |
+ tempRep1List[sendCnt] = rep1List[i]; |
|
| 1683 |
+ } |
|
| 1684 |
+ |
|
| 1685 |
+ if(rep2List.length > 0) {
|
|
| 1686 |
+ tempRep2List[sendCnt] = rep2List[i]; |
|
| 1687 |
+ } |
|
| 1688 |
+ |
|
| 1689 |
+ if(rep3List.length > 0) {
|
|
| 1690 |
+ tempRep3List[sendCnt] = rep3List[i]; |
|
| 1691 |
+ } |
|
| 1692 |
+ |
|
| 1693 |
+ if(rep4List.length > 0) {
|
|
| 1694 |
+ tempRep4List[sendCnt] = rep4List[i]; |
|
| 1695 |
+ } |
|
| 1696 |
+ |
|
| 1697 |
+ List<String> arrPhoneList2 = new ArrayList<String>(); |
|
| 1698 |
+ List<String> arrNameList2 = new ArrayList<String>(); |
|
| 1699 |
+ List<String> arrRep1List2 = new ArrayList<String>(); |
|
| 1700 |
+ List<String> arrRep2List2 = new ArrayList<String>(); |
|
| 1701 |
+ List<String> arrRep3List2 = new ArrayList<String>(); |
|
| 1702 |
+ List<String> arrRep4List2 = new ArrayList<String>(); |
|
| 1703 |
+ |
|
| 1704 |
+ for(String temp : tempPhoneList) {
|
|
| 1705 |
+ |
|
| 1706 |
+ if(temp != null) {
|
|
| 1707 |
+ |
|
| 1708 |
+ arrPhoneList2.add(temp); |
|
| 1709 |
+ |
|
| 1710 |
+ } |
|
| 1711 |
+ |
|
| 1712 |
+ } |
|
| 1713 |
+ |
|
| 1714 |
+ if(tempNameList.length > 0) {
|
|
| 1715 |
+ for(String tmpName : tempNameList) {
|
|
| 1716 |
+ |
|
| 1717 |
+ if(tmpName != null) {
|
|
| 1718 |
+ |
|
| 1719 |
+ arrNameList2.add(tmpName); |
|
| 1720 |
+ |
|
| 1721 |
+ } |
|
| 1722 |
+ |
|
| 1723 |
+ } |
|
| 1724 |
+ |
|
| 1725 |
+ } |
|
| 1726 |
+ |
|
| 1727 |
+ if(tempRep1List.length > 0) {
|
|
| 1728 |
+ for(String tmpRep1 : tempRep1List) {
|
|
| 1729 |
+ |
|
| 1730 |
+ if(tmpRep1 != null) {
|
|
| 1731 |
+ |
|
| 1732 |
+ arrRep1List2.add(tmpRep1); |
|
| 1733 |
+ |
|
| 1734 |
+ } |
|
| 1735 |
+ |
|
| 1736 |
+ } |
|
| 1737 |
+ |
|
| 1738 |
+ } |
|
| 1739 |
+ |
|
| 1740 |
+ |
|
| 1741 |
+ if(tempRep2List.length > 0) {
|
|
| 1742 |
+ for(String tmpRep2 : tempRep2List) {
|
|
| 1743 |
+ |
|
| 1744 |
+ if(tmpRep2 != null) {
|
|
| 1745 |
+ |
|
| 1746 |
+ arrRep2List2.add(tmpRep2); |
|
| 1747 |
+ |
|
| 1748 |
+ } |
|
| 1749 |
+ |
|
| 1750 |
+ } |
|
| 1751 |
+ |
|
| 1752 |
+ } |
|
| 1753 |
+ |
|
| 1754 |
+ if(tempRep3List.length > 0) {
|
|
| 1755 |
+ for(String tmpRep3 : tempRep3List) {
|
|
| 1756 |
+ |
|
| 1757 |
+ if(tmpRep3 != null) {
|
|
| 1758 |
+ |
|
| 1759 |
+ arrRep3List2.add(tmpRep3); |
|
| 1760 |
+ |
|
| 1761 |
+ } |
|
| 1762 |
+ |
|
| 1763 |
+ } |
|
| 1764 |
+ |
|
| 1765 |
+ } |
|
| 1766 |
+ |
|
| 1767 |
+ if(tempRep4List.length > 0) {
|
|
| 1768 |
+ for(String tmpRep4 : tempRep4List) {
|
|
| 1769 |
+ |
|
| 1770 |
+ if(tmpRep4 != null) {
|
|
| 1771 |
+ |
|
| 1772 |
+ arrRep4List2.add(tmpRep4); |
|
| 1773 |
+ |
|
| 1774 |
+ } |
|
| 1775 |
+ |
|
| 1776 |
+ } |
|
| 1777 |
+ |
|
| 1778 |
+ } |
|
| 1779 |
+ |
|
| 1780 |
+ String[] sendPhoneList2 = new String[arrPhoneList2.size()]; |
|
| 1781 |
+ String[] sendNameList2 = new String[arrNameList2.size()]; |
|
| 1782 |
+ String[] sendRep1List2 = new String[arrRep1List2.size()]; |
|
| 1783 |
+ String[] sendRep2List2 = new String[arrRep2List2.size()]; |
|
| 1784 |
+ String[] sendRep3List2 = new String[arrRep3List2.size()]; |
|
| 1785 |
+ String[] sendRep4List2 = new String[arrRep4List2.size()]; |
|
| 1786 |
+ |
|
| 1787 |
+ for(int j=0; j< arrPhoneList2.size(); j++) {
|
|
| 1788 |
+ |
|
| 1789 |
+ sendPhoneList2[j] = arrPhoneList2.get(j); |
|
| 1790 |
+ |
|
| 1791 |
+ } |
|
| 1792 |
+ |
|
| 1793 |
+ for(int j=0; j< arrNameList2.size(); j++) {
|
|
| 1794 |
+ |
|
| 1795 |
+ sendNameList2[j] = arrNameList2.get(j); |
|
| 1796 |
+ |
|
| 1797 |
+ } |
|
| 1798 |
+ |
|
| 1799 |
+ for(int k=0; k< arrRep1List2.size(); k++) {
|
|
| 1800 |
+ |
|
| 1801 |
+ sendRep1List2[k] = arrRep1List2.get(k); |
|
| 1802 |
+ |
|
| 1803 |
+ } |
|
| 1804 |
+ |
|
| 1805 |
+ for(int k=0; k< arrRep2List2.size(); k++) {
|
|
| 1806 |
+ |
|
| 1807 |
+ sendRep2List2[k] = arrRep2List2.get(k); |
|
| 1808 |
+ |
|
| 1809 |
+ } |
|
| 1810 |
+ |
|
| 1811 |
+ for(int k=0; k< arrRep3List2.size(); k++) {
|
|
| 1812 |
+ |
|
| 1813 |
+ sendRep3List2[k] = arrRep3List2.get(k); |
|
| 1814 |
+ |
|
| 1815 |
+ } |
|
| 1816 |
+ |
|
| 1817 |
+ for(int k=0; k< arrRep4List2.size(); k++) {
|
|
| 1818 |
+ |
|
| 1819 |
+ sendRep4List2[k] = arrRep4List2.get(k); |
|
| 1820 |
+ |
|
| 1821 |
+ } |
|
| 1822 |
+ |
|
| 1823 |
+ mjonMsgVO.setCallToList(sendPhoneList2); |
|
| 1824 |
+ |
|
| 1825 |
+ if(sendNameList2.length > 0) {
|
|
| 1826 |
+ mjonMsgVO.setNameList(sendNameList2); |
|
| 1827 |
+ } |
|
| 1828 |
+ |
|
| 1829 |
+ if(sendRep1List2.length > 0) {
|
|
| 1830 |
+ mjonMsgVO.setRep1List(sendRep1List2); |
|
| 1831 |
+ } |
|
| 1832 |
+ |
|
| 1833 |
+ if(sendRep2List2.length > 0) {
|
|
| 1834 |
+ mjonMsgVO.setRep2List(sendRep2List2); |
|
| 1835 |
+ } |
|
| 1836 |
+ |
|
| 1837 |
+ if(sendRep3List2.length > 0) {
|
|
| 1838 |
+ mjonMsgVO.setRep3List(sendRep3List2); |
|
| 1839 |
+ } |
|
| 1840 |
+ |
|
| 1841 |
+ if(sendRep4List2.length > 0) {
|
|
| 1842 |
+ mjonMsgVO.setRep4List(sendRep4List2); |
|
| 1843 |
+ } |
|
| 1844 |
+ sendCnt = 0; |
|
| 1845 |
+ |
|
| 1846 |
+ mjonMsgVO.setDividDay(dividDayList); |
|
| 1847 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.insertMsgDataInfo(mjonMsgVO); |
|
| 1848 |
+ mjonMsgVO.setAgentCode(returnVO.getAgentCode()); |
|
| 1849 |
+ resultSts = resultSts + Integer.parseInt(returnVO.getSendMsgCnt()); |
|
| 1850 |
+ resultBlockSts = resultBlockSts + Integer.parseInt(returnVO.getSendMsgBlockCnt()); |
|
| 1851 |
+ |
|
| 1852 |
+ System.out.println("=========================================================================");
|
|
| 1853 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++선거문자 ==> 200 resultSts ::: " + resultSts);
|
|
| 1854 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++선거문자 ==> 200 resultBlockSts ::: " + resultBlockSts);
|
|
| 1855 |
+ System.out.println("=========================================================================");
|
|
| 1856 |
+ |
|
| 1857 |
+ }else {
|
|
| 1858 |
+ |
|
| 1859 |
+ tempPhoneList[sendCnt] = phoneList[i]; |
|
| 1860 |
+ |
|
| 1861 |
+ if(nameList.length > 0) {//이름 치환문자가 있는 경우
|
|
| 1862 |
+ tempNameList[sendCnt] = nameList[i]; |
|
| 1863 |
+ } |
|
| 1864 |
+ |
|
| 1865 |
+ if(rep1List.length > 0) {//치환1 문자가 있는 경우
|
|
| 1866 |
+ tempRep1List[sendCnt] = rep1List[i]; |
|
| 1867 |
+ } |
|
| 1868 |
+ |
|
| 1869 |
+ if(rep2List.length > 0) {//치환2 문자가 있는 경우
|
|
| 1870 |
+ tempRep2List[sendCnt] = rep2List[i]; |
|
| 1871 |
+ } |
|
| 1872 |
+ |
|
| 1873 |
+ if(rep3List.length > 0) {//치환3 문자가 있는 경우
|
|
| 1874 |
+ tempRep3List[sendCnt] = rep3List[i]; |
|
| 1875 |
+ } |
|
| 1876 |
+ |
|
| 1877 |
+ if(rep4List.length > 0) {//치환4 문자가 있는 경우
|
|
| 1878 |
+ tempRep4List[sendCnt] = rep4List[i]; |
|
| 1879 |
+ } |
|
| 1880 |
+ |
|
| 1881 |
+ sendCnt++; |
|
| 1882 |
+ |
|
| 1883 |
+ } |
|
| 1884 |
+ |
|
| 1885 |
+ } |
|
| 1886 |
+ |
|
| 1887 |
+ }else {//200건 미만일 경우 한번에 발송 처리
|
|
| 1888 |
+ |
|
| 1889 |
+ //분할 발송을 체크 한 경우 |
|
| 1890 |
+ if(mjonMsgVO.getDivideChk() != null) {
|
|
| 1891 |
+ for(int i=0; i< callToListCnt; i++) {
|
|
| 1892 |
+ if(count > divideCnt) {
|
|
| 1893 |
+ |
|
| 1894 |
+ count = 1; |
|
| 1895 |
+ |
|
| 1896 |
+ //분할 시간 간격을 증가시켜 준다. |
|
| 1897 |
+ cal.add(Calendar.MINUTE, turmMin); |
|
| 1898 |
+ dividDay = transFormat.format(cal.getTime()); |
|
| 1899 |
+ |
|
| 1900 |
+ dividDayList.add(dividDay); |
|
| 1901 |
+ //tempVO.setReqDate(dividDay); //분할 문자 예약 시간 입력해주기 |
|
| 1902 |
+ count++; |
|
| 1903 |
+ |
|
| 1904 |
+ }else {
|
|
| 1905 |
+ |
|
| 1906 |
+ dividDayList.add(dividDay); |
|
| 1907 |
+ //tempVO.setReqDate(dividDay); //분할 문자 예약 시간 입력해주기 |
|
| 1908 |
+ count++; |
|
| 1909 |
+ |
|
| 1910 |
+ } |
|
| 1911 |
+ |
|
| 1912 |
+ } |
|
| 1913 |
+ |
|
| 1914 |
+ } |
|
| 1915 |
+ |
|
| 1916 |
+ mjonMsgVO.setDividDay(dividDayList); |
|
| 1917 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.insertMsgDataInfo(mjonMsgVO); |
|
| 1918 |
+ mjonMsgVO.setAgentCode(returnVO.getAgentCode()); |
|
| 1919 |
+ resultSts = Integer.parseInt(returnVO.getSendMsgCnt()); |
|
| 1920 |
+ resultBlockSts = Integer.parseInt(returnVO.getSendMsgBlockCnt()); |
|
| 1921 |
+ |
|
| 1922 |
+ System.out.println("=========================================================================");
|
|
| 1923 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++200건 미만 건수 선거문자 ==> resultSts ::: " + resultSts);
|
|
| 1924 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++200건 미만 건수 선거문자 ==> resultBlockSts ::: " + resultBlockSts);
|
|
| 1925 |
+ System.out.println("=========================================================================");
|
|
| 1926 |
+ |
|
| 1927 |
+ } |
|
| 1928 |
+ |
|
| 1929 |
+ System.out.println("=========================================================================");
|
|
| 1930 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++최종 건수 선거문자 ==> resultSts ::: " + resultSts);
|
|
| 1931 |
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++최종 건수 선거문자 ==> resultBlockSts ::: " + resultBlockSts);
|
|
| 1932 |
+ System.out.println("=========================================================================");
|
|
| 1933 |
+ |
|
| 1934 |
+ try {
|
|
| 1935 |
+ |
|
| 1936 |
+ //스팸문구 포함된 문자 발송의 경우 스팸 문구 내용도 별도 저장함. |
|
| 1937 |
+ String spamStatus = mjonMsgVO.getSpamStatus(); |
|
| 1938 |
+ |
|
| 1939 |
+ if(spamStatus == null) {
|
|
| 1940 |
+ |
|
| 1941 |
+ spamStatus = "N"; |
|
| 1942 |
+ mjonMsgVO.setSpamStatus("N");
|
|
| 1943 |
+ |
|
| 1944 |
+ } |
|
| 1945 |
+ |
|
| 1946 |
+ if(spamStatus.equals("Y")) {
|
|
| 1947 |
+ |
|
| 1948 |
+ int resultCnt = mjonSpamMsgService.insertSpamKeyWordMsgData(mjonMsgVO); |
|
| 1949 |
+ |
|
| 1950 |
+ System.out.println("+++++++++++++스팸문구 발송 내용 등록 +++++++++++++++++++++ "+resultCnt);
|
|
| 1951 |
+ |
|
| 1952 |
+ } |
|
| 1953 |
+ |
|
| 1954 |
+ } catch (Exception e) {
|
|
| 1955 |
+ System.out.println("=========================================================================");
|
|
| 1956 |
+ System.out.println("+++++++++++++++++++++++++++++ 선거문자 ==> MJ_MSG_GROUP && CASH INSER ERROR !!! : " + e.getMessage());
|
|
| 1957 |
+ System.out.println("=========================================================================");
|
|
| 1958 |
+ } |
|
| 1959 |
+ |
|
| 1960 |
+ |
|
| 1961 |
+ }else {
|
|
| 1962 |
+ |
|
| 1963 |
+ modelAndView.addObject("message", "문자 발송에 필요한 보유 잔액이 부족 합니다.");
|
|
| 1964 |
+ modelAndView.addObject("result", "fail");
|
|
| 1965 |
+ modelAndView.addObject("resultSts", "0");
|
|
| 1966 |
+ modelAndView.addObject("resultBlockSts", "0");
|
|
| 1967 |
+ |
|
| 1968 |
+ return modelAndView; |
|
| 1969 |
+ |
|
| 1970 |
+ } |
|
| 1971 |
+ |
|
| 1972 |
+ //문자 발송 후 남은 보유 캐시 정보 불러오기 |
|
| 1973 |
+ String afterCash = mjonMsgDataService.selectBeforeCashData(mjonMsgVO); |
|
| 1974 |
+ modelAndView.addObject("afterCash", afterCash);
|
|
| 1975 |
+ |
|
| 1976 |
+ }catch(Exception e) {
|
|
| 1977 |
+ |
|
| 1978 |
+ System.out.println("=========================================================================");
|
|
| 1979 |
+ System.out.println("+++++++++++++++++++++++++++++ 선거문자 ==> 기타 시스템 오류 !!! : " + e.getMessage());
|
|
| 1980 |
+ System.out.println("=========================================================================");
|
|
| 1981 |
+ |
|
| 1982 |
+ logger.error(e.getMessage(), e); |
|
| 1983 |
+ modelAndView.addObject("result", "fail");
|
|
| 1984 |
+ modelAndView.addObject("message", "기타 시스템 오류 : " + e.getMessage());
|
|
| 1985 |
+ } |
|
| 1986 |
+ |
|
| 1987 |
+ //if(!resultSts.equals("0")) {
|
|
| 1988 |
+ |
|
| 1989 |
+ modelAndView.addObject("message", "문자 전송이 완료되었습니다.");
|
|
| 1990 |
+ modelAndView.addObject("result", "success");
|
|
| 1991 |
+ modelAndView.addObject("resultSts", resultSts);
|
|
| 1992 |
+ modelAndView.addObject("resultBlockSts", resultBlockSts);
|
|
| 1993 |
+ |
|
| 1994 |
+ |
|
| 1995 |
+ /* |
|
| 1996 |
+ * |
|
| 1997 |
+ * 문자전송이 완료되면 전송한 연락처의 발송 상태값을 변경처리 해준다. |
|
| 1998 |
+ * 사용자 화면의 받는사람 리스트에서 다음 페이지의 20건을 불러오고, 발송완료 및 전송대기건의 카운트 계산을 위함이다. |
|
| 1999 |
+ * |
|
| 2000 |
+ * */ |
|
| 2001 |
+ if(resultSts > 0) {
|
|
| 2002 |
+ |
|
| 2003 |
+ System.out.println(userId); |
|
| 2004 |
+ |
|
| 2005 |
+ MjonCandidateTWVO mjonCandidateTWVO = new MjonCandidateTWVO(); |
|
| 2006 |
+ |
|
| 2007 |
+ mjonCandidateTWVO.setMberId(userId); |
|
| 2008 |
+ mjonCandidateTWVO.setCallToArr(mjonMsgVO.getCallToList()); |
|
| 2009 |
+ |
|
| 2010 |
+ mjonCandidateService.updateMsgTWCallToListSendFlag(mjonCandidateTWVO); |
|
| 2011 |
+ |
|
| 2012 |
+ } |
|
| 2013 |
+ |
|
| 2014 |
+ /** |
|
| 2015 |
+ * 사용자가 보낸 문자를 문자온 법인폰으로도 하나 전송하는 기능 시작 |
|
| 2016 |
+ * |
|
| 2017 |
+ * */ |
|
| 2018 |
+ |
|
| 2019 |
+ try {
|
|
| 2020 |
+ |
|
| 2021 |
+ if(resultSts > 0) {//전송 결과가 한건 이상인 경우
|
|
| 2022 |
+ |
|
| 2023 |
+ String adminSmsNoticeYn = "Y"; |
|
| 2024 |
+ String smishingYn = "N"; |
|
| 2025 |
+ String spamStatus = mjonMsgVO.getSpamStatus(); //스미싱 의심으로 체크된 문자 정보 |
|
| 2026 |
+ |
|
| 2027 |
+ UserManageVO userManageVO = new UserManageVO(); |
|
| 2028 |
+ userManageVO.setMberId(userId); |
|
| 2029 |
+ if(!userId.equals("")) {
|
|
| 2030 |
+ userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); |
|
| 2031 |
+ adminSmsNoticeYn = userManageVO.getAdminSmsNoticeYn(); |
|
| 2032 |
+ smishingYn = userManageVO.getSmishingYn(); |
|
| 2033 |
+ } |
|
| 2034 |
+ |
|
| 2035 |
+ //법인폰 알림 온 이거나 스미싱의심 문자인 경우 법인폰으로 발송 |
|
| 2036 |
+ if(adminSmsNoticeYn.equals("Y") || spamStatus.equals("Y") || smishingYn.equals("Y")) {
|
|
| 2037 |
+ |
|
| 2038 |
+ if(spamStatus.equals("Y")) {
|
|
| 2039 |
+ |
|
| 2040 |
+ mjonMsgVO.setDelayYn("Y");
|
|
| 2041 |
+ |
|
| 2042 |
+ }else if(smishingYn.equals("Y")) {
|
|
| 2043 |
+ |
|
| 2044 |
+ mjonMsgVO.setSmishingYn("Y");
|
|
| 2045 |
+ } |
|
| 2046 |
+ |
|
| 2047 |
+ // 법인폰 알람여부 체크 |
|
| 2048 |
+ JoinSettingVO joinSettingVO = new JoinSettingVO(); |
|
| 2049 |
+ joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); |
|
| 2050 |
+ // SMS 체크 |
|
| 2051 |
+ if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
|
| 2052 |
+ MjonMsgCampainDataController mjonCampDataController = new MjonMsgCampainDataController(); |
|
| 2053 |
+ mjonCampDataController.getAdminPhoneSendMsgData(mjonMsgVO); |
|
| 2054 |
+ } |
|
| 2055 |
+ |
|
| 2056 |
+ // SLACK 체크 |
|
| 2057 |
+ if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
|
| 2058 |
+ //Slack으로 메세지 전송 처리 |
|
| 2059 |
+ MjonCommon comm = new MjonCommon(); |
|
| 2060 |
+ comm.getAdminSandSlack(mjonMsgVO); |
|
| 2061 |
+ } |
|
| 2062 |
+ } |
|
| 2063 |
+ |
|
| 2064 |
+ } |
|
| 2065 |
+ |
|
| 2066 |
+ } catch (Exception e) {
|
|
| 2067 |
+ throw new Exception("++++++++++++++++++++++ 선거문자 메뉴 getAdminPhoneSendMsgData Error !!! " + e);
|
|
| 2068 |
+ } |
|
| 2069 |
+ |
|
| 2070 |
+ return modelAndView; |
|
| 2071 |
+ } |
|
| 2072 |
+ |
|
| 2073 |
+ |
|
| 2074 |
+ |
|
| 2075 |
+ /* |
|
| 2076 |
+ * 선거문자 20건 발송 처리 종료 |
|
| 2077 |
+ * |
|
| 2078 |
+ * */ |
|
| 2079 |
+ |
|
| 2080 |
+ |
|
| 2081 |
+ |
|
| 2082 |
+ |
|
| 2083 |
+ |
|
| 2084 |
+ |
|
| 2085 |
+ |
|
| 2086 |
+ |
|
| 2087 |
+ |
|
| 868 | 2088 |
|
| 869 | 2089 |
/** |
| 870 | 2090 |
* 선거문자 20건씩 문자 발송 - 엑셀파일 불러오기 |
... | ... | @@ -1289,12 +2509,6 @@ |
| 1289 | 2509 |
|
| 1290 | 2510 |
} |
| 1291 | 2511 |
|
| 1292 |
- /*if(jm.get("phone") != null) {
|
|
| 1293 |
- |
|
| 1294 |
- json.add(jm); |
|
| 1295 |
- |
|
| 1296 |
- }*/ |
|
| 1297 |
- |
|
| 1298 | 2512 |
} // end while |
| 1299 | 2513 |
//jr.setData(json); |
| 1300 | 2514 |
//jr.setSuccess(true); |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml
... | ... | @@ -249,6 +249,20 @@ |
| 249 | 249 |
'N') |
| 250 | 250 |
</select> |
| 251 | 251 |
|
| 252 |
+ <update id="mjonCandidateDAO.updateMsgTWCallToListSendFlag" parameterClass="mjonCandidateTWVO"> |
|
| 253 |
+ |
|
| 254 |
+ UPDATE MJ_CAMPAIN_TMP_CALLTO SET |
|
| 255 |
+ SEND_FLAG = 'Y', |
|
| 256 |
+ LAST_UPDUSR_ID = #mberId#, |
|
| 257 |
+ LAST_UPDT_PNTTM = NOW() |
|
| 258 |
+ WHERE MBER_ID = #mberId# |
|
| 259 |
+ <iterate prepend="AND CALL_TO IN " open="(" close=")" conjunction="," property="callToArr">
|
|
| 260 |
+ #callToArr[]# |
|
| 261 |
+ </iterate> |
|
| 262 |
+ |
|
| 263 |
+ |
|
| 264 |
+ </update> |
|
| 265 |
+ |
|
| 252 | 266 |
</sqlMap> |
| 253 | 267 |
|
| 254 | 268 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
... | ... | @@ -136,6 +136,17 @@ |
| 136 | 136 |
//엑셀파일 자료 데이터베이스에 입력해주기 |
| 137 | 137 |
function fnInsertAttchFileData(){
|
| 138 | 138 |
|
| 139 |
+ var callToCnt = $("input[name=chkCallTo]").length;
|
|
| 140 |
+ |
|
| 141 |
+ if(callToCnt > 0){
|
|
| 142 |
+ if(!confirm("기존 받는사람을 모두 초기화하고 새로운 받는사람을 불러옵니다. 진행하시겠습니까?")){
|
|
| 143 |
+ //첨부파일 초기화 시켜주기 |
|
| 144 |
+ $("#excelFile").val("");
|
|
| 145 |
+ $("#excelNm").val("");
|
|
| 146 |
+ return false; |
|
| 147 |
+ } |
|
| 148 |
+ } |
|
| 149 |
+ |
|
| 139 | 150 |
var data = new FormData(document.excelForm); |
| 140 | 151 |
data.append("file0", $('#excelFile').prop('files')[0]);
|
| 141 | 152 |
|
... | ... | @@ -210,7 +221,7 @@ |
| 210 | 221 |
//첨부파일로 불러온 데이터를 받는사람 목록에 추가해 준다. |
| 211 | 222 |
addTWCallToInfo(); |
| 212 | 223 |
|
| 213 |
- //첨부파일 초기화 시켜주기 |
|
| 224 |
+ //첨부파일 초기화 시켜주기 |
|
| 214 | 225 |
$("#excelFile").val("");
|
| 215 | 226 |
$("#excelNm").val("");
|
| 216 | 227 |
|
... | ... | @@ -255,10 +266,6 @@ |
| 255 | 266 |
$("#excelAdd").click(function(){
|
| 256 | 267 |
|
| 257 | 268 |
var callSeq = $("#callSeq").val();
|
| 258 |
- |
|
| 259 |
- if(!confirm("기존 받는사람을 모두 초기화하고 새로운 받는사람을 불러옵니다. 진행하시겠습니까?")){
|
|
| 260 |
- return false; |
|
| 261 |
- } |
|
| 262 | 269 |
|
| 263 | 270 |
//엑셀파일 자료 데이터베이스에 입력해주기 |
| 264 | 271 |
fnInsertAttchFileData(); |
... | ... | @@ -1276,7 +1283,7 @@ |
| 1276 | 1283 |
//오류 검사 버튼 처리 |
| 1277 | 1284 |
$('.check_validity').click(function(){
|
| 1278 | 1285 |
|
| 1279 |
- var data = $('.liCallTo').length;
|
|
| 1286 |
+ var data = $("input[name='chkCallTo']").length;
|
|
| 1280 | 1287 |
|
| 1281 | 1288 |
if(data == 0){
|
| 1282 | 1289 |
|
... | ... | @@ -1285,27 +1292,26 @@ |
| 1285 | 1292 |
|
| 1286 | 1293 |
}else{
|
| 1287 | 1294 |
|
| 1288 |
- var callToArr = []; |
|
| 1295 |
+ var callToChkArr = []; |
|
| 1289 | 1296 |
//받는사람 목록의 리스트 전체 데이터 불러와서 배열에 저장 |
| 1290 | 1297 |
//화면에 불러와져있는 최대 20개의 리스트만 삭제 |
| 1291 |
- $(".liCallTo a div span").each(function(){
|
|
| 1292 |
- |
|
| 1293 |
- var callTo = $(this).text(); |
|
| 1294 |
- |
|
| 1298 |
+ $("input[name='chkCallTo']").each(function(){
|
|
| 1299 |
+ |
|
| 1300 |
+ var callTo = $(this).closest("div").next().text();
|
|
| 1295 | 1301 |
//전화번호 유효성 체크 해주기 |
| 1296 | 1302 |
var callSts = checkHpNum(callTo); |
| 1297 | 1303 |
|
| 1298 | 1304 |
if(!callSts){
|
| 1299 | 1305 |
|
| 1300 |
- callToArr.push(callTo); |
|
| 1306 |
+ callToChkArr.push(callTo); |
|
| 1301 | 1307 |
|
| 1302 | 1308 |
} |
| 1303 | 1309 |
|
| 1304 | 1310 |
}); |
| 1305 | 1311 |
|
| 1306 |
- if(callToArr.length > 0){
|
|
| 1312 |
+ if(callToChkArr.length > 0){
|
|
| 1307 | 1313 |
|
| 1308 |
- alert("받는사람 목록 중 ["+ callToArr + "] 번호에 오류가 있습니다.");
|
|
| 1314 |
+ alert("받는사람 목록 중 ["+ callToChkArr + "] 번호에 오류가 있습니다.");
|
|
| 1309 | 1315 |
return false; |
| 1310 | 1316 |
|
| 1311 | 1317 |
}else{
|
... | ... | @@ -4032,6 +4038,9 @@ |
| 4032 | 4038 |
</form> |
| 4033 | 4039 |
<form id="msgForm" name="msgForm" method="post"> |
| 4034 | 4040 |
<input type="hidden" id="send_adYn" name="send_adYn" value="N"/><!-- 문자종류 선거문자 여부 값 --> |
| 4041 |
+ <input type="hidden" id="divideChk" name="divideChk" value="N"/><!-- 예약문자 분할발송 여부 값 --> |
|
| 4042 |
+ <input type="hidden" id="divideCnt" name="divideCnt" value="20"/><!-- 예약문자 분할발송 분할갯수 값 --> |
|
| 4043 |
+ <input type="hidden" id="divideTime" name="divideTime" value="01"/><!-- 예약문자 분할발송 분할 간격 값 --> |
|
| 4035 | 4044 |
<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 --> |
| 4036 | 4045 |
<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 --> |
| 4037 | 4046 |
<input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 --> |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataView.jsp
... | ... | @@ -199,7 +199,8 @@ |
| 199 | 199 |
|
| 200 | 200 |
//문자발송 URL Move |
| 201 | 201 |
function goMsgUrlMove() {
|
| 202 |
- document.location.href = "/web/mjon/msgcampain/selectTWMsgDataView.do"; |
|
| 202 |
+ //document.location.href = "/web/mjon/msgcampain/selectMsgTWDataView.do"; |
|
| 203 |
+ addTWCallToInfo(); |
|
| 203 | 204 |
} |
| 204 | 205 |
|
| 205 | 206 |
function listMsgDataView(){
|
... | ... | @@ -868,34 +869,12 @@ |
| 868 | 869 |
var spamStatus = false; |
| 869 | 870 |
var exceptSpamYn = $("#exceptSpamYn").val(); //금지어 필터링 예외 여부 - N 일 경우만 스팸 검사를 진행
|
| 870 | 871 |
|
| 871 |
- alert(adverYn); |
|
| 872 |
- |
|
| 873 |
-/* //이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요. |
|
| 874 |
- var eventStatus = form.eventStatus.value; |
|
| 875 |
- var eventRemainCash = parseFloat(form.eventRemainCash.value); |
|
| 876 |
- |
|
| 877 |
- if(eventStatus == 'Y'){
|
|
| 878 |
- |
|
| 879 |
- if(parseFloat(eventRemainCash) < parseFloat(totPriceOnly)){
|
|
| 880 |
- |
|
| 881 |
- alert("고객님의 이벤트 캐시 잔액은 " + eventRemainCash + "원으로 입력하신 수량의 문자를 전부 발송할 수 없습니다. 잔액 이하로 발송건수를 재설정하시기 바랍니다.");
|
|
| 882 |
- return false; |
|
| 883 |
- } |
|
| 884 |
- |
|
| 885 |
- } */ |
|
| 886 |
- |
|
| 887 | 872 |
if(loginVO == "" || loginVO == null){
|
| 888 | 873 |
|
| 889 | 874 |
alert("문자발송 서비스는 로그인 후 이용 가능합니다.");
|
| 890 | 875 |
return false; |
| 891 | 876 |
|
| 892 | 877 |
} |
| 893 |
- |
|
| 894 |
- //MJ_MSG_GROUP_DATA 누락데이터 체크 |
|
| 895 |
- //if (getMsgGroupDataErrorCheck() == false) {
|
|
| 896 |
- // alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요.");
|
|
| 897 |
- // return false; |
|
| 898 |
- //} |
|
| 899 | 878 |
|
| 900 | 879 |
if(form.callFromList.value == ""){
|
| 901 | 880 |
|
... | ... | @@ -937,19 +916,6 @@ |
| 937 | 916 |
alert("입력하신 문구 중 \" " + rtnStr + " \" 는 일부 휴대폰에서 표기되지 않을 수 있습니다.");
|
| 938 | 917 |
|
| 939 | 918 |
} |
| 940 |
- |
|
| 941 |
- //문자내용 첫글자에 특수기호 포함 여부 체크 |
|
| 942 |
- /* var strCont = form.smsTxtArea.value; |
|
| 943 |
- var repStr = strFirstCharCheck(strCont); |
|
| 944 |
- |
|
| 945 |
- if(repStr.length > 0){
|
|
| 946 |
- |
|
| 947 |
- alert("문자 내용 첫 글자는 특수기호가 들어갈 수 없습니다.");
|
|
| 948 |
- $('#smsTxtArea').val(strCont.replace(repStr, ""));
|
|
| 949 |
- fnByteString(strCont.replace(repStr, "")); |
|
| 950 |
- return false; |
|
| 951 |
- |
|
| 952 |
- } */ |
|
| 953 | 919 |
|
| 954 | 920 |
if(imgFilePath.length == 0){ // 그림문자일 경우 내용이 없어도 됨 , 장문 문자일 경우만 문자내용 체크함
|
| 955 | 921 |
|
... | ... | @@ -1007,7 +973,7 @@ |
| 1007 | 973 |
var callToNum = $(this).closest("div").next().text();
|
| 1008 | 974 |
|
| 1009 | 975 |
if(!checkHpNum(callToNum)){
|
| 1010 |
- alert("선택한 연락처 목록에 잘 못된 연락처가 있습니다. 연락처 번호 : " + callToNum + " 입니다.");
|
|
| 976 |
+ alert("선택한 연락처 목록에 잘못된 연락처가 있습니다. 연락처 번호 : " + callToNum + " 입니다.");
|
|
| 1011 | 977 |
return false; |
| 1012 | 978 |
}else{
|
| 1013 | 979 |
phoneNum.push(callToNum); |
... | ... | @@ -1626,7 +1592,7 @@ |
| 1626 | 1592 |
var reserYn = $("#reserveYn").val();
|
| 1627 | 1593 |
|
| 1628 | 1594 |
var data = new FormData(form); |
| 1629 |
- url = "/web/mjon/msgcampain/sendMsgDataAjax.do"; |
|
| 1595 |
+ url = "/web/mjon/msgcampain/sendMsgTWDataAjax.do"; |
|
| 1630 | 1596 |
|
| 1631 | 1597 |
$.ajax({
|
| 1632 | 1598 |
type: "POST", |
... | ... | @@ -1920,8 +1886,8 @@ |
| 1920 | 1886 |
<div class="msg_text">발송성공 : <strong>1</strong> 건, 수신거부 : <span>0</span>건의<br>문자가 발송 되었습니다.</div> |
| 1921 | 1887 |
</div> |
| 1922 | 1888 |
<div class="popup_btn"> |
| 1923 |
- <button type="button" onclick="msgResultLink(); return false;">문자 발송결과 바로가기</button> |
|
| 1924 |
- <button type="button" class="tooltip-close" onclick="msgSuccessClose(this);">확인</button> |
|
| 1889 |
+ <!-- <button type="button" onclick="msgResultLink(); return false;">문자 발송결과 바로가기</button> --> |
|
| 1890 |
+ <button type="button" class="tooltip-close" onclick="msgSuccessClose(this);">다음 20건</button> |
|
| 1925 | 1891 |
</div> |
| 1926 | 1892 |
</div> |
| 1927 | 1893 |
</div> |
--- src/main/webapp/publish/js/publish.js
+++ src/main/webapp/publish/js/publish.js
... | ... | @@ -23,7 +23,7 @@ |
| 23 | 23 |
} |
| 24 | 24 |
$(checkTarget[cnt]).prop('checked', true); // 체크박스 체크.
|
| 25 | 25 |
cnt++; |
| 26 |
- console.log("+++++ publishCommon ::: " + cnt);
|
|
| 26 |
+ fnChkCallToChange(); |
|
| 27 | 27 |
}, checkTime); |
| 28 | 28 |
}, |
| 29 | 29 |
clickCheck: function (checkTarget) {
|
... | ... | @@ -46,21 +46,10 @@ |
| 46 | 46 |
|
| 47 | 47 |
}); |
| 48 | 48 |
|
| 49 |
- console.log("+++++ publishCommonClick ::: " + this.count);
|
|
| 50 | 49 |
}, |
| 51 | 50 |
clickCheckPrice : function(){
|
| 52 | 51 |
|
| 53 |
- var callToCnt = 0; |
|
| 54 |
- $("input[name=chkCallTo]").each(function(){
|
|
| 55 |
- |
|
| 56 |
- var chkSts = $(this).is(':checked');
|
|
| 57 |
- if(chkSts){
|
|
| 58 |
- callToCnt++; |
|
| 59 |
- } |
|
| 60 |
- }); |
|
| 61 |
- |
|
| 62 |
- updateTotCnt(callToCnt); //전체 데이터 갯수 구하기 |
|
| 63 |
- totalPriceSum(callToCnt); |
|
| 52 |
+ fnChkCallToChange(); |
|
| 64 | 53 |
|
| 65 | 54 |
} |
| 66 | 55 |
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?