발송결과 카카오톡 상세보기 팝업 친구톡 내용 표시 기능 개발
This commit is contained in:
parent
c6c05ddd71
commit
2fdf104101
@ -149,6 +149,7 @@ public class MjonKakaoATVO extends ComDefaultVO{
|
||||
private String bizKakaoResendOrgnlTxt; /* 대체 문자( 치환X ) */
|
||||
private String bizKakaoResendYn; /* 대체 문자 사용 여부*/
|
||||
private String bizKakaoResendType; /* 대체 문자 길이 => MMS / LMS / SMS */
|
||||
private String bizKakaoJsonFile; //카카오 친구톡 Json 파일 경로
|
||||
|
||||
|
||||
public String getMsgDiv() {
|
||||
@ -1266,5 +1267,11 @@ public class MjonKakaoATVO extends ComDefaultVO{
|
||||
public void setBizKakaoResendType(String bizKakaoResendType) {
|
||||
this.bizKakaoResendType = bizKakaoResendType;
|
||||
}
|
||||
public String getBizKakaoJsonFile() {
|
||||
return bizKakaoJsonFile;
|
||||
}
|
||||
public void setBizKakaoJsonFile(String bizKakaoJsonFile) {
|
||||
this.bizKakaoJsonFile = bizKakaoJsonFile;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package itn.let.kakao.user.sent.web;
|
||||
|
||||
import java.io.FileReader;
|
||||
import java.io.OutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
@ -19,6 +20,9 @@ import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -35,6 +39,7 @@ import itn.com.cmm.util.StringUtil;
|
||||
import itn.com.cmm.util.StringUtil2;
|
||||
import itn.com.utl.fcc.service.EgovStringUtil;
|
||||
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATVO;
|
||||
import itn.let.kakao.kakaoComm.KakaoButtonVO;
|
||||
import itn.let.kakao.kakaoComm.KakaoReturnVO;
|
||||
import itn.let.kakao.kakaoComm.KakaoVO;
|
||||
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate;
|
||||
@ -220,16 +225,36 @@ public class KakaoSentController {
|
||||
mjonKakaoATResultVO.setSmsTxt(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxt()));
|
||||
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
||||
|
||||
// 템플릿 api 가져오기
|
||||
KakaoVO kakaoVO = new KakaoVO();
|
||||
kakaoVO.setSenderKey(mjonKakaoATResultVO.getMsgNoticetalkSenderKey());
|
||||
kakaoVO.setTemplateCode(mjonKakaoATResultVO.getMsgNoticetalkTmpKey());
|
||||
String msgType = mjonKakaoATResultVO.getMsgType();
|
||||
|
||||
KakaoReturnVO kakaoTemplateInfo =kakaoApiTemplate.selectKakaoApiTemplateDetail(kakaoVO);
|
||||
if(msgType.equals("8")) {//카카오 알림톡인 경우 상세정보 처리
|
||||
|
||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
||||
// //템플릿 api 가져오기
|
||||
// 템플릿 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);
|
||||
return "web/kakao/sent/KakaoSentDetailPopAjax";
|
||||
}
|
||||
|
||||
@ -254,28 +279,46 @@ public class KakaoSentController {
|
||||
|
||||
//발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(MJ_MSG_DATA)
|
||||
MjonKakaoATVO mjonKakaoATResultVO = kakaoSentService.selectKakaoSentDetailData2Ajax(mjonKakaoATVO);
|
||||
// 대체문자 엔터키 치환
|
||||
mjonKakaoATResultVO.setSmsTxtTrans(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxtTrans()));
|
||||
|
||||
// 강조형 타이틀이 있는지 없는지 구분
|
||||
if(StringUtil.isNotEmpty(mjonKakaoATResultVO.getBizKakaoTitle()))
|
||||
{
|
||||
String[] temp = mjonKakaoATResultVO.getBizKakaoTitle().split("§§");
|
||||
mjonKakaoATResultVO.setBizKakaoTitle01(temp[0]);
|
||||
mjonKakaoATResultVO.setBizKakaoTitle02(temp[1]);
|
||||
String msgType = mjonKakaoATResultVO.getMsgType();
|
||||
|
||||
if(msgType.equals("8")) {
|
||||
|
||||
// 대체문자 엔터키 치환
|
||||
mjonKakaoATResultVO.setSmsTxtTrans(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxtTrans()));
|
||||
|
||||
// 강조형 타이틀이 있는지 없는지 구분
|
||||
if(StringUtil.isNotEmpty(mjonKakaoATResultVO.getBizKakaoTitle()))
|
||||
{
|
||||
String[] temp = mjonKakaoATResultVO.getBizKakaoTitle().split("§§");
|
||||
mjonKakaoATResultVO.setBizKakaoTitle01(temp[0]);
|
||||
mjonKakaoATResultVO.setBizKakaoTitle02(temp[1]);
|
||||
}
|
||||
|
||||
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
||||
|
||||
// 템플릿 api 가져오기
|
||||
KakaoVO kakaoVO = new KakaoVO();
|
||||
kakaoVO.setSenderKey(mjonKakaoATResultVO.getMsgNoticetalkSenderKey());
|
||||
kakaoVO.setTemplateCode(mjonKakaoATResultVO.getMsgNoticetalkTmpKey());
|
||||
|
||||
KakaoReturnVO kakaoTemplateInfo =kakaoApiTemplate.selectKakaoApiTemplateDetail(kakaoVO);
|
||||
|
||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
||||
|
||||
}else if(msgType.equals("9")) {
|
||||
|
||||
KakaoReturnVO kakaoTemplateInfo = getKakaoFTSendTemplateInfo(mjonKakaoATResultVO);
|
||||
|
||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
||||
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
||||
|
||||
}else {
|
||||
|
||||
model.addAttribute("kakaoTemplateInfo", "");
|
||||
|
||||
}
|
||||
|
||||
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
||||
|
||||
// 템플릿 api 가져오기
|
||||
KakaoVO kakaoVO = new KakaoVO();
|
||||
kakaoVO.setSenderKey(mjonKakaoATResultVO.getMsgNoticetalkSenderKey());
|
||||
kakaoVO.setTemplateCode(mjonKakaoATResultVO.getMsgNoticetalkTmpKey());
|
||||
|
||||
KakaoReturnVO kakaoTemplateInfo =kakaoApiTemplate.selectKakaoApiTemplateDetail(kakaoVO);
|
||||
|
||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
||||
|
||||
return "web/kakao/sent/KakaoSentDetailPop2Ajax";
|
||||
}
|
||||
|
||||
@ -823,4 +866,100 @@ public class KakaoSentController {
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 20240122 우영두 추가
|
||||
* 친구톡 발송 결과 내용 팝업 처리
|
||||
* 발송 내용 처리 및 첨부 이미지, 버튼 정보 처리
|
||||
*
|
||||
* */
|
||||
public KakaoReturnVO getKakaoFTSendTemplateInfo(MjonKakaoATVO kakaoATVO) throws Exception {
|
||||
|
||||
KakaoReturnVO returnVO = new KakaoReturnVO();
|
||||
try {
|
||||
|
||||
String tmpContent = kakaoATVO.getSmsTxtTrans();
|
||||
String jsonFilePath = kakaoATVO.getBizKakaoJsonFile();
|
||||
|
||||
//친구톡 이미지 또는 버튼 정보가 있다면 실행
|
||||
if(jsonFilePath != null && jsonFilePath.length() > 0) {
|
||||
|
||||
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);
|
||||
JSONObject object = (JSONObject) obj;
|
||||
|
||||
String image = (object.get("image") == null) ? null : object.get("image").toString();
|
||||
String button = (object.get("button") == null) ? null : object.get("button").toString();
|
||||
|
||||
if(image != null) {
|
||||
|
||||
Object imagObj = parser.parse(image);
|
||||
JSONObject jsonImgObj = (JSONObject) imagObj;
|
||||
|
||||
System.out.println(jsonImgObj.toJSONString());
|
||||
|
||||
String imgUrl = (jsonImgObj.get("img_url") == null) ? null : jsonImgObj.get("img_url").toString();
|
||||
|
||||
System.out.println(imgUrl);
|
||||
|
||||
returnVO.setTemplateEmphasizeType("IMAGE");
|
||||
returnVO.setTemplateImageUrl(imgUrl);
|
||||
|
||||
}
|
||||
|
||||
if(button != null) {
|
||||
|
||||
JSONArray buttonJsonList = (JSONArray) object.get("button");
|
||||
|
||||
System.out.println(buttonJsonList.size());
|
||||
|
||||
List<KakaoButtonVO> buttonList = new ArrayList<KakaoButtonVO>();
|
||||
|
||||
for(int i=0; i < buttonJsonList.size(); i++) {
|
||||
|
||||
JSONObject itemInfo = (JSONObject)buttonJsonList.get(i);
|
||||
|
||||
String name = itemInfo.get("name").toString();
|
||||
|
||||
System.out.println(name);
|
||||
|
||||
KakaoButtonVO buttonVO = new KakaoButtonVO();
|
||||
|
||||
buttonVO.setName(name);
|
||||
|
||||
buttonList.add(buttonVO);
|
||||
|
||||
}
|
||||
|
||||
returnVO.setButtonList(buttonList);
|
||||
|
||||
for(KakaoButtonVO butVO : returnVO.getButtonList()) {
|
||||
|
||||
System.out.println("+++++++++++++ btn name ::: "+butVO.getName());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//친구톡 내용 셋팅
|
||||
returnVO.setTemplateContent(tmpContent);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return returnVO;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -902,6 +902,7 @@
|
||||
SELECT
|
||||
MGD.MSG_GROUP_ID as msgGroupId
|
||||
, MGD.USER_ID as userId
|
||||
, MD.MSG_TYPE as msgType
|
||||
, MD.REQ_DATE as reqDate /* 발송 시간 */
|
||||
, MD.MSG_NOTICETALK_SENDER_KEY as msgNoticetalkSenderKey /* api key */
|
||||
, MD.MSG_NOTICETALK_TMP_KEY as msgNoticetalkTmpKey /* 특정 템플릿 key */
|
||||
@ -912,6 +913,7 @@
|
||||
, MD.BIZ_KAKAO_RESEND_TYPE as bizKakaoResendType /* MMS / LMS / SMS */
|
||||
, 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 파일 경로 */
|
||||
FROM MJ_MSG_GROUP_DATA MGD
|
||||
INNER JOIN MJ_MSG_DATA MD
|
||||
ON MGD.MSG_GROUP_ID = MD.MSG_GROUP_ID
|
||||
@ -928,6 +930,7 @@
|
||||
|
||||
SELECT
|
||||
MD.REQ_DATE as reqDate /* 발송 시간 */
|
||||
, MD.MSG_TYPE as msgType
|
||||
, MD.MSG_NOTICETALK_SENDER_KEY as msgNoticetalkSenderKey /* api key */
|
||||
, MD.MSG_NOTICETALK_TMP_KEY as msgNoticetalkTmpKey /* 특정 템플릿 key */
|
||||
, MD.SMS_TXT as smsTxtTrans /* 알림톡 본문 내용 치환(O)*/
|
||||
@ -935,6 +938,7 @@
|
||||
, MD.BIZ_KAKAO_RESEND_YN as bizKakaoResendYn /* 대체 문자 사용 여부*/
|
||||
, MD.BIZ_KAKAO_RESEND_TYPE as bizKakaoResendType /* MMS / LMS / SMS */
|
||||
, MD.BIZ_KAKAO_RESEND_DATA as bizKakaoResendData /* 대체 문자 (치환O) */
|
||||
, MD.BIZ_KAKAO_JSON_FILE as bizKakaoJsonFile /* Json 파일 경로 */
|
||||
FROM MJ_MSG_DATA MD
|
||||
WHERE
|
||||
MD.MSG_ID = #msgId#
|
||||
|
||||
@ -19,12 +19,33 @@
|
||||
<div class="rev_pop_in">
|
||||
<div class="rev_pop_middle clearfix">
|
||||
<span><c:out value="${resultMsgDetail.reqDate }" /></span>
|
||||
<span class="msg_com msg_allimtalk">알림톡</span>
|
||||
<span class="msg_com msg_allimtalk">
|
||||
<c:choose>
|
||||
<c:when test="${msgType eq '8'}">
|
||||
알림톡
|
||||
</c:when>
|
||||
<c:when test="${msgType eq '9'}">
|
||||
친구톡
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</span>
|
||||
</div>
|
||||
<div class="rev_pop_txt">
|
||||
<div class="text_preview">
|
||||
<div class="allimtalk_title">
|
||||
<img src="/publish/images/content/icon_allimtalk.png" alt="">알림톡 도착
|
||||
<img src="/publish/images/content/icon_allimtalk.png" alt="">
|
||||
<c:choose>
|
||||
<c:when test="${msgType eq '8'}">
|
||||
알림톡 도착
|
||||
</c:when>
|
||||
<c:when test="${msgType eq '9'}">
|
||||
친구톡 도착
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</div>
|
||||
<div class="allimtalk_content">
|
||||
<!-- 강조 텍스트 -->
|
||||
|
||||
@ -946,7 +946,11 @@ function infoPop(pageUrl){
|
||||
<ul class="list_tab">
|
||||
<li class="tab active"><button type="button" onclick="fnTabLoad('',0); return false;">전체</button></li>
|
||||
<li class="tab"><button type="button" onclick="fnTabLoad('at', 1); return false;">알림톡</button></li>
|
||||
<!-- <li class="tab"><button type="button" onclick="fnTabLoad('ft', 2); return false;">친구톡</button></li> -->
|
||||
<c:if test="${fn:contains(pageContext.request.requestURL , 'localhost')
|
||||
|| fn:contains(pageContext.request.requestURL , '192.168.0.33')
|
||||
|| fn:contains(pageContext.request.requestURL , '119.193.215.98')}">
|
||||
<li class="tab"><button type="button" onclick="fnTabLoad('ft', 2); return false;">친구톡</button></li>
|
||||
</c:if>
|
||||
</ul><!--// tab button -->
|
||||
</div>
|
||||
<!-- 예약관리 > 전체 -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user