diff --git a/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java b/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java
index f98dec2f..f1437a01 100644
--- a/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java
+++ b/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java
@@ -70,8 +70,8 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
private static final Charset EUC_KR = Charset.forName("EUC-KR");
// private static final int MAX_ADDR_CNT = 500000;
//임시 500만개
- private static final int MAX_SINGLE_ENTRY_CNT = 350000;
- private static final int MAX_ADDR_CNT = 10000000;
+ private static final int MAX_SINGLE_ENTRY_CNT = 300000;
+ private static final int MAX_ADDR_CNT = 1000000;
private static final int BATCH_SIZE = 5000;
private static final int THREAD_COUNT = 3;
@@ -413,7 +413,7 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
if(addrListVO.size() > MAX_SINGLE_ENTRY_CNT) {
return new StatusResponse(
HttpStatus.BAD_REQUEST
- , "주소록은 한번에 100만개까지만 등록이 가능합니다."
+ , "주소록은 한번에 30만개까지만 등록이 가능합니다."
, LocalDateTime.now()
);
@@ -421,7 +421,25 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
// step1 현재 주소록 갯수 조회
//회원별 주소록 전체 갯수 조회
+ // 시작 시간 기록
+ long startTime22 = System.nanoTime();
int addrBefCnt = addrDAO.selectAddrTotalCount(addrListVO.get(0));
+
+ // 종료 시간 기록
+ long endTime22 = System.nanoTime();
+
+ // 소요 시간 계산 (나노초 단위)
+ long durationNano = endTime22 - startTime22;
+
+ // 나노초를 초로 변환
+ double durationSeconds = durationNano / 1_000_000_000.0;
+
+ // 초를 분과 초로 변환
+ long minutes = (long) durationSeconds / 60;
+ double seconds = durationSeconds % 60;
+
+ System.out.printf("프로세스 실행 시간: %d분 %.3f초\n", minutes, seconds);
+
int addrNewCnt = addrListVO.size(); //신규 추가할 주소록 갯수
int sumAddrCnt = addrBefCnt + addrNewCnt;
@@ -429,7 +447,7 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
if(sumAddrCnt > MAX_ADDR_CNT) {
return new StatusResponse(
HttpStatus.BAD_REQUEST
- , "주소록은 총 1000만개까지만 등록이 가능합니다."
+ , "주소록은 총 100만개까지만 등록이 가능합니다."
, LocalDateTime.now()
);
diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
index a81eda09..fc4bf98d 100644
--- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
@@ -3983,7 +3983,8 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
}
mjonMsgVO.setSmsTxt(smsTxt);
- log.debug(" :: smsTxt :: [{}]", smsTxt);
+
+// log.debug(" :: smsTxt :: [{}]", smsTxt);
StatusResponse statusResponse = new StatusResponse();
mjonMsgVO = setImagesSetting(mjonMsgVO, statusResponse);
diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
index 1bac0fa5..934e3cff 100644
--- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
@@ -4275,63 +4275,60 @@
/*MjonMsgDataDAO.selectMsgSentFailListOneByDay*/
- SELECT MMD.USER_ID AS userId
- , MMD.MSG_GROUP_ID AS msgGroupId
- , MMD.MSG_SEQ AS msgSeq
- , MMD.USERDATA AS userData
- , MMD.REFUND_YN AS refundYn
- , MMD.RSLT_CODE AS rsltCode
- , MMD.RSLT_CODE2 AS rsltCode2
- , MMD.AGENT_CODE AS agentCode
- , DATE_FORMAT(MMD.SENT_DATE,'%Y-%m-%d %T') AS sentDate
- , DATE_FORMAT(MMD.RSLT_DATE,'%Y-%m-%d %T') AS rsltDate
- , MGD.EACH_PRICE AS eachPrice
- FROM MJ_MSG_DATA MMD
- INNER JOIN LETTNGNRLMBER MB
- ON MMD.USER_ID = MB.MBER_ID
- LEFT JOIN MJ_MSG_GROUP_DATA MGD
- ON MMD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
- LEFT JOIN MJ_CASH MC
- ON MC.ORDER_ID = MMD.USERDATA
- AND MC.USER_ID = MMD.USER_ID
- WHERE 1=1
- AND MMD.SENT_DATE > date_add(now(), interval -40 day)
- AND MMD.CUR_STATE = '3'
- AND MMD.REFUND_YN = 'N'
- AND MMD.RESERVE_C_YN = 'N'
- AND MMD.MSG_TYPE IN ('4','6')
- AND MMD.USER_ID NOT IN ('hftest', 'itntest', 'imotest', 'itntestBatch')
- AND MGD.EACH_PRICE != 0
- AND MC.ORDER_ID IS NULL
- AND
- (CASE
- WHEN MMD.AGENT_CODE = '01' AND ( MMD.RSLT_CODE = '100' AND (MMD.RSLT_CODE2 = '0'))
- THEN 'S'
- WHEN MMD.AGENT_CODE = '02' AND (MMD.RSLT_CODE = '0')
- THEN 'S'
- WHEN MMD.AGENT_CODE = '03' AND (MMD.RSLT_CODE = '100' OR MMD.RSLT_CODE = '101' OR MMD.RSLT_CODE = '110' OR MMD.RSLT_CODE = '800')
- THEN 'S'
- WHEN MMD.AGENT_CODE = '04' AND (MMD.RSLT_CODE = '4100' OR MMD.RSLT_CODE = '6600')
- THEN 'S'
- WHEN MMD.AGENT_CODE = '05' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
- THEN 'S'
- WHEN MMD.AGENT_CODE = '07' AND (MMD.RSLT_CODE = '6' OR MMD.RSLT_CODE = '1000')
- THEN 'S'
- WHEN MMD.AGENT_CODE = '08' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
- THEN 'S'
- WHEN MMD.AGENT_CODE = '09' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
- THEN 'S'
- WHEN (
- MMD.RSLT_CODE IS NULL
- AND MMD.RSLT_CODE2 IS NULL
- AND MMD.SENT_DATE IS NULL
- AND MMD.RSLT_DATE IS NULL
- )
- THEN 'W'
- ELSE 'F'
- END) IN ('F')
- ORDER BY MMD.USER_ID
- LIMIT 10000
+ SELECT MMD.USER_ID AS userId
+ , MMD.MSG_GROUP_ID AS msgGroupId
+ , MMD.MSG_SEQ AS msgSeq
+ , MMD.USERDATA AS userData
+ , MMD.REFUND_YN AS refundYn
+ , MMD.RSLT_CODE AS rsltCode
+ , MMD.RSLT_CODE2 AS rsltCode2
+ , MMD.AGENT_CODE AS agentCode
+ , DATE_FORMAT(MMD.SENT_DATE,'%Y-%m-%d %T') AS sentDate
+ , DATE_FORMAT(MMD.RSLT_DATE,'%Y-%m-%d %T') AS rsltDate
+ , MGD.EACH_PRICE AS eachPrice
+ FROM MJ_MSG_DATA MMD
+ INNER JOIN LETTNGNRLMBER MB
+ ON MMD.USER_ID = MB.MBER_ID
+ LEFT JOIN MJ_MSG_GROUP_DATA MGD
+ ON MMD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
+ WHERE 1=1
+ AND MMD.SENT_DATE > date_add(now(), interval -40 day)
+ AND MMD.CUR_STATE = '3'
+ AND MMD.REFUND_YN = 'N'
+ AND MMD.RESERVE_C_YN = 'N'
+ AND MMD.MSG_TYPE IN ('4','6')
+ AND MMD.USER_ID NOT IN ('hftest', 'itntest', 'imotest', 'itntestBatch')
+ AND MGD.EACH_PRICE != 0
+ AND
+ (CASE
+ WHEN MMD.AGENT_CODE = '01' AND ( MMD.RSLT_CODE = '100' AND (MMD.RSLT_CODE2 = '0'))
+ THEN 'S'
+ WHEN MMD.AGENT_CODE = '02' AND (MMD.RSLT_CODE = '0')
+ THEN 'S'
+ WHEN MMD.AGENT_CODE = '03' AND (MMD.RSLT_CODE = '100' OR MMD.RSLT_CODE = '101' OR MMD.RSLT_CODE = '110' OR MMD.RSLT_CODE = '800')
+ THEN 'S'
+ WHEN MMD.AGENT_CODE = '04' AND (MMD.RSLT_CODE = '4100' OR MMD.RSLT_CODE = '6600')
+ THEN 'S'
+ WHEN MMD.AGENT_CODE = '05' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
+ THEN 'S'
+ WHEN MMD.AGENT_CODE = '07' AND (MMD.RSLT_CODE = '6' OR MMD.RSLT_CODE = '1000')
+ THEN 'S'
+ WHEN MMD.AGENT_CODE = '08' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
+ THEN 'S'
+ WHEN MMD.AGENT_CODE = '09' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
+ THEN 'S'
+ WHEN (
+ MMD.RSLT_CODE IS NULL
+ AND MMD.RSLT_CODE2 IS NULL
+ AND MMD.SENT_DATE IS NULL
+ AND MMD.RSLT_DATE IS NULL
+ )
+ THEN 'W'
+ ELSE 'F'
+ END) IN ('F')
+ ORDER BY MMD.USER_ID
+ LIMIT 10000
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
index da250be8..c78cfbb3 100644
--- a/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
+++ b/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
@@ -685,7 +685,7 @@ function listAddrTransHistAjax(pageNo) {
<%--
전체[${addrTotalCount } /최대 1,000,000]
--%>
- 전체[${addrTotalCount } /최대 1,000,000]
+ 전체[ /최대 1,000,000]
@@ -704,13 +704,13 @@ function listAddrTransHistAjax(pageNo) {
-
그룹미지정[ 명]
+
그룹미지정[ 명]
-
자주보내는 번호[ 명]
+
자주보내는 번호[ 명]
@@ -721,7 +721,7 @@ function listAddrTransHistAjax(pageNo) {
');">
-
[ 명]
+ [ 명]
diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
index 76f776b5..66f11404 100644
--- a/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ b/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
@@ -420,7 +420,7 @@ function setSenderList_advc(){
sendBatch(); // 다음 배치 전송
}
} else {
- alert("오류 알림 : " + data.message);
+ alert(data.message);
}
},
error: function (e) {
diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
index ef463f53..5a4010f4 100644
--- a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
+++ b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
@@ -443,7 +443,7 @@ function setSenderList_advc(){
sendBatch(); // 다음 배치 전송
}
} else {
- alert("오류 알림 : " + data.message);
+ alert(data.message);
}
}
,error: function (e) {
diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
index 716820f0..bc05f9fd 100644
--- a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
@@ -19,11 +19,11 @@
$(document).ready(function(){
- console.log(' + $(#tabDision).val() : ',$('#tabDision').val())
- if($('#tabDision').val() == 'tab02'){
- $('#send_adYnY').prop('checked', true); // 상태 변경 및 이벤트 발생
- advMsgInsert();
- }
+// console.log(' + $(#tabDision).val() : ',$('#tabDision').val())
+// if($('#tabDision').val() == 'tab02'){
+// $('#send_adYnY').prop('checked', true); // 상태 변경 및 이벤트 발생
+// advMsgInsert();
+// }
//받는사람 연락처 내용 처리
//Tabulator AJAX Data Loading
@@ -737,7 +737,7 @@ $(document).ready(function (){
if(blineCodeYn != 'N' && blineCodeYn != ''){
$('input[name="send_adYn"]').val(['Y']);
$(".send_adYnN").css('display', 'none');
- advMsgInsert();
+// advMsgInsert();
}
//미리보기 이미지 영역 숨김 처리
@@ -751,7 +751,7 @@ $(document).ready(function (){
//일반문자, 광고문자 텍스트 내용 추가해주기
$('input[name=send_adYn]').change(function(){
- advMsgInsert();
+// advMsgInsert();
});
@@ -766,7 +766,7 @@ $(document).ready(function (){
var contents = $(this).val();
var adrYn = $("input[name=send_adYn]:checked").val();
- if(adrYn == 'N'){
+ /* if(adrYn == 'N'){
if((contents.indexOf("(광고)") > -1 && (contents.indexOf("무료거부") > -1 || contents.indexOf("무료 거부") > -1))
|| contents.indexOf("(광고)") > -1){
@@ -783,10 +783,10 @@ $(document).ready(function (){
}else{
- fnByteString(contents);
- }
-
+ } */
+
+ fnByteString(contents);
});//문자 바이트수 계산하기 끝
@@ -2062,7 +2062,9 @@ $(document).ready(function (){
});
});
-function advMsgInsert(){
+/*
+ *
+ function advMsgInsert(){
var advStr = '';
var advDenyStr = '';
@@ -2099,21 +2101,19 @@ function advMsgInsert(){
//문자 바이트수 계산하기
fnByteString($('#smsTxtArea').val());
-}
+} */
//문자 바이트수 계산하기 함수
function fnByteString(contents){
console.log(' : fnByteString : ');
var totalByte = 0;
//var content = contents;
- var adverYn = $("input[name='send_adYn']:checked").val();
+ var adverYn = $('#send_adYn').val();
var adTxtLeng = 0;
var denyTxtLeng = 0;
var adverTxt = $('.ad_txt').html();
- console.log('adverTxt : ', adverTxt);
var denyTxt = $('.deny_txt').html();
- console.log('denyTxt : ', denyTxt);
-// totRows = tableL.getRows().length;
+ totRows = tableL.getRows().length;
//광고문자 상단 문구 줄바꿈 처리하기(문자길이 바이트수 계산을 위해서)
if(typeof adverTxt !='undefined' && adverTxt != null){
@@ -2259,6 +2259,7 @@ function fnByteString(contents){
fnReplCell_advc();
}else{
+ console.log('totRows : ', totRows);
var totalPrice = totalPriceSum(totRows);
$('#totalPrice').text(totalPrice);
$('#txtReplYn').val("N");
@@ -3237,7 +3238,7 @@ function fnTestSend(){
var loginVO = '${LoginVO}';
var spamStatus = false;
var callFrom = $("#callFromList option:selected").val();
- var adverYn = $("input[name='send_adYn']:checked").val(); //광고 체크여부
+ var adverYn = $('#send_adYn').val(); //광고 체크여부
//로그인 체크
if(loginVO == "" || loginVO == null){
@@ -3890,13 +3891,22 @@ function getMjMsgSentListAll(pageNo) {
"/>
+
+
-
-
- ${tabDision eq 'tab01' ? '문자전송' : (tabDision eq 'tab02' ? '대량문자/단체문자 발송' : '')}
+
+
+
+
+ 일반문자 i 광고성 메시지는 [대량문자] 탭을 이용해주세요
+
+
+ 대량문자(광고문자)
+ 광고규정
+
+
-
광고규정
-
사용안내
+
사용안내
@@ -3917,7 +3927,7 @@ function getMjMsgSentListAll(pageNo) {
-
+
발신번호
@@ -3972,14 +3982,30 @@ function getMjMsgSentListAll(pageNo) {
+
+
+
+
+
+
-
- 0 /
- 90 byte
-
-
단문
+
+
+
+
+
+ 27
+
+
+ 0
+
+ /
+
+ 90 byte
+
+
단문
@@ -4309,8 +4335,18 @@ function getMjMsgSentListAll(pageNo) {
-
내용을 입력해주세요.
-
+
+
+ (광고)
+
+
+ 무료거부 0808800858
+
+
+ 내용을 입력해주세요.
+
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
index 589255cc..489711dd 100644
--- a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
@@ -80,15 +80,15 @@
- 단문 · 장문 · 그림 문자
+ 일반문자
- 대량 문자
+ 대량문자(광고문자)
-
+
diff --git a/src/main/webapp/js/web/msgdata/msgDataView.js b/src/main/webapp/js/web/msgdata/msgDataView.js
index 0398bdc9..8a3e30a8 100644
--- a/src/main/webapp/js/web/msgdata/msgDataView.js
+++ b/src/main/webapp/js/web/msgdata/msgDataView.js
@@ -737,7 +737,8 @@ function fn_saveMyMsg(){ // 내 문자 보관함 저장
var form = document.msgForm;
var myImgFileId = []; //신규 이미지 추가 파일 Id 저장 변수
- var adverYn = $("input[name='send_adYn']:checked").val(); //광고 체크여부
+// var adverYn = $("input[name='send_adYn']:checked").val(); //광고 체크여부
+ var adverYn = $('#send_adYn').val(); //광고 체크여부
/*
이미지 에디터를 사용하여 추가한 경우 이미지 업로드 처리 - 단 에디터에서 템플릿을 선택한 경우는 업로드안함
@@ -1132,7 +1133,8 @@ function fn_sendMsgData(){
form.callFrom.value = removeDash($('#callFromList').val()); // 발신번호 대쉬(-) 문자 없애주기
//광고 종류 설정
- var adverYn = $("input[name='send_adYn']:checked").val();
+ // var adverYn = $("input[name='send_adYn']:checked").val();
+ var adverYn = $('#send_adYn').val();
if(adverYn == 'Y'){
form.msgKind.value = "A"; //광고문자 종류 설정
}else{