문자 재전송 기능 작업중

This commit is contained in:
itn 2023-10-11 15:26:59 +09:00
parent aac2f737f3
commit 3f323ca9f5
7 changed files with 236 additions and 109 deletions

View File

@ -70,7 +70,14 @@ public class MjonMsgDataVO extends UserDefaultVO{
private String msgResendAllFlag;
private String msgResendAllGroupId;
private String msgResendAllAdvertiseYn;
private String atchFiles;
public String getAtchFiles() {
return atchFiles;
}
public void setAtchFiles(String atchFiles) {
this.atchFiles = atchFiles;
}
public String getMsgGroupId() {
return msgGroupId;
}

View File

@ -5881,6 +5881,7 @@ public class MjonMsgDataController {
boolean isSuccess = true;
String msg = "";
List<?> resultMsgAddPhotoInfo = null;
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
@ -5894,6 +5895,21 @@ public class MjonMsgDataController {
mjonMsgDataVO.setUserId(userId);
mjonMsgDataVO.setMsgGroupId(mjonMsgDataVO.getMsgResendAllGroupId());
mjonMsgDataVO = mjonMsgDataService.selectMjMsgGroupInfoByResend(mjonMsgDataVO);
if (mjonMsgDataVO != null) {
String[] atchFiles = mjonMsgDataVO.getAtchFiles().split("\\^");
if (atchFiles.length >= 1) {
mjonMsgDataVO.setAtchFileId1(atchFiles[0]);
}
if (atchFiles.length >= 2) {
mjonMsgDataVO.setAtchFileId2(atchFiles[1]);
}
if (atchFiles.length >= 3) {
mjonMsgDataVO.setAtchFileId3(atchFiles[2]);
}
}
//문자함 리스트의 첨부이미지 정보 불러오기
resultMsgAddPhotoInfo = mjonMsgDataService.selectMsgAddPhotoInfo(mjonMsgDataVO);
}
}
catch(Exception e) {
@ -5903,7 +5919,8 @@ public class MjonMsgDataController {
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("result", mjonMsgDataVO);
modelAndView.addObject("resultMsgInfo", mjonMsgDataVO);
modelAndView.addObject("resultMsgAddPhotoInfo", resultMsgAddPhotoInfo);
return modelAndView;
}

View File

@ -7255,37 +7255,42 @@
CALL_FROM AS callFrom
, SUBJECT AS subject
, SMS_TXT AS smsTxt
, (
SELECT
IFNULL(FILE_PATH1, '')
FROM MJ_MSG_DATA
,(
SELECT
CONCAT(
(
IF(B.FILE_PATH1 IS NOT NULL, (SELECT
ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH1, '/', -1))
LIMIT 1), '')
)
,'^',
(
IF(B.FILE_PATH2 IS NOT NULL, (SELECT
ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH2, '/', -1))
LIMIT 1), '')
)
,'^',
(
IF(B.FILE_PATH3 IS NOT NULL, (SELECT
ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH3, '/', -1))
LIMIT 1), '')
))
FROM
MJ_MSG_DATA B
WHERE
USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
LIMIT 1
) filePath1
, (
SELECT
IFNULL(FILE_PATH2, '')
FROM MJ_MSG_DATA
WHERE
USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
LIMIT 1
) filePath2
, (
SELECT
IFNULL(FILE_PATH3, '')
FROM MJ_MSG_DATA
WHERE
USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
LIMIT 1
) filePath3
FROM MJ_MSG_GROUP_DATA
B.MSG_GROUP_ID = A.MSG_GROUP_ID
LIMIT 1
) AS atchFiles
FROM MJ_MSG_GROUP_DATA A
WHERE
USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
A.USER_ID = #userId#
AND A.MSG_GROUP_ID = #msgGroupId#
LIMIT 1
</select>

View File

@ -66,39 +66,83 @@ function getMjMsgGroupInfoByResend() {
dataType:'json',
async: false,
success: function (data) {
//alert(JSON.stringify(data));
if(data.isSuccess == true){
//data.result.callFrom;
//data.result.subject;
//data.result.smsTxt;
//data.result.filePath1;
//data.result.filePath2;
//data.result.filePath3;
var msgData = data.resultMsgInfo;
var fileData = data.resultMsgAddPhotoInfo;
// 발신번호
var reCallFrom = $.trim(removeDash($("#callFromList option:selected").val()));
if ($.trim(removeDash(data.result.callFrom)) != reCallFrom) {
if ($.trim(removeDash(msgData.callFrom)) != reCallFrom) {
alert("선택된 발신번호가 이전에 발송한 발신번호가 아닙니다.\n발신번호를 확인해주세요.")
}
/*
// 제목
if (data.result.subject != null && data.result.subject != "") {
var smsTxt = msgData.smsTxt;
var subject = msgData.subject;
var fileId = "";
var filePath = "";
var len = fileData.length;
// 기존 내용 지워주기
//$(".btnReset").trigger("click");
$('.delLi').each(function(){
$(this).remove();
});
$('.preBoxF').each(function(){
$(this).remove();
});
$('#imgCnt').val(0);
// 기존 imgFileId, imgFilePath 배열에 있는 내용 초기화 해주기
imgFilePath = [];
imgFileId = [];
// 문자제목
if (msgData.subject != null && msgData.subject != "") {
$('.msg_title').addClass('active');
$("input:radio[name='title_status']:radio[value='Y']").prop('checked', true); // 선택하기
$('.textbox').show();
$("#mmsSubject").val(data.result.subject);
$("#mmsSubject").val(subject);
}
var reSmsTxt = data.result.smsTxt.replaceAll("<br/>", "\n"); //줄발꿈문자 변환하기
// 문자내용
if(reSmsTxt != null){
$("#smsTxtArea").val(reSmsTxt);
fnByteString(reSmsTxt);
// 선거 기본정보 제거
smsTxt = $.trim(smsTxt.replace("(선거운동정보)", ""));
var smsTxtLastIdxCnt = smsTxt.lastIndexOf("후보자전화번호");
if (smsTxtLastIdxCnt != -1) {
smsTxt = $.trim(smsTxt.substring(0, smsTxtLastIdxCnt));
}
*/
$('#smsTxtArea').val(smsTxt);
// 첨부 이미지가 있는경우 이미지 처리해주기
if(len > 0) {
for(var i=0; i < len; i++) {
var num = i + 1;
var imgId = fileData[i].atchFileId;
var imgSn = fileData[i].fileSn;
var fileStreCours = fileData[i].fileStreCours;
var streFileNm = fileData[i].streFileNm;
var fileExtsn = fileData[i].fileExtsn;
/* var imgSrc = fileStreCours + "/" + streFileNm + "." + fileExtsn; */
var imgSrc = '/cmm/fms/getImage2.do?atchFileId=' + imgId + '&fileSn=' + imgSn;
myMsgImageControl(imgSrc, "edit_n", "Template", imgId);
}
fnByteString(smsTxt);
}
else {
fnByteString(smsTxt);
}
// 문자전송 상단으로 이동
var sendOfT=$('.send_top').offset().top;
$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
} else {
alert("Message : " + msg);
//alert("Message : " + msg);
}
},
error: function (e) {

View File

@ -511,44 +511,7 @@ $(document).ready(function (){
});
function advMsgInsert(){
var advStr = '<div class="ad_txt"><p>(광고)</p></div>';
var advDenyStr = '<div class="deny_txt"><p>무료거부 0808800858</p> </div>';
var preAdvStr = '<p class="ad_tit">(광고)</p>';
var preAdvDenyStr = '<p class="deny_receipt">무료거부 0808800858</p>';
//광고 및 무료수신거부 텍스트 추가
if ($('input[name=send_adYn]:checked').val() == 'Y'){
//문자 내용에 광고 문자 추가해주기
$(advStr).insertBefore('textarea[name=smsTxtArea]');
$(advDenyStr).insertBefore('div[name=afterDeny]');
//미리보기에 광고 문자 추가해주기
$(preAdvStr).insertBefore('.none_txt');
$(preAdvDenyStr).insertAfter('.realtime');
//$('#smsTxtArea').val(advStr + "\r\n" + contents + "\r\n" + advDenyStr);
}else{ //광고 및 무료수신거부 텍스트 삭제
//문자내용 광고문자 삭제하기
$('.ad_txt').remove();
$('.deny_txt').remove();
//미리보기 광고 문자 삭제하기
$('.ad_tit').remove();
$('.deny_receipt').remove();
}
//문자 바이트수 계산하기
fnByteString($('#smsTxtArea').val());
}
//문자 내용 입력시 바이트수 계산하기
@ -1954,7 +1917,46 @@ $(document).ready(function (){
$('.send_btn .btnType:first-child').html('예약하기');
});
});
function advMsgInsert(){
var advStr = '<div class="ad_txt"><p>(광고)</p></div>';
var advDenyStr = '<div class="deny_txt"><p>무료거부 0808800858</p> </div>';
var preAdvStr = '<p class="ad_tit">(광고)</p>';
var preAdvDenyStr = '<p class="deny_receipt">무료거부 0808800858</p>';
//광고 및 무료수신거부 텍스트 추가
if ($('input[name=send_adYn]:checked').val() == 'Y'){
//문자 내용에 광고 문자 추가해주기
$(advStr).insertBefore('textarea[name=smsTxtArea]');
$(advDenyStr).insertBefore('div[name=afterDeny]');
//미리보기에 광고 문자 추가해주기
$(preAdvStr).insertBefore('.none_txt');
$(preAdvDenyStr).insertAfter('.realtime');
//$('#smsTxtArea').val(advStr + "\r\n" + contents + "\r\n" + advDenyStr);
}else{ //광고 및 무료수신거부 텍스트 삭제
//문자내용 광고문자 삭제하기
$('.ad_txt').remove();
$('.deny_txt').remove();
//미리보기 광고 문자 삭제하기
$('.ad_tit').remove();
$('.deny_receipt').remove();
}
//문자 바이트수 계산하기
fnByteString($('#smsTxtArea').val());
}
//문자 바이트수 계산하기 함수
function fnByteString(contents){
var totalByte = 0;

View File

@ -92,39 +92,90 @@ function getMjMsgGroupInfoByResend() {
dataType:'json',
async: false,
success: function (data) {
//alert(JSON.stringify(data));
if(data.isSuccess == true){
//data.result.callFrom;
//data.result.subject;
//data.result.smsTxt;
//data.result.filePath1;
//data.result.filePath2;
//data.result.filePath3;
var msgData = data.resultMsgInfo;
var fileData = data.resultMsgAddPhotoInfo;
// 발신번호
var reCallFrom = $.trim(removeDash($("#callFromList option:selected").val()));
if ($.trim(removeDash(data.result.callFrom)) != reCallFrom) {
if ($.trim(removeDash(msgData.callFrom)) != reCallFrom) {
alert("선택된 발신번호가 이전에 발송한 발신번호가 아닙니다.\n발신번호를 확인해주세요.")
}
/*
// 제목
if (data.result.subject != null && data.result.subject != "") {
var smsTxt = msgData.smsTxt;
var subject = msgData.subject;
var fileId = "";
var filePath = "";
var len = fileData.length;
// 기존 내용 지워주기
//$(".btnReset").trigger("click");
$('.delLi').each(function(){
$(this).remove();
});
$('.preBoxF').each(function(){
$(this).remove();
});
$('#imgCnt').val(0);
// 기존 imgFileId, imgFilePath 배열에 있는 내용 초기화 해주기
imgFilePath = [];
imgFileId = [];
// 문자제목
if (msgData.subject != null && msgData.subject != "") {
$('.msg_title').addClass('active');
$("input:radio[name='title_status']:radio[value='Y']").prop('checked', true); // 선택하기
$('.textbox').show();
$("#mmsSubject").val(data.result.subject);
$("#mmsSubject").val(subject);
}
var reSmsTxt = data.result.smsTxt.replaceAll("<br/>", "\n"); //줄발꿈문자 변환하기
// 문자내용
if(reSmsTxt != null){
$("#smsTxtArea").val(reSmsTxt);
fnByteString(reSmsTxt);
if (smsTxt.lastIndexOf("(광고)") != -1) {
$('#send_adYnY').prop('checked', true);
//광고 상하단 내용 넣어주기
advMsgInsert();
// 광고 기본정보 제거
smsTxt = $.trim(smsTxt.replace("(광고)", ""));
var smsTxtLastIdxCnt = smsTxt.lastIndexOf("무료거부");
if (smsTxtLastIdxCnt != -1) {
smsTxt = $.trim(smsTxt.substring(0, smsTxtLastIdxCnt));
}
}
*/
$('#smsTxtArea').val(smsTxt);
// 첨부 이미지가 있는경우 이미지 처리해주기
if(len > 0) {
for(var i=0; i < len; i++) {
var num = i + 1;
var imgId = fileData[i].atchFileId;
var imgSn = fileData[i].fileSn;
var fileStreCours = fileData[i].fileStreCours;
var streFileNm = fileData[i].streFileNm;
var fileExtsn = fileData[i].fileExtsn;
/* var imgSrc = fileStreCours + "/" + streFileNm + "." + fileExtsn; */
var imgSrc = '/cmm/fms/getImage2.do?atchFileId=' + imgId + '&fileSn=' + imgSn;
myMsgImageControl(imgSrc, "edit_n", "Template", imgId);
}
fnByteString(smsTxt);
}
else {
fnByteString(smsTxt);
}
// 문자전송 상단으로 이동
var sendOfT=$('.send_top').offset().top;
$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
} else {
alert("Message : " + msg);
//alert("Message : " + msg);
}
},
error: function (e) {

View File

@ -136,12 +136,13 @@ $(document).ready(function(){
</tr>
</thead>
<tbody>
<c:set var="replaceCnt" value="0" />
<c:set var="electionCnt" value="0" />
<c:set var="advertisementCnt" value="0" />
<c:choose>
<c:when test="${not empty resultAllSentList}">
<c:forEach var="resultAllSentList" items="${resultAllSentList}" varStatus="status">
<c:set var="replaceCnt" value="0" />
<c:set var="electionCnt" value="0" />
<c:set var="advertisementCnt" value="0" />
<c:if test="${fn:indexOf(resultAllSentList.smsTxt,'[*이름*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*1*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*2*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*3*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*4*]') != -1}">
<c:set var="replaceCnt" value="1" />
</c:if>
@ -207,7 +208,7 @@ $(document).ready(function(){
<td name="listTd">
<button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${resultAllSentList.msgGroupId}','${resultAllSentList.msgId}','${resultAllSentList.fileCnt}'); return false;">상세보기</button>
<%--
<button class="btnType btnType20" onClick="javascript:fnMjMsgReSendAll('${resultAllSentList.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
<button class="btnType btnType20" onClick="javascript:fnMjMsgReSendAll('${resultAllSentList.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
--%>
</td>
<td name="listTd">