선거문자 20건 기능 개선 2차

- 선거문자 발송 기능 추가
 - 문자 발송 후 받는사람 리스트 상태값 변경 및 받는사람 목록 갱신
 - 발송 결과 팝업 내용 수정 등
This commit is contained in:
rosewiper 2023-12-08 18:04:04 +09:00
parent 019ddb68dd
commit 81fc603001
8 changed files with 1308 additions and 75 deletions

View File

@ -49,4 +49,7 @@ public interface MjonCandidateService {
//선거문자 20건 마지막 번호 불러오기
public int selectMsgCallToSeqNum(String mberId) throws Exception;
//선거문자 20건 전송 CallTo 상태값 전송 완료로 변경 처리
public int updateMsgTWCallToListSendFlag(MjonCandidateTWVO mjonCandidateTWVO) throws Exception;
}

View File

@ -173,4 +173,23 @@ public class MjonCandidateDAO extends EgovAbstractDAO {
return resultNum;
}
//선거문자 20건 전송 CallTo 상태값 전송 완료로 변경 처리
public int updateMsgTWCallToListSendFlag(MjonCandidateTWVO mjonCandidateTWVO) throws Exception{
int resultCnt = 0;
try {
resultCnt = update("mjonCandidateDAO.updateMsgTWCallToListSendFlag", mjonCandidateTWVO);
} catch (Exception e) {
System.out.println("updateMsgTWCallToListSendFlag Service Imple Error!!! " + e);
}
return resultCnt;
}
}

View File

@ -210,4 +210,23 @@ public class MjonCandidateServiceImpl extends EgovAbstractServiceImpl implement
return resultNum;
}
//선거문자 20건 전송 CallTo 상태값 전송 완료로 변경 처리
public int updateMsgTWCallToListSendFlag(MjonCandidateTWVO mjonCandidateTWVO) throws Exception{
int resultCnt = 0;
try {
resultCnt = mjonCandidateDAO.updateMsgTWCallToListSendFlag(mjonCandidateTWVO);
} catch (Exception e) {
System.out.println("updateMsgTWCallToListSendFlag Service Imple Error!!! " + e);
}
return resultCnt;
}
}

View File

@ -249,6 +249,20 @@
'N')
</select>
<update id="mjonCandidateDAO.updateMsgTWCallToListSendFlag" parameterClass="mjonCandidateTWVO">
UPDATE MJ_CAMPAIN_TMP_CALLTO SET
SEND_FLAG = 'Y',
LAST_UPDUSR_ID = #mberId#,
LAST_UPDT_PNTTM = NOW()
WHERE MBER_ID = #mberId#
<iterate prepend="AND CALL_TO IN " open="(" close=")" conjunction="," property="callToArr">
#callToArr[]#
</iterate>
</update>
</sqlMap>

View File

@ -136,6 +136,17 @@ function excelExport(event){
//엑셀파일 자료 데이터베이스에 입력해주기
function fnInsertAttchFileData(){
var callToCnt = $("input[name=chkCallTo]").length;
if(callToCnt > 0){
if(!confirm("기존 받는사람을 모두 초기화하고 새로운 받는사람을 불러옵니다. 진행하시겠습니까?")){
//첨부파일 초기화 시켜주기
$("#excelFile").val("");
$("#excelNm").val("");
return false;
}
}
var data = new FormData(document.excelForm);
data.append("file0", $('#excelFile').prop('files')[0]);
@ -210,7 +221,7 @@ function fnInsertAttchFileData(){
//첨부파일로 불러온 데이터를 받는사람 목록에 추가해 준다.
addTWCallToInfo();
//첨부파일 초기화 시켜주기
//첨부파일 초기화 시켜주기
$("#excelFile").val("");
$("#excelNm").val("");
@ -256,10 +267,6 @@ $("#excelAdd").click(function(){
var callSeq = $("#callSeq").val();
if(!confirm("기존 받는사람을 모두 초기화하고 새로운 받는사람을 불러옵니다. 진행하시겠습니까?")){
return false;
}
//엑셀파일 자료 데이터베이스에 입력해주기
fnInsertAttchFileData();
@ -1276,7 +1283,7 @@ $(document).ready(function (){
//오류 검사 버튼 처리
$('.check_validity').click(function(){
var data = $('.liCallTo').length;
var data = $("input[name='chkCallTo']").length;
if(data == 0){
@ -1285,27 +1292,26 @@ $(document).ready(function (){
}else{
var callToArr = [];
var callToChkArr = [];
//받는사람 목록의 리스트 전체 데이터 불러와서 배열에 저장
//화면에 불러와져있는 최대 20개의 리스트만 삭제
$(".liCallTo a div span").each(function(){
var callTo = $(this).text();
$("input[name='chkCallTo']").each(function(){
var callTo = $(this).closest("div").next().text();
//전화번호 유효성 체크 해주기
var callSts = checkHpNum(callTo);
if(!callSts){
callToArr.push(callTo);
callToChkArr.push(callTo);
}
});
if(callToArr.length > 0){
if(callToChkArr.length > 0){
alert("받는사람 목록 중 ["+ callToArr + "] 번호에 오류가 있습니다.");
alert("받는사람 목록 중 ["+ callToChkArr + "] 번호에 오류가 있습니다.");
return false;
}else{
@ -4032,6 +4038,9 @@ function getMjMsgSentListAll(pageNo) {
</form>
<form id="msgForm" name="msgForm" method="post">
<input type="hidden" id="send_adYn" name="send_adYn" value="N"/><!-- 문자종류 선거문자 여부 값 -->
<input type="hidden" id="divideChk" name="divideChk" value="N"/><!-- 예약문자 분할발송 여부 값 -->
<input type="hidden" id="divideCnt" name="divideCnt" value="20"/><!-- 예약문자 분할발송 분할갯수 값 -->
<input type="hidden" id="divideTime" name="divideTime" value="01"/><!-- 예약문자 분할발송 분할 간격 값 -->
<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 -->
<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
<input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->

View File

@ -199,7 +199,8 @@ function getMjMsgListByResend() {
//문자발송 URL Move
function goMsgUrlMove() {
document.location.href = "/web/mjon/msgcampain/selectTWMsgDataView.do";
//document.location.href = "/web/mjon/msgcampain/selectMsgTWDataView.do";
addTWCallToInfo();
}
function listMsgDataView(){
@ -868,22 +869,6 @@ function fn_sendMsgData(){
var spamStatus = false;
var exceptSpamYn = $("#exceptSpamYn").val(); //금지어 필터링 예외 여부 - N 일 경우만 스팸 검사를 진행
alert(adverYn);
/* //이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요.
var eventStatus = form.eventStatus.value;
var eventRemainCash = parseFloat(form.eventRemainCash.value);
if(eventStatus == 'Y'){
if(parseFloat(eventRemainCash) < parseFloat(totPriceOnly)){
alert("고객님의 이벤트 캐시 잔액은 " + eventRemainCash + "원으로 입력하신 수량의 문자를 전부 발송할 수 없습니다. 잔액 이하로 발송건수를 재설정하시기 바랍니다.");
return false;
}
} */
if(loginVO == "" || loginVO == null){
alert("문자발송 서비스는 로그인 후 이용 가능합니다.");
@ -891,12 +876,6 @@ function fn_sendMsgData(){
}
//MJ_MSG_GROUP_DATA 누락데이터 체크
//if (getMsgGroupDataErrorCheck() == false) {
// alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요.");
// return false;
//}
if(form.callFromList.value == ""){
alert("발신번호를 입력해 주세요.");
@ -938,19 +917,6 @@ function fn_sendMsgData(){
}
//문자내용 첫글자에 특수기호 포함 여부 체크
/* var strCont = form.smsTxtArea.value;
var repStr = strFirstCharCheck(strCont);
if(repStr.length > 0){
alert("문자 내용 첫 글자는 특수기호가 들어갈 수 없습니다.");
$('#smsTxtArea').val(strCont.replace(repStr, ""));
fnByteString(strCont.replace(repStr, ""));
return false;
} */
if(imgFilePath.length == 0){ // 그림문자일 경우 내용이 없어도 됨 , 장문 문자일 경우만 문자내용 체크함
if(form.smsTxtArea.value == ""){
@ -1007,7 +973,7 @@ function fn_sendMsgData(){
var callToNum = $(this).closest("div").next().text();
if(!checkHpNum(callToNum)){
alert("선택한 연락처 목록에 잘 못된 연락처가 있습니다. 연락처 번호 : " + callToNum + " 입니다.");
alert("선택한 연락처 목록에 잘못된 연락처가 있습니다. 연락처 번호 : " + callToNum + " 입니다.");
return false;
}else{
phoneNum.push(callToNum);
@ -1626,7 +1592,7 @@ function sendMsgAjax(paramSmsCnt, paramBlockCnt){
var reserYn = $("#reserveYn").val();
var data = new FormData(form);
url = "/web/mjon/msgcampain/sendMsgDataAjax.do";
url = "/web/mjon/msgcampain/sendMsgTWDataAjax.do";
$.ajax({
type: "POST",
@ -1920,8 +1886,8 @@ function popScrCloseSetting(){
<div class="msg_text">발송성공 : <strong>1</strong> 건, 수신거부 : <span>0</span>건의<br>문자가 발송 되었습니다.</div>
</div>
<div class="popup_btn">
<button type="button" onclick="msgResultLink(); return false;">문자 발송결과 바로가기</button>
<button type="button" class="tooltip-close" onclick="msgSuccessClose(this);">확인</button>
<!-- <button type="button" onclick="msgResultLink(); return false;">문자 발송결과 바로가기</button> -->
<button type="button" class="tooltip-close" onclick="msgSuccessClose(this);">다음 20건</button>
</div>
</div>
</div>

View File

@ -23,7 +23,7 @@ var publishCommon = {
}
$(checkTarget[cnt]).prop('checked', true); // 체크박스 체크.
cnt++;
console.log("+++++ publishCommon ::: " + cnt);
fnChkCallToChange();
}, checkTime);
},
clickCheck: function (checkTarget) {
@ -46,21 +46,10 @@ var publishCommon = {
});
console.log("+++++ publishCommonClick ::: " + this.count);
},
clickCheckPrice : function(){
var callToCnt = 0;
$("input[name=chkCallTo]").each(function(){
var chkSts = $(this).is(':checked');
if(chkSts){
callToCnt++;
}
});
updateTotCnt(callToCnt); //전체 데이터 갯수 구하기
totalPriceSum(callToCnt);
fnChkCallToChange();
}