알림톡 진행중
This commit is contained in:
parent
7b7b76b99f
commit
a74193673e
@ -1,13 +1,17 @@
|
||||
package itn.let.kakao.kakaoComm;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -72,11 +76,28 @@ public class KakaoSendUtil {
|
||||
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에 총 갯수가 수신자 갯수와 동일함
|
||||
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는 항상 설정).
|
||||
if (variables.containsKey("callToList")) {
|
||||
kakaoSendAdvcVO.setCallTo(variables.get("callToList"));
|
||||
sendVO.setCallTo(variables.get("callToList"));
|
||||
variables.remove("callToList"); // 사용 후 제거.
|
||||
}
|
||||
|
||||
@ -95,7 +116,7 @@ public class KakaoSendUtil {
|
||||
if ("Y".equals(kakaoVO.getTxtReplYn())) {
|
||||
templateContent = replaceTemplateVariables(templateContent, variables);
|
||||
}
|
||||
kakaoSendAdvcVO.setTemplateContent(templateContent);
|
||||
sendVO.setTemplateContent(templateContent);
|
||||
|
||||
|
||||
// Step 1-4: 실패 대체 문자 치환데이터 설정
|
||||
@ -105,7 +126,7 @@ public class KakaoSendUtil {
|
||||
if ("Y".equals(kakaoVO.getSubMsgTxtReplYn())) {
|
||||
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",
|
||||
@ -116,6 +137,10 @@ public class KakaoSendUtil {
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// step3
|
||||
// 바이트 수 체크 및 금액설정
|
||||
|
||||
// 시스템 기본 단가 정보 불러오기
|
||||
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
|
||||
|
||||
@ -132,7 +157,7 @@ public class KakaoSendUtil {
|
||||
|
||||
|
||||
if("Y".equals(kakaoVO.getSubMsgSendYn())) {
|
||||
int smsTxtByte = mjonCommon.getSmsTxtBytes(kakaoSendAdvcVO.getSubMsgTxt());
|
||||
int smsTxtByte = mjonCommon.getSmsTxtBytes(sendVO.getSubMsgTxt());
|
||||
|
||||
String sendType = getMsgType(smsTxtByte);
|
||||
|
||||
@ -152,11 +177,28 @@ public class KakaoSendUtil {
|
||||
|
||||
|
||||
|
||||
// step3
|
||||
// 바이트 수 체크 ==> 실패 성공
|
||||
|
||||
// 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
|
||||
// 전송 메세지 설정 kakaoSendMsg 참고
|
||||
@ -164,8 +206,8 @@ public class KakaoSendUtil {
|
||||
|
||||
|
||||
// kakaoSendAdvcVO.setSendType("AT");
|
||||
kakaoSendAdvcVO.setMsgType("8");
|
||||
kakaoSendAdvcVO.setUserId(kakaoVO.getUserId());
|
||||
sendVO.setMsgType("8");
|
||||
sendVO.setUserId(kakaoVO.getUserId());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -220,8 +220,8 @@ public class KakaoAlimTalkSendController {
|
||||
model.addAttribute("sendPrice", kakaoSendUtil.selectSendPriceOfKakaoAtAndSmsAndMms(userId));
|
||||
}
|
||||
|
||||
return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView";
|
||||
// return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView_advcbackup_20250310";
|
||||
// return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView";
|
||||
return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView_advcbackup_20250310";
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user