20건 선거문자 기능 변경

- 전체선택 기능 추가
 - 후보자 등록 정보 체크
This commit is contained in:
rosewiper 2023-12-13 14:55:50 +09:00
commit e563ff812f
10 changed files with 111 additions and 109 deletions

View File

@ -76,9 +76,10 @@ public interface MjonPayService {
void updatePointUseByCase(MjonPayVO mjonPayVO) throws Exception;
String selectSumPayMoney(String userId) throws Exception;
String selectAgentSumPayMoney(String userId) throws Exception;
String selectSumPoint(String userId) throws Exception;
List<MjonPayVO> selectPayListForRefund(MjonPayVO mjonPayVO) throws Exception;

View File

@ -179,6 +179,10 @@ public class MjonPayDAO extends EgovAbstractDAO {
return (String) select("mjonPayDAO.selectSumPayMoney", userId);
}
public String selectAgentSumPayMoney(String userId) throws Exception{
return (String) select("mjonPayDAO.selectAgentSumPayMoney", userId);
}
public String selectSumPoint(String userId) throws Exception{
return (String) select("mjonPayDAO.selectSumPoint", userId);
}

View File

@ -2499,13 +2499,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
}
}
@Override
public String selectSumPayMoney(String userId) throws Exception{
return mjonPayDAO.selectSumPayMoney(userId);
}
@Override
public String selectAgentSumPayMoney(String userId) throws Exception {
return mjonPayDAO.selectAgentSumPayMoney(userId);
}
@Override
public String selectSumPoint(String userId) throws Exception{
return mjonPayDAO.selectSumPoint(userId);
@ -2740,4 +2743,6 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
return mjonPayDAO.selectPointInfoList(userId);
}
}

View File

@ -2409,7 +2409,7 @@ public class MjonPayController {
mjonMsgVO.setUserId(userId);
{ // 충전캐시
String sumPayMoney = mjonPayService.selectSumPayMoney(userId);
String sumPayMoney = mjonPayService.selectAgentSumPayMoney(userId);
model.addAttribute("sumPayMoney", sumPayMoney);
}
@ -2480,7 +2480,7 @@ public class MjonPayController {
{ // 충전캐시
String sumPayMoney = mjonPayService.selectSumPayMoney(userId);
String sumPayMoney = mjonPayService.selectAgentSumPayMoney(userId);
model.addAttribute("sumPayMoney", sumPayMoney);
}

View File

@ -1285,6 +1285,14 @@
<select id="mjonPayDAO.selectSumPayMoney" parameterClass="String" resultClass="String">
SELECT SUM(AMT)
FROM MJ_PG
WHERE USER_ID = #userId# AND PG_STATUS = 1
</select>
<select id="mjonPayDAO.selectAgentSumPayMoney" parameterClass="String" resultClass="String">
SELECT SUM(CASH)
FROM MJ_PG
WHERE USER_ID = #userId# AND PG_STATUS = 1
@ -2180,7 +2188,7 @@
<select id="mjonPayDAO.selectCashInfoList" parameterClass="String" resultClass="mjonPayVO">
SELECT
'chargeCash' AS divFlag
,SUM(AMT) AS cashSum
,SUM(CASH) AS cashSum
FROM
MJ_PG
WHERE 1=1

View File

@ -11,15 +11,25 @@
var sendComplete = '${resultTotCallToInfo.sendComplete}';
var sendReady = '${resultTotCallToInfo.sendReady}';
$("#totCallToCnt").text(totCallToCnt);
$("#sendComplete").text(sendComplete);
$("#sendReady").text(sendReady);
if(sendReady > 0){
$("#totCallToCnt").text(totCallToCnt);
$("#sendComplete").text(sendComplete);
$("#sendReady").text(sendReady);
}else{
$("#totCallToCnt").text(0);
$("#sendComplete").text(0);
$("#sendReady").text(0);
}
</script>
<div class="listType list">
<ul class="thead_ul table_ul">
<li></li>
<li><div class="input_wrap"><input type="checkbox" id="checkAll" name="receipt_number_check"></div></li>
<li>
번호
<!-- <button type="button" class="btn_sort_up"><img src="/publish/images/sortUp.png"></button>

View File

@ -307,7 +307,7 @@ function addTWCallToInfo(){
onlongclick(".btn_check_one", 1000, function () {
var checkbox = $('[name=chkCallTo]');
publishCommon.longMousePressCheck(checkbox, 10);
publishCommon.longMousePressCheck(checkbox, 10, $(".btn_check_one"));
publishCommon.clickCheckPrice();
});
@ -316,6 +316,13 @@ function addTWCallToInfo(){
publishCommon.clickCheck(checkbox);
publishCommon.clickCheckPrice();
});
$("#checkAll").change(function(){
publishCommon.clickCheckAll();
publishCommon.clickCheckPrice();
});
});
//수신자 목록 추가된 건수 및 발송 금액 변경해주기
@ -323,6 +330,12 @@ function addTWCallToInfo(){
});
//후보자 등록 체크
var candiNm = '${mjonCandidateVO.candidateNm}';
if(candiNm == ""){
fn_candidateChk();
};
}
@ -567,6 +580,7 @@ function getMberSettingDetail() {
}
$(document).ready(function (){
// 발송금액 단가표시
SetPriceWrapOpen();
@ -600,87 +614,6 @@ $(document).ready(function (){
}
//스프레드 시트 Tabulator 초기 셋팅
/* var tabledata = [
]; */
//var selectRow;
//받는사람 연락처 내용 처리
//Tabulator AJAX Data Loading
/* tableL = new Tabulator(".callList_box", {
height:"255px",
layout:"fitColumns",
//data:tabledata,
//autoColumns:true,
headerHozAlign:"center",
validationMode:"highlight",
//clipboard:false,
//clipboardCopySelector:"table",
//clipboardPasteAction:"insert", // insert, update, replace
placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional)
resizableColumns:false,
columns:[ //Define Table Columns
{formatter:"rowSelection", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", headerSort:false, cellClick:function(e, cell){
cell.getRow().toggleSelect();
}
},
{title:"이름", hozAlign:"center", field:"name", editor:"input", validator:["maxLength:12"], cellEdited:function(cell){
//cell - cell component
fnReplCell();
}},
{title:"휴대폰", hozAlign:"center", field:"phone", editor:"input", width:100, validator:["required","minLength:10", "maxLength:12"], cellEdited:function(cell){
//cell - cell component
fnDuplPhone();
}},
{title:"[*1*]", hozAlign:"center", field:"rep1", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCell();
}},
{title:"[*2*]", hozAlign:"center", field:"rep2", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCell();
}},
{title:"[*3*]", hozAlign:"center", field:"rep3", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCell();
}},
{title:"[*4*]", hozAlign:"center", field:"rep4", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCell();
}},
],
validationFailed:function(cell, value, parameters){ // 유효성 체크 함수 - 아직 잘 모르겠음
//take action on validation fail
var valid = cell.isValid();
var fieldNm = cell.getField();
var cellVal = cell.getValue();
var returnVal = "";
if(!valid){
if(fieldNm == "name"){
alert("받는사람 이름은 최대 12글자까지만 입력 가능합니다.");
cell.setValue(strMaxLengthSubstring(cellVal, 11)); //스크립트 함수가 0부터 시작이므로 원하는 글자수 -1을 해줘야한다.
cell.clearValidation();
}else if(fieldNm == "phone"){
alert("휴대폰번호는 하이픈(-)을 제외한 숫자만 정확히 입력해 주세요.");
}else{
alert("치환문자를 정확히 입력해 주세요. 40글자 이내로 입력 가능합니다.");
cell.setValue(strMaxLengthSubstring(cellVal, 39));
cell.clearValidation();
}
//해당 셀 데이터 삭제
//cell.setValue("");
}
return value % parameters.phone;
},
}); */
//주소록 불러오기 팝업 내용
//Tabulator AJAX Data Loading
tableAddr = new Tabulator(".callAddr_box", {
@ -1632,6 +1565,7 @@ $(document).ready(function (){
});
/*
단문 / 장문 탭 옵션 선택시 실행
@ -1887,6 +1821,7 @@ $(document).ready(function (){
$('.send_rev .send_content').css('padding-bottom','0');
$('.send_btn .btnType:first-child').html('예약하기');
});
});
//선거 후보자 등록 알림 메세지 처리
@ -4098,7 +4033,7 @@ function getMjMsgSentListAll(pageNo) {
<!-- <div class="top_content current" id="tab1_1"> -->
<div class="heading">
<h2>선거 20건 문자전송</h2>
<h2>20건 문자(수동문자) 전송</h2>
<div class="election_btnWrap">
<button type="button" class="button2 info" onclick="infoPop('selectMsgDataView2');">발송규정</button>
<button type="button" class="button2 info" data-tooltip="candidate_popup03">사용안내</button>
@ -4333,7 +4268,7 @@ function getMjMsgSentListAll(pageNo) {
<div class="put_left" id="twCallToList">
<div class="listType list">
<ul class="thead_ul table_ul">
<li></li>
<li><div class="input_wrap"><input type="checkbox" id="checkAll" name="receipt_number_check"></div></li>
<li>
번호
<!-- <button type="button" class="btn_sort_up"><img src="/publish/images/sortUp.png"></button>

View File

@ -849,6 +849,14 @@ function checkConf() {
//문자발송 처리 함수
function fn_sendMsgData(){
var candiNm = $("#candidateNm").val();
if(candiNm == ""){
fn_candidateChk();
return false;
}
if(!checkConf()){ //문자온 conf-check
alert("현재 문자 발송하기 기능 점검 중입니다.\n\n1분 후 다시 시도해주세요.");
return false;
@ -1926,10 +1934,9 @@ function popScrCloseSetting(){
<div class="send_top">
<!-- tab button -->
<ul class="tabType1">
<li class="tab active"><button type="button" onclick="TabType1(this,'1');">단문 · 장문 · 그림 문자</button></li>
<li class="tab">
<!-- <button type="button" onclick="TabType1(this,'2');">대량 문자(엑셀·TXT)</button> -->
<button type="button" onclick="javascript:fnMsgDataView(); return false;">단체문자(엑셀·TXT)</button>
<li class="tab"><button type="button" onclick="javascript:fnMsgDataView(); return false;">단체문자(자동동보문자)</button></li>
<li class="tab active">
<button type="button">20건 문자(수동문자)</button>
</li>
</ul><!--// tab button -->
<!-- tab content1 -->

View File

@ -12,7 +12,7 @@ var onlongclick = function ($target, time, callback) {
var publishCommon = {
count: 0,
longMousePressCheck: function (checkTarget, checkTime) {
longMousePressCheck: function (checkTarget, checkTime , $target) {
// checkTarget → 체크박스([name='']) / checkTime → 몇초 간격으로 체크 될지
var checkLength = checkTarget.length; // 체크박스 몇개인지
var cnt = 0; // 몇개 체크됐는지
@ -22,18 +22,16 @@ var publishCommon = {
clearInterval(checkEvent); // 자동체크 끝.
}
$(checkTarget[cnt]).prop('checked', true); // 체크박스 체크.
$($target).on("mouseup",function(){
//마우스떼면 멈춤
clearInterval(checkEvent);
});
cnt++;
fnChkCallToChange();
}, checkTime);
},
clickCheck: function (checkTarget) {
// 한번 클릭 했을 때 체크, checkTarget → 체크박스([name=''])
/*if (checkTarget.length < this.count) {
// 체크 다하면 더이상 작동 x.
return false;
}
$(checkTarget[this.count]).prop('checked', true); // 체크박스 체크
this.count++;*/
$("input:checkbox[name='chkCallTo']").each(function(){
@ -46,6 +44,30 @@ var publishCommon = {
});
},
clickCheckAll : function(){
var chkCnt = $("input:checkbox[name='chkCallTo']").length;
var chkAllSts = $('input:checkbox[name="receipt_number_check"]').is(':checked');
if(chkCnt == 0){
alert("받는사람을 추가해 주세요.");
return false;
}
$("input:checkbox[name='chkCallTo']").each(function(){
if(chkAllSts){
$(this).prop("checked",true);
}else{
$(this).prop("checked",false);
}
});
},
clickCheckPrice : function(){

View File

@ -54,10 +54,20 @@
}
});
onlongclick(".btn_check_one", 1000, function () {
$(".input_wrap #checkAll").click(function(){
var checkbox = $('[name=receipt_number_check]');
publishCommon.longMousePressCheck(checkbox, 300);
if($(this).is(":checked") !== true){
checkbox.prop("checked",false);
}else{
publishCommon.longMousePressCheck(checkbox, 100);
}
});
onlongclick(".btn_check_one", 100, function (e) {
var checkbox = $('[name=receipt_number_check]');
publishCommon.longMousePressCheck(checkbox, 100, $(".btn_check_one"));
});
$(".btn_check_one").click(function(){
var checkbox = $('[name=receipt_number_check]');
@ -1339,7 +1349,7 @@
<div class="put_left">
<div class="listType list">
<ul class="thead_ul table_ul">
<li></li>
<li><div class="input_wrap"><input type="checkbox" id="checkAll" name="receipt_number_check"></div></li>
<li>
번호
<button type="button" class="btn_sort_up"><img src="/publish/images/sortUp.png"></button>