알림톡 진행중
This commit is contained in:
parent
7b7b76b99f
commit
a74193673e
@ -1,13 +1,17 @@
|
|||||||
package itn.let.kakao.kakaoComm;
|
package itn.let.kakao.kakaoComm;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -71,12 +75,29 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
List<KakaoSendAdvcVO> kakaoSendAdvcListVO = new ArrayList<>();
|
List<KakaoSendAdvcVO> kakaoSendAdvcListVO = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
// 예약 시간 기본값 설정
|
||||||
|
Date now = new Date();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
||||||
|
// ReqDate가 비어 있으면 현재 시간으로 설정, 그렇지 않으면 ReqDate로 설정
|
||||||
|
// 화면에서 예약문자면 예약시간을 regDate로 설정한다.
|
||||||
|
Date baseDate;
|
||||||
|
if (StringUtils.isEmpty(kakaoVO.getReqDate())) {
|
||||||
|
kakaoVO.setReqDate(sdf.format(now)); // ReqDate에 현재 시간 설정
|
||||||
|
baseDate = now;
|
||||||
|
} else {
|
||||||
|
baseDate = sdf.parse(kakaoVO.getReqDate()); // ReqDate를 baseDate로 설정
|
||||||
|
}
|
||||||
|
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(baseDate); // calendar에 baseDate 설정
|
||||||
|
|
||||||
|
int counter = 0; // 분할 건수 카운터
|
||||||
|
|
||||||
// Map에 총 갯수가 수신자 갯수와 동일함
|
// Map에 총 갯수가 수신자 갯수와 동일함
|
||||||
for(Map<String, String> variables : kakaoVO.getVarListMap()) {
|
for(Map<String, String> variables : kakaoVO.getVarListMap()) {
|
||||||
|
|
||||||
KakaoSendAdvcVO kakaoSendAdvcVO = new KakaoSendAdvcVO();
|
KakaoSendAdvcVO sendVO = new KakaoSendAdvcVO();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -86,7 +107,7 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
// Step 1-2: 수신자 정보 설정 (callToList는 항상 설정).
|
// Step 1-2: 수신자 정보 설정 (callToList는 항상 설정).
|
||||||
if (variables.containsKey("callToList")) {
|
if (variables.containsKey("callToList")) {
|
||||||
kakaoSendAdvcVO.setCallTo(variables.get("callToList"));
|
sendVO.setCallTo(variables.get("callToList"));
|
||||||
variables.remove("callToList"); // 사용 후 제거.
|
variables.remove("callToList"); // 사용 후 제거.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +116,7 @@ public class KakaoSendUtil {
|
|||||||
if ("Y".equals(kakaoVO.getTxtReplYn())) {
|
if ("Y".equals(kakaoVO.getTxtReplYn())) {
|
||||||
templateContent = replaceTemplateVariables(templateContent, variables);
|
templateContent = replaceTemplateVariables(templateContent, variables);
|
||||||
}
|
}
|
||||||
kakaoSendAdvcVO.setTemplateContent(templateContent);
|
sendVO.setTemplateContent(templateContent);
|
||||||
|
|
||||||
|
|
||||||
// Step 1-4: 실패 대체 문자 치환데이터 설정
|
// Step 1-4: 실패 대체 문자 치환데이터 설정
|
||||||
@ -105,7 +126,7 @@ public class KakaoSendUtil {
|
|||||||
if ("Y".equals(kakaoVO.getSubMsgTxtReplYn())) {
|
if ("Y".equals(kakaoVO.getSubMsgTxtReplYn())) {
|
||||||
subMsgTxt = replaceTemplateVariables(subMsgTxt, variables);
|
subMsgTxt = replaceTemplateVariables(subMsgTxt, variables);
|
||||||
}
|
}
|
||||||
kakaoSendAdvcVO.setSubMsgTxt(subMsgTxt);// 실패
|
sendVO.setSubMsgTxt(subMsgTxt);// 실패
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
log.info("kakaoSendAdvcVO Details: [callTo={}\n, templateContent=\n{}\n, subMsgTxt=\n{}]\n\n\n\n",
|
log.info("kakaoSendAdvcVO Details: [callTo={}\n, templateContent=\n{}\n, subMsgTxt=\n{}]\n\n\n\n",
|
||||||
@ -116,6 +137,10 @@ public class KakaoSendUtil {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// step3
|
||||||
|
// 바이트 수 체크 및 금액설정
|
||||||
|
|
||||||
// 시스템 기본 단가 정보 불러오기
|
// 시스템 기본 단가 정보 불러오기
|
||||||
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
|
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
|
||||||
|
|
||||||
@ -132,7 +157,7 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
|
|
||||||
if("Y".equals(kakaoVO.getSubMsgSendYn())) {
|
if("Y".equals(kakaoVO.getSubMsgSendYn())) {
|
||||||
int smsTxtByte = mjonCommon.getSmsTxtBytes(kakaoSendAdvcVO.getSubMsgTxt());
|
int smsTxtByte = mjonCommon.getSmsTxtBytes(sendVO.getSubMsgTxt());
|
||||||
|
|
||||||
String sendType = getMsgType(smsTxtByte);
|
String sendType = getMsgType(smsTxtByte);
|
||||||
|
|
||||||
@ -152,11 +177,28 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// step3
|
|
||||||
// 바이트 수 체크 ==> 실패 성공
|
|
||||||
|
|
||||||
// step4
|
// step4
|
||||||
// 예약 시간 설정 및 분할 데이터 설정
|
// 예약 시간 설정 및 분할 데이터 설정
|
||||||
|
if ("Y".equalsIgnoreCase(kakaoVO.getReserveYn())) {
|
||||||
|
// 분할 발송일 경우
|
||||||
|
if ("on".equalsIgnoreCase(kakaoVO.getDivideChk())) {
|
||||||
|
if (counter == Integer.parseInt(kakaoVO.getDivideCnt())) { // 지정된 건수마다 간격 추가
|
||||||
|
counter = 0;
|
||||||
|
calendar.add(Calendar.MINUTE, Integer.parseInt(kakaoVO.getDivideTime()));
|
||||||
|
}
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
// 예약 시간 설정
|
||||||
|
}
|
||||||
|
|
||||||
|
// 즉시 발송인경우 현재 시간
|
||||||
|
// 예약인 경우 위에 설정한 시간 입력
|
||||||
|
sendVO.setReqDate(sdf.format(calendar.getTime()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// step5
|
// step5
|
||||||
// 전송 메세지 설정 kakaoSendMsg 참고
|
// 전송 메세지 설정 kakaoSendMsg 참고
|
||||||
@ -164,8 +206,8 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
|
|
||||||
// kakaoSendAdvcVO.setSendType("AT");
|
// kakaoSendAdvcVO.setSendType("AT");
|
||||||
kakaoSendAdvcVO.setMsgType("8");
|
sendVO.setMsgType("8");
|
||||||
kakaoSendAdvcVO.setUserId(kakaoVO.getUserId());
|
sendVO.setUserId(kakaoVO.getUserId());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -220,8 +220,8 @@ public class KakaoAlimTalkSendController {
|
|||||||
model.addAttribute("sendPrice", kakaoSendUtil.selectSendPriceOfKakaoAtAndSmsAndMms(userId));
|
model.addAttribute("sendPrice", kakaoSendUtil.selectSendPriceOfKakaoAtAndSmsAndMms(userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView";
|
// return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView";
|
||||||
// return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView_advcbackup_20250310";
|
return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView_advcbackup_20250310";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user