친구톡 발송속도 및 발송결과
This commit is contained in:
parent
81d31fc55f
commit
d730bdd76e
File diff suppressed because it is too large
Load Diff
@ -300,7 +300,7 @@ public class KakaoSendUtil {
|
|||||||
//사용자 현재 보유 금액 불러오기(문자 발송 금액 차감 이전 금액)
|
//사용자 현재 보유 금액 불러오기(문자 발송 금액 차감 이전 금액)
|
||||||
// String befCash = kakaoVO.getBefCash();
|
// String befCash = kakaoVO.getBefCash();
|
||||||
|
|
||||||
log.info(" [{}]", kakaoVO.ftToString());
|
log.info("kakaoVO.ftToString() :: [{}]", kakaoVO.ftToString());
|
||||||
|
|
||||||
List<KakaoSendAdvcVO> kakaoSendAdvcListVO = new ArrayList<>();
|
List<KakaoSendAdvcVO> kakaoSendAdvcListVO = new ArrayList<>();
|
||||||
Calendar calendar = setupBaseDate(kakaoVO, isNotified);
|
Calendar calendar = setupBaseDate(kakaoVO, isNotified);
|
||||||
@ -310,6 +310,10 @@ public class KakaoSendUtil {
|
|||||||
String templateContent = kakaoVO.getTemplateContent();
|
String templateContent = kakaoVO.getTemplateContent();
|
||||||
// 실패 대체 문자
|
// 실패 대체 문자
|
||||||
String subMsgTxt = kakaoVO.getSubMsgTxt();
|
String subMsgTxt = kakaoVO.getSubMsgTxt();
|
||||||
|
log.info(" + StringUtils.isNotEmpty(subMsgTxt) :: [{}]", StringUtils.isNotEmpty(subMsgTxt));
|
||||||
|
if(StringUtils.isNotEmpty(subMsgTxt)) {
|
||||||
|
kakaoVO.setSubMsgSendYn("Y");
|
||||||
|
}
|
||||||
|
|
||||||
// 시스템 기본 단가 정보 불러오기
|
// 시스템 기본 단가 정보 불러오기
|
||||||
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
|
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
|
||||||
@ -321,8 +325,6 @@ public class KakaoSendUtil {
|
|||||||
Boolean replaceYN = MsgSendUtils.getReplaceYN(templateContent);
|
Boolean replaceYN = MsgSendUtils.getReplaceYN(templateContent);
|
||||||
Boolean replaceSubYN = MsgSendUtils.getReplaceYN(subMsgTxt);
|
Boolean replaceSubYN = MsgSendUtils.getReplaceYN(subMsgTxt);
|
||||||
|
|
||||||
boolean hasPerformedMsgType = false; // 치환 문자가 없는 경우, 스팸 체크가 한 번만 수행되도록 제어
|
|
||||||
|
|
||||||
|
|
||||||
/** @MSGID KEY값 */
|
/** @MSGID KEY값 */
|
||||||
List<String> idList = mjonCommon.getNextCustomMsgCId(kakaoVO.getMjonFTSendVOList().size());
|
List<String> idList = mjonCommon.getNextCustomMsgCId(kakaoVO.getMjonFTSendVOList().size());
|
||||||
@ -348,15 +350,13 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
|
|
||||||
/** @jsonStr 필요유무 */
|
/** @jsonStr 필요유무 */
|
||||||
boolean hasTitleOrButtons = CollectionUtils.isNotEmpty(kakaoVO.getButtonVOList());
|
boolean hasButtons = CollectionUtils.isNotEmpty(kakaoVO.getButtonVOList());
|
||||||
String sharedJsonStr = null;
|
String sharedJsonStr = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<MjonFTSendVO> mjonFTSendVOList = kakaoVO.getMjonFTSendVOList();
|
List<MjonFTSendVO> mjonFTSendVOList = kakaoVO.getMjonFTSendVOList();
|
||||||
|
|
||||||
// 분할 건수 카운터
|
|
||||||
int counter = 0;
|
|
||||||
for (int i = 0; i < mjonFTSendVOList.size(); i++) {
|
for (int i = 0; i < mjonFTSendVOList.size(); i++) {
|
||||||
MjonFTSendVO mjonFTSendVO = mjonFTSendVOList.get(i);
|
MjonFTSendVO mjonFTSendVO = mjonFTSendVOList.get(i);
|
||||||
|
|
||||||
@ -394,16 +394,18 @@ public class KakaoSendUtil {
|
|||||||
if(StringUtils.isNotEmpty(subMsgTxt)) {
|
if(StringUtils.isNotEmpty(subMsgTxt)) {
|
||||||
subMsgTxtTemp = subMsgTxt;
|
subMsgTxtTemp = subMsgTxt;
|
||||||
|
|
||||||
// 각 치환 구문을 확인하고 치환할 값이 없으면 오류 반환
|
if(replaceSubYN) {
|
||||||
for (Map.Entry<String, Function<MjonFTSendVO, String>> entry : placeholders.entrySet()) {
|
// 각 치환 구문을 확인하고 치환할 값이 없으면 오류 반환
|
||||||
String placeholder = entry.getKey();
|
for (Map.Entry<String, Function<MjonFTSendVO, String>> entry : placeholders.entrySet()) {
|
||||||
String value = entry.getValue().apply(mjonFTSendVO);
|
String placeholder = entry.getKey();
|
||||||
if (subMsgTxtTemp.contains(placeholder)) {
|
String value = entry.getValue().apply(mjonFTSendVO);
|
||||||
if (StringUtils.isEmpty(value)) {
|
if (subMsgTxtTemp.contains(placeholder)) {
|
||||||
statusResponseSet(statusResponse, HttpStatus.BAD_REQUEST, "치환 문구중 " + placeholder + " 데이터가 없습니다.");
|
if (StringUtils.isEmpty(value)) {
|
||||||
return null;
|
statusResponseSet(statusResponse, HttpStatus.BAD_REQUEST, "치환 문구중 " + placeholder + " 데이터가 없습니다.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
subMsgTxtTemp = subMsgTxtTemp.replace(placeholder, value);
|
||||||
}
|
}
|
||||||
subMsgTxtTemp = subMsgTxtTemp.replace(placeholder, value);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -423,7 +425,6 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
boolean isMms = "MMS".equals(sendType);
|
boolean isMms = "MMS".equals(sendType);
|
||||||
sendVO.setEachPrice(isMms ? mmsPStr : shortPStr);
|
sendVO.setEachPrice(isMms ? mmsPStr : shortPStr);
|
||||||
sendVO.setSubMsgTxt(subMsgTxt);// 실패
|
|
||||||
}else {
|
}else {
|
||||||
kakaoFtPrice = getValidPrice(mberManageVO.getKakaoAtPrice(), sysJoinSetVO.getKakaoAtPrice());
|
kakaoFtPrice = getValidPrice(mberManageVO.getKakaoAtPrice(), sysJoinSetVO.getKakaoAtPrice());
|
||||||
sendVO.setEachPrice( Float.toString(kakaoFtPrice) );
|
sendVO.setEachPrice( Float.toString(kakaoFtPrice) );
|
||||||
@ -431,7 +432,7 @@ public class KakaoSendUtil {
|
|||||||
|
|
||||||
|
|
||||||
// 타이틀과 버튼이 있고
|
// 타이틀과 버튼이 있고
|
||||||
if(hasTitleOrButtons) {
|
if(hasButtons) {
|
||||||
//
|
//
|
||||||
if (StringUtils.isEmpty(sharedJsonStr)) {
|
if (StringUtils.isEmpty(sharedJsonStr)) {
|
||||||
// 치환 데이터가 없고 아직 생성되지 않았으면 한 번만 생성
|
// 치환 데이터가 없고 아직 생성되지 않았으면 한 번만 생성
|
||||||
@ -550,6 +551,7 @@ public class KakaoSendUtil {
|
|||||||
sendVO.setTemplateCode(kakaoVO.getTemplateCode());
|
sendVO.setTemplateCode(kakaoVO.getTemplateCode());
|
||||||
sendVO.setUserId(kakaoVO.getUserId());
|
sendVO.setUserId(kakaoVO.getUserId());
|
||||||
sendVO.setCallFrom(kakaoVO.getCallFrom());
|
sendVO.setCallFrom(kakaoVO.getCallFrom());
|
||||||
|
sendVO.setSubMsgSendYn(kakaoVO.getSubMsgSendYn());
|
||||||
return sendVO;
|
return sendVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1576,6 +1578,9 @@ public class KakaoSendUtil {
|
|||||||
// log.info(" + insertKakaoGroupDataTb_advc kakaoVO :: \n[{}]", kakaoVO.toString());;
|
// log.info(" + insertKakaoGroupDataTb_advc kakaoVO :: \n[{}]", kakaoVO.toString());;
|
||||||
// log.info(" + insertKakaoGroupDataTb_advc kakaoSendAdvcVOList :: \n[{}]", sendVO.toString());
|
// log.info(" + insertKakaoGroupDataTb_advc kakaoSendAdvcVOList :: \n[{}]", sendVO.toString());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sendVO.setTemplateContent(kakaoVO.getTemplateContent());
|
||||||
sendVO.setMsgGroupCnt(Integer.toString(instCnt));
|
sendVO.setMsgGroupCnt(Integer.toString(instCnt));
|
||||||
sendVO.setReserveYn(kakaoVO.getReserveYn());
|
sendVO.setReserveYn(kakaoVO.getReserveYn());
|
||||||
sendVO.setBefCash(priceAndPoint.getBefCash(sendVO.getUserId()));
|
sendVO.setBefCash(priceAndPoint.getBefCash(sendVO.getUserId()));
|
||||||
|
|||||||
@ -182,7 +182,6 @@ public class KakaoSentController {
|
|||||||
|
|
||||||
//전체 발송 리스트 불러오기
|
//전체 발송 리스트 불러오기
|
||||||
List<KakaoSentVO> resultAllSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO);
|
List<KakaoSentVO> resultAllSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO);
|
||||||
System.out.println("??");
|
|
||||||
model.addAttribute("resultAllSentList", resultAllSentList);
|
model.addAttribute("resultAllSentList", resultAllSentList);
|
||||||
// model.addAttribute("resultAllSentCnt", resultAllSentList.size());
|
// model.addAttribute("resultAllSentCnt", resultAllSentList.size());
|
||||||
|
|
||||||
@ -890,22 +889,21 @@ public class KakaoSentController {
|
|||||||
KakaoReturnVO returnVO = new KakaoReturnVO();
|
KakaoReturnVO returnVO = new KakaoReturnVO();
|
||||||
try {
|
try {
|
||||||
|
|
||||||
String tmpContent = kakaoATVO.getSmsTxtTrans();
|
String jsonContents = kakaoATVO.getContents();
|
||||||
String jsonFilePath = kakaoATVO.getBizKakaoJsonFile();
|
|
||||||
|
|
||||||
//친구톡 이미지 또는 버튼 정보가 있다면 실행
|
//친구톡 이미지 또는 버튼 정보가 있다면 실행
|
||||||
if(jsonFilePath != null && jsonFilePath.length() > 0) {
|
if(jsonContents != null && jsonContents.length() > 0) {
|
||||||
|
|
||||||
FileReader reader = new FileReader(jsonFilePath);
|
/*FileReader reader = new FileReader(jsonFilePath);
|
||||||
int ch;
|
int ch;
|
||||||
String resultStr = "";
|
String resultStr = "";
|
||||||
while ((ch = reader.read()) != -1) {
|
while ((ch = reader.read()) != -1) {
|
||||||
|
|
||||||
resultStr = resultStr + (char)ch;
|
resultStr = resultStr + (char)ch;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
JSONParser parser = new JSONParser();
|
JSONParser parser = new JSONParser();
|
||||||
Object obj = parser.parse(resultStr);
|
Object obj = parser.parse(jsonContents);
|
||||||
JSONObject object = (JSONObject) obj;
|
JSONObject object = (JSONObject) obj;
|
||||||
|
|
||||||
String image = (object.get("image") == null) ? null : object.get("image").toString();
|
String image = (object.get("image") == null) ? null : object.get("image").toString();
|
||||||
@ -964,7 +962,7 @@ public class KakaoSentController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//친구톡 내용 셋팅
|
//친구톡 내용 셋팅
|
||||||
returnVO.setTemplateContent(tmpContent);
|
returnVO.setTemplateContent(kakaoATVO.getSmsTxt());
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -1037,42 +1035,50 @@ public class KakaoSentController {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(MJ_MSG_DATA)
|
try {
|
||||||
MjonKakaoATVO mjonKakaoATResultVO = kakaoSentService.selectKakaoSentDetailDataAjax(mjonKakaoATVO);
|
|
||||||
// 대체문자 엔터키 치환
|
|
||||||
mjonKakaoATResultVO.setSmsTxt(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxt()));
|
|
||||||
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
|
||||||
|
|
||||||
String msgType = mjonKakaoATResultVO.getMsgType();
|
//발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(MJ_MSG_DATA)
|
||||||
|
MjonKakaoATVO mjonKakaoATResultVO = kakaoSentService.selectKakaoSentDetailDataAjax(mjonKakaoATVO);
|
||||||
|
// 대체문자 엔터키 치환
|
||||||
|
if(StringUtils.isNotEmpty(mjonKakaoATResultVO.getSmsTxt())) {
|
||||||
|
mjonKakaoATResultVO.setSmsTxt(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxt()));
|
||||||
|
}
|
||||||
|
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
||||||
|
|
||||||
|
String msgType = mjonKakaoATResultVO.getMsgType();
|
||||||
|
|
||||||
|
if(msgType.equals("8")) {//카카오 알림톡인 경우 상세정보 처리
|
||||||
|
|
||||||
|
// 템플릿 api 가져오기
|
||||||
|
KakaoVO kakaoVO = new KakaoVO();
|
||||||
|
kakaoVO.setSenderKey(mjonKakaoATResultVO.getMsgNoticetalkSenderKey());
|
||||||
|
kakaoVO.setTemplateCode(mjonKakaoATResultVO.getMsgNoticetalkTmpKey());
|
||||||
|
|
||||||
|
KakaoReturnVO kakaoTemplateInfo =kakaoApiTemplate.selectKakaoApiTemplateDetail(kakaoVO);
|
||||||
|
|
||||||
|
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
||||||
|
// //템플릿 api 가져오기
|
||||||
|
|
||||||
|
}else if(msgType.equals("9")) {//카카오 친구톡인 경우 상세정보 처리
|
||||||
|
|
||||||
|
//String smsTxt = mjonKakaoATResultVO.getSmsTxt();
|
||||||
|
|
||||||
|
KakaoReturnVO kakaoTemplateInfo = getKakaoFTSendTemplateInfo(mjonKakaoATResultVO);
|
||||||
|
//kakaoTemplateInfo.setTemplateContent(smsTxt);
|
||||||
|
|
||||||
|
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
||||||
|
|
||||||
|
}else {
|
||||||
|
|
||||||
|
model.addAttribute("kakaoTemplateInfo", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
model.addAttribute("msgType", msgType);
|
||||||
|
|
||||||
if(msgType.equals("8")) {//카카오 알림톡인 경우 상세정보 처리
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
// 템플릿 api 가져오기
|
// TODO: handle exception
|
||||||
KakaoVO kakaoVO = new KakaoVO();
|
|
||||||
kakaoVO.setSenderKey(mjonKakaoATResultVO.getMsgNoticetalkSenderKey());
|
|
||||||
kakaoVO.setTemplateCode(mjonKakaoATResultVO.getMsgNoticetalkTmpKey());
|
|
||||||
|
|
||||||
KakaoReturnVO kakaoTemplateInfo =kakaoApiTemplate.selectKakaoApiTemplateDetail(kakaoVO);
|
|
||||||
|
|
||||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
|
||||||
// //템플릿 api 가져오기
|
|
||||||
|
|
||||||
}else if(msgType.equals("9")) {//카카오 친구톡인 경우 상세정보 처리
|
|
||||||
|
|
||||||
//String smsTxt = mjonKakaoATResultVO.getSmsTxt();
|
|
||||||
|
|
||||||
KakaoReturnVO kakaoTemplateInfo = getKakaoFTSendTemplateInfo(mjonKakaoATResultVO);
|
|
||||||
//kakaoTemplateInfo.setTemplateContent(smsTxt);
|
|
||||||
|
|
||||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
|
||||||
|
|
||||||
}else {
|
|
||||||
|
|
||||||
model.addAttribute("kakaoTemplateInfo", "");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
model.addAttribute("msgType", msgType);
|
|
||||||
return "web/kakao/sent/KakaoSentDetailPopAjax";
|
return "web/kakao/sent/KakaoSentDetailPopAjax";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -909,7 +909,7 @@
|
|||||||
|
|
||||||
<!-- 발신 내용 상세보기 조회 (상세보기 버튼 클릭시)-->
|
<!-- 발신 내용 상세보기 조회 (상세보기 버튼 클릭시)-->
|
||||||
<select id="KakaoSentDAO.selectKakaoSentDetailDataAjax" parameterClass="mjonKakaoATVO" resultClass="mjonKakaoATVO">
|
<select id="KakaoSentDAO.selectKakaoSentDetailDataAjax" parameterClass="mjonKakaoATVO" resultClass="mjonKakaoATVO">
|
||||||
|
/* KakaoSentDAO.selectKakaoSentDetailDataAjax */
|
||||||
SELECT
|
SELECT
|
||||||
MGD.MSG_GROUP_ID as msgGroupId
|
MGD.MSG_GROUP_ID as msgGroupId
|
||||||
, MGD.USER_ID as userId
|
, MGD.USER_ID as userId
|
||||||
@ -925,9 +925,12 @@
|
|||||||
, MD.BIZ_KAKAO_RESEND_DATA as bizKakaoResendData /* 대체 문자 (치환O) */
|
, MD.BIZ_KAKAO_RESEND_DATA as bizKakaoResendData /* 대체 문자 (치환O) */
|
||||||
, MGD.BIZ_KAKAO_RESEND_ORGNL_TXT as bizKakaoResendOrgnlTxt /* 대체 문자( 치환X ) */
|
, MGD.BIZ_KAKAO_RESEND_ORGNL_TXT as bizKakaoResendOrgnlTxt /* 대체 문자( 치환X ) */
|
||||||
, MD.BIZ_KAKAO_JSON_FILE as bizKakaoJsonFile /* Json 파일 경로 */
|
, MD.BIZ_KAKAO_JSON_FILE as bizKakaoJsonFile /* Json 파일 경로 */
|
||||||
|
, BA.CONTENTS as contents
|
||||||
FROM MJ_MSG_GROUP_DATA MGD
|
FROM MJ_MSG_GROUP_DATA MGD
|
||||||
INNER JOIN MJ_MSG_DATA MD
|
INNER JOIN MJ_MSG_DATA MD
|
||||||
ON MGD.MSG_GROUP_ID = MD.MSG_GROUP_ID
|
ON MGD.MSG_GROUP_ID = MD.MSG_GROUP_ID
|
||||||
|
LEFT JOIN BIZ_ATTACHMENTS BA
|
||||||
|
ON MD.BIZ_KAKAO_JSON_FILE = BA.MSG_KEY
|
||||||
AND MGD.USER_ID = MD.USER_ID
|
AND MGD.USER_ID = MD.USER_ID
|
||||||
WHERE
|
WHERE
|
||||||
MGD.USER_ID = #userId#
|
MGD.USER_ID = #userId#
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user