발송결과 카카오톡 상세보기 팝업 친구톡 내용 표시 기능 개발
This commit is contained in:
parent
c6c05ddd71
commit
2fdf104101
@ -149,6 +149,7 @@ public class MjonKakaoATVO extends ComDefaultVO{
|
|||||||
private String bizKakaoResendOrgnlTxt; /* 대체 문자( 치환X ) */
|
private String bizKakaoResendOrgnlTxt; /* 대체 문자( 치환X ) */
|
||||||
private String bizKakaoResendYn; /* 대체 문자 사용 여부*/
|
private String bizKakaoResendYn; /* 대체 문자 사용 여부*/
|
||||||
private String bizKakaoResendType; /* 대체 문자 길이 => MMS / LMS / SMS */
|
private String bizKakaoResendType; /* 대체 문자 길이 => MMS / LMS / SMS */
|
||||||
|
private String bizKakaoJsonFile; //카카오 친구톡 Json 파일 경로
|
||||||
|
|
||||||
|
|
||||||
public String getMsgDiv() {
|
public String getMsgDiv() {
|
||||||
@ -1266,5 +1267,11 @@ public class MjonKakaoATVO extends ComDefaultVO{
|
|||||||
public void setBizKakaoResendType(String bizKakaoResendType) {
|
public void setBizKakaoResendType(String bizKakaoResendType) {
|
||||||
this.bizKakaoResendType = 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;
|
package itn.let.kakao.user.sent.web;
|
||||||
|
|
||||||
|
import java.io.FileReader;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
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.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.cmm.util.StringUtil2;
|
||||||
import itn.com.utl.fcc.service.EgovStringUtil;
|
import itn.com.utl.fcc.service.EgovStringUtil;
|
||||||
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATVO;
|
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.KakaoReturnVO;
|
||||||
import itn.let.kakao.kakaoComm.KakaoVO;
|
import itn.let.kakao.kakaoComm.KakaoVO;
|
||||||
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate;
|
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate;
|
||||||
@ -220,6 +225,10 @@ public class KakaoSentController {
|
|||||||
mjonKakaoATResultVO.setSmsTxt(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxt()));
|
mjonKakaoATResultVO.setSmsTxt(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxt()));
|
||||||
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
model.addAttribute("resultMsgDetail", mjonKakaoATResultVO);
|
||||||
|
|
||||||
|
String msgType = mjonKakaoATResultVO.getMsgType();
|
||||||
|
|
||||||
|
if(msgType.equals("8")) {//카카오 알림톡인 경우 상세정보 처리
|
||||||
|
|
||||||
// 템플릿 api 가져오기
|
// 템플릿 api 가져오기
|
||||||
KakaoVO kakaoVO = new KakaoVO();
|
KakaoVO kakaoVO = new KakaoVO();
|
||||||
kakaoVO.setSenderKey(mjonKakaoATResultVO.getMsgNoticetalkSenderKey());
|
kakaoVO.setSenderKey(mjonKakaoATResultVO.getMsgNoticetalkSenderKey());
|
||||||
@ -230,6 +239,22 @@ public class KakaoSentController {
|
|||||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
||||||
// //템플릿 api 가져오기
|
// //템플릿 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";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,6 +279,11 @@ public class KakaoSentController {
|
|||||||
|
|
||||||
//발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(MJ_MSG_DATA)
|
//발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(MJ_MSG_DATA)
|
||||||
MjonKakaoATVO mjonKakaoATResultVO = kakaoSentService.selectKakaoSentDetailData2Ajax(mjonKakaoATVO);
|
MjonKakaoATVO mjonKakaoATResultVO = kakaoSentService.selectKakaoSentDetailData2Ajax(mjonKakaoATVO);
|
||||||
|
|
||||||
|
String msgType = mjonKakaoATResultVO.getMsgType();
|
||||||
|
|
||||||
|
if(msgType.equals("8")) {
|
||||||
|
|
||||||
// 대체문자 엔터키 치환
|
// 대체문자 엔터키 치환
|
||||||
mjonKakaoATResultVO.setSmsTxtTrans(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxtTrans()));
|
mjonKakaoATResultVO.setSmsTxtTrans(StringUtil2.replaceBR(mjonKakaoATResultVO.getSmsTxtTrans()));
|
||||||
|
|
||||||
@ -276,6 +306,19 @@ public class KakaoSentController {
|
|||||||
|
|
||||||
model.addAttribute("kakaoTemplateInfo", kakaoTemplateInfo);
|
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", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return "web/kakao/sent/KakaoSentDetailPop2Ajax";
|
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
|
SELECT
|
||||||
MGD.MSG_GROUP_ID as msgGroupId
|
MGD.MSG_GROUP_ID as msgGroupId
|
||||||
, MGD.USER_ID as userId
|
, MGD.USER_ID as userId
|
||||||
|
, MD.MSG_TYPE as msgType
|
||||||
, MD.REQ_DATE as reqDate /* 발송 시간 */
|
, MD.REQ_DATE as reqDate /* 발송 시간 */
|
||||||
, MD.MSG_NOTICETALK_SENDER_KEY as msgNoticetalkSenderKey /* api key */
|
, MD.MSG_NOTICETALK_SENDER_KEY as msgNoticetalkSenderKey /* api key */
|
||||||
, MD.MSG_NOTICETALK_TMP_KEY as msgNoticetalkTmpKey /* 특정 템플릿 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_TYPE as bizKakaoResendType /* MMS / LMS / SMS */
|
||||||
, 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 파일 경로 */
|
||||||
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
|
||||||
@ -928,6 +930,7 @@
|
|||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
MD.REQ_DATE as reqDate /* 발송 시간 */
|
MD.REQ_DATE as reqDate /* 발송 시간 */
|
||||||
|
, MD.MSG_TYPE as msgType
|
||||||
, MD.MSG_NOTICETALK_SENDER_KEY as msgNoticetalkSenderKey /* api key */
|
, MD.MSG_NOTICETALK_SENDER_KEY as msgNoticetalkSenderKey /* api key */
|
||||||
, MD.MSG_NOTICETALK_TMP_KEY as msgNoticetalkTmpKey /* 특정 템플릿 key */
|
, MD.MSG_NOTICETALK_TMP_KEY as msgNoticetalkTmpKey /* 특정 템플릿 key */
|
||||||
, MD.SMS_TXT as smsTxtTrans /* 알림톡 본문 내용 치환(O)*/
|
, MD.SMS_TXT as smsTxtTrans /* 알림톡 본문 내용 치환(O)*/
|
||||||
@ -935,6 +938,7 @@
|
|||||||
, MD.BIZ_KAKAO_RESEND_YN as bizKakaoResendYn /* 대체 문자 사용 여부*/
|
, MD.BIZ_KAKAO_RESEND_YN as bizKakaoResendYn /* 대체 문자 사용 여부*/
|
||||||
, MD.BIZ_KAKAO_RESEND_TYPE as bizKakaoResendType /* MMS / LMS / SMS */
|
, MD.BIZ_KAKAO_RESEND_TYPE as bizKakaoResendType /* MMS / LMS / SMS */
|
||||||
, MD.BIZ_KAKAO_RESEND_DATA as bizKakaoResendData /* 대체 문자 (치환O) */
|
, MD.BIZ_KAKAO_RESEND_DATA as bizKakaoResendData /* 대체 문자 (치환O) */
|
||||||
|
, MD.BIZ_KAKAO_JSON_FILE as bizKakaoJsonFile /* Json 파일 경로 */
|
||||||
FROM MJ_MSG_DATA MD
|
FROM MJ_MSG_DATA MD
|
||||||
WHERE
|
WHERE
|
||||||
MD.MSG_ID = #msgId#
|
MD.MSG_ID = #msgId#
|
||||||
|
|||||||
@ -19,12 +19,33 @@
|
|||||||
<div class="rev_pop_in">
|
<div class="rev_pop_in">
|
||||||
<div class="rev_pop_middle clearfix">
|
<div class="rev_pop_middle clearfix">
|
||||||
<span><c:out value="${resultMsgDetail.reqDate }" /></span>
|
<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>
|
||||||
<div class="rev_pop_txt">
|
<div class="rev_pop_txt">
|
||||||
<div class="text_preview">
|
<div class="text_preview">
|
||||||
<div class="allimtalk_title">
|
<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>
|
||||||
<div class="allimtalk_content">
|
<div class="allimtalk_content">
|
||||||
<!-- 강조 텍스트 -->
|
<!-- 강조 텍스트 -->
|
||||||
|
|||||||
@ -946,7 +946,11 @@ function infoPop(pageUrl){
|
|||||||
<ul class="list_tab">
|
<ul class="list_tab">
|
||||||
<li class="tab active"><button type="button" onclick="fnTabLoad('',0); return false;">전체</button></li>
|
<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('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 -->
|
</ul><!--// tab button -->
|
||||||
</div>
|
</div>
|
||||||
<!-- 예약관리 > 전체 -->
|
<!-- 예약관리 > 전체 -->
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user