친구톡 발송속도 및 발송결과

This commit is contained in:
hehihoho3@gmail.com 2025-04-25 16:59:38 +09:00
parent 81d31fc55f
commit d730bdd76e
4 changed files with 78 additions and 1133 deletions

View File

@ -300,7 +300,7 @@ public class KakaoSendUtil {
//사용자 현재 보유 금액 불러오기(문자 발송 금액 차감 이전 금액)
// String befCash = kakaoVO.getBefCash();
log.info(" [{}]", kakaoVO.ftToString());
log.info("kakaoVO.ftToString() :: [{}]", kakaoVO.ftToString());
List<KakaoSendAdvcVO> kakaoSendAdvcListVO = new ArrayList<>();
Calendar calendar = setupBaseDate(kakaoVO, isNotified);
@ -310,6 +310,10 @@ public class KakaoSendUtil {
String templateContent = kakaoVO.getTemplateContent();
// 실패 대체 문자
String subMsgTxt = kakaoVO.getSubMsgTxt();
log.info(" + StringUtils.isNotEmpty(subMsgTxt) :: [{}]", StringUtils.isNotEmpty(subMsgTxt));
if(StringUtils.isNotEmpty(subMsgTxt)) {
kakaoVO.setSubMsgSendYn("Y");
}
// 시스템 기본 단가 정보 불러오기
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
@ -321,8 +325,6 @@ public class KakaoSendUtil {
Boolean replaceYN = MsgSendUtils.getReplaceYN(templateContent);
Boolean replaceSubYN = MsgSendUtils.getReplaceYN(subMsgTxt);
boolean hasPerformedMsgType = false; // 치환 문자가 없는 경우, 스팸 체크가 번만 수행되도록 제어
/** @MSGID KEY값 */
List<String> idList = mjonCommon.getNextCustomMsgCId(kakaoVO.getMjonFTSendVOList().size());
@ -348,15 +350,13 @@ public class KakaoSendUtil {
/** @jsonStr 필요유무 */
boolean hasTitleOrButtons = CollectionUtils.isNotEmpty(kakaoVO.getButtonVOList());
boolean hasButtons = CollectionUtils.isNotEmpty(kakaoVO.getButtonVOList());
String sharedJsonStr = null;
List<MjonFTSendVO> mjonFTSendVOList = kakaoVO.getMjonFTSendVOList();
// 분할 건수 카운터
int counter = 0;
for (int i = 0; i < mjonFTSendVOList.size(); i++) {
MjonFTSendVO mjonFTSendVO = mjonFTSendVOList.get(i);
@ -394,6 +394,7 @@ public class KakaoSendUtil {
if(StringUtils.isNotEmpty(subMsgTxt)) {
subMsgTxtTemp = subMsgTxt;
if(replaceSubYN) {
// 치환 구문을 확인하고 치환할 값이 없으면 오류 반환
for (Map.Entry<String, Function<MjonFTSendVO, String>> entry : placeholders.entrySet()) {
String placeholder = entry.getKey();
@ -407,6 +408,7 @@ public class KakaoSendUtil {
}
}
}
}
sendVO.setSubMsgTxt(subMsgTxtTemp);
@ -423,7 +425,6 @@ public class KakaoSendUtil {
boolean isMms = "MMS".equals(sendType);
sendVO.setEachPrice(isMms ? mmsPStr : shortPStr);
sendVO.setSubMsgTxt(subMsgTxt);// 실패
}else {
kakaoFtPrice = getValidPrice(mberManageVO.getKakaoAtPrice(), sysJoinSetVO.getKakaoAtPrice());
sendVO.setEachPrice( Float.toString(kakaoFtPrice) );
@ -431,7 +432,7 @@ public class KakaoSendUtil {
// 타이틀과 버튼이 있고
if(hasTitleOrButtons) {
if(hasButtons) {
//
if (StringUtils.isEmpty(sharedJsonStr)) {
// 치환 데이터가 없고 아직 생성되지 않았으면 번만 생성
@ -550,6 +551,7 @@ public class KakaoSendUtil {
sendVO.setTemplateCode(kakaoVO.getTemplateCode());
sendVO.setUserId(kakaoVO.getUserId());
sendVO.setCallFrom(kakaoVO.getCallFrom());
sendVO.setSubMsgSendYn(kakaoVO.getSubMsgSendYn());
return sendVO;
}
@ -1576,6 +1578,9 @@ public class KakaoSendUtil {
// log.info(" + insertKakaoGroupDataTb_advc kakaoVO :: \n[{}]", kakaoVO.toString());;
// log.info(" + insertKakaoGroupDataTb_advc kakaoSendAdvcVOList :: \n[{}]", sendVO.toString());
sendVO.setTemplateContent(kakaoVO.getTemplateContent());
sendVO.setMsgGroupCnt(Integer.toString(instCnt));
sendVO.setReserveYn(kakaoVO.getReserveYn());
sendVO.setBefCash(priceAndPoint.getBefCash(sendVO.getUserId()));

View File

@ -182,7 +182,6 @@ public class KakaoSentController {
//전체 발송 리스트 불러오기
List<KakaoSentVO> resultAllSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO);
System.out.println("??");
model.addAttribute("resultAllSentList", resultAllSentList);
// model.addAttribute("resultAllSentCnt", resultAllSentList.size());
@ -890,22 +889,21 @@ public class KakaoSentController {
KakaoReturnVO returnVO = new KakaoReturnVO();
try {
String tmpContent = kakaoATVO.getSmsTxtTrans();
String jsonFilePath = kakaoATVO.getBizKakaoJsonFile();
String jsonContents = kakaoATVO.getContents();
//친구톡 이미지 또는 버튼 정보가 있다면 실행
if(jsonFilePath != null && jsonFilePath.length() > 0) {
if(jsonContents != null && jsonContents.length() > 0) {
FileReader reader = new FileReader(jsonFilePath);
/*FileReader reader = new FileReader(jsonFilePath);
int ch;
String resultStr = "";
while ((ch = reader.read()) != -1) {
resultStr = resultStr + (char)ch;
}
*/
JSONParser parser = new JSONParser();
Object obj = parser.parse(resultStr);
Object obj = parser.parse(jsonContents);
JSONObject object = (JSONObject) obj;
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) {
e.printStackTrace();
@ -1037,10 +1035,14 @@ public class KakaoSentController {
try {
//발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(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();
@ -1071,8 +1073,12 @@ public class KakaoSentController {
model.addAttribute("kakaoTemplateInfo", "");
}
model.addAttribute("msgType", msgType);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return "web/kakao/sent/KakaoSentDetailPopAjax";
}
}

View File

@ -909,7 +909,7 @@
<!-- 발신 내용 상세보기 조회 (상세보기 버튼 클릭시)-->
<select id="KakaoSentDAO.selectKakaoSentDetailDataAjax" parameterClass="mjonKakaoATVO" resultClass="mjonKakaoATVO">
/* KakaoSentDAO.selectKakaoSentDetailDataAjax */
SELECT
MGD.MSG_GROUP_ID as msgGroupId
, MGD.USER_ID as userId
@ -925,9 +925,12 @@
, MD.BIZ_KAKAO_RESEND_DATA as bizKakaoResendData /* 대체 문자 (치환O) */
, MGD.BIZ_KAKAO_RESEND_ORGNL_TXT as bizKakaoResendOrgnlTxt /* 대체 문자( 치환X ) */
, MD.BIZ_KAKAO_JSON_FILE as bizKakaoJsonFile /* Json 파일 경로 */
, BA.CONTENTS as contents
FROM MJ_MSG_GROUP_DATA MGD
INNER JOIN MJ_MSG_DATA MD
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
WHERE
MGD.USER_ID = #userId#