--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -4167,14 +4167,22 @@ |
| 4167 | 4167 |
return statusResponse; |
| 4168 | 4168 |
} |
| 4169 | 4169 |
|
| 4170 |
+ float totalPrice = MsgSendUtils.setPriceforVO(mjonMsgSendVOList); |
|
| 4171 |
+ mjonMsgVO.setTotPrice(String.valueOf(totalPrice)); |
|
| 4172 |
+ |
|
| 4173 |
+ |
|
| 4174 |
+ if (!isCashSufficient(mjonMsgVO)) {
|
|
| 4175 |
+ log.error("Insufficient balance for message sending.");
|
|
| 4176 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 발송에 필요한 보유 잔액이 부족 합니다."); |
|
| 4177 |
+ } |
|
| 4178 |
+ |
|
| 4179 |
+ |
|
| 4170 | 4180 |
|
| 4171 | 4181 |
System.out.println("==================== insert 시작 ====================");
|
| 4172 | 4182 |
|
| 4173 | 4183 |
|
| 4174 | 4184 |
// log.info("mj_msg_data insert start [{}]", mjonMsgSendVOList.size());
|
| 4175 |
- float totalPrice = MsgSendUtils.setPriceforVO(mjonMsgSendVOList); |
|
| 4176 | 4185 |
// 합산 금액을 String으로 변환하여 설정 |
| 4177 |
- mjonMsgVO.setTotPrice(String.valueOf(totalPrice)); |
|
| 4178 | 4186 |
|
| 4179 | 4187 |
|
| 4180 | 4188 |
// 분할 최대건수가 되면 디비에 입력하기 |
... | ... | @@ -4217,11 +4225,7 @@ |
| 4217 | 4225 |
} |
| 4218 | 4226 |
|
| 4219 | 4227 |
|
| 4220 |
- |
|
| 4221 |
- |
|
| 4222 |
- |
|
| 4223 |
- |
|
| 4224 |
- // 한 줄 호출 |
|
| 4228 |
+ // 스팸 및 스미싱 의심이면 slack 알림 |
|
| 4225 | 4229 |
boolean isNotified = mjonCommon.processUserAndCheckSms(mjonMsgVO, userId); |
| 4226 | 4230 |
|
| 4227 | 4231 |
if (isNotified) {
|
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
... | ... | @@ -2071,6 +2071,8 @@ |
| 2071 | 2071 |
var adverTxt = $('.ad_txt').html();
|
| 2072 | 2072 |
var denyTxt = $('.deny_txt').html();
|
| 2073 | 2073 |
|
| 2074 |
+ totRows = tableL.getRows().length; |
|
| 2075 |
+ |
|
| 2074 | 2076 |
//광고문자 상단 문구 줄바꿈 처리하기(문자길이 바이트수 계산을 위해서) |
| 2075 | 2077 |
if(typeof adverTxt !='undefined' && adverTxt != null){
|
| 2076 | 2078 |
|
... | ... | @@ -2217,7 +2219,6 @@ |
| 2217 | 2219 |
fnReplCell_advc(); |
| 2218 | 2220 |
|
| 2219 | 2221 |
}else{
|
| 2220 |
- |
|
| 2221 | 2222 |
var totalPrice = totalPriceSum(totRows); |
| 2222 | 2223 |
$('#totalPrice').text(totalPrice);
|
| 2223 | 2224 |
$('#txtReplYn').val("N");
|
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
... | ... | @@ -1048,7 +1048,10 @@ |
| 1048 | 1048 |
|
| 1049 | 1049 |
//문자발송 처리 함수 |
| 1050 | 1050 |
function fn_sendMsgData(){
|
| 1051 |
- |
|
| 1051 |
+ |
|
| 1052 |
+ // 타블레이터 호출 |
|
| 1053 |
+ var $selectedData = tableL.getData(); // 데이터 가져오기 |
|
| 1054 |
+ |
|
| 1052 | 1055 |
if(!checkConf()){ //문자온 conf-check
|
| 1053 | 1056 |
alert("현재 문자 발송하기 기능 점검 중입니다.\n\n1분 후 다시 시도해주세요.");
|
| 1054 | 1057 |
return false; |
... | ... | @@ -1059,12 +1062,10 @@ |
| 1059 | 1062 |
var userMoneyOnly = stringReplaceAll(form.myPrice.value, ",", ""); |
| 1060 | 1063 |
|
| 1061 | 1064 |
// test 주석 |
| 1062 |
- /* |
|
| 1063 | 1065 |
if(parseFloat(userMoneyOnly) < parseFloat(totPriceOnly)){
|
| 1064 | 1066 |
alert("문자 발송에 필요한 회원님의 보유 잔액이 부족 합니다.");
|
| 1065 | 1067 |
return false; |
| 1066 | 1068 |
} |
| 1067 |
- */ |
|
| 1068 | 1069 |
|
| 1069 | 1070 |
// 폼 유효성 검사 |
| 1070 | 1071 |
if (!validateForm(form)) return false; |
... | ... | @@ -1079,6 +1080,11 @@ |
| 1079 | 1080 |
alert("현재 문자 발송하기 기능 점검 중입니다.\n\n잠시 후 다시 시도해주세요.");
|
| 1080 | 1081 |
return false; |
| 1081 | 1082 |
} |
| 1083 |
+ } |
|
| 1084 |
+ |
|
| 1085 |
+ if($selectedData.length > 300000){
|
|
| 1086 |
+ alert("30만건까지 발송이 가능합니다.\n받는사람 목록을 확인해주세요.");
|
|
| 1087 |
+ return false; |
|
| 1082 | 1088 |
} |
| 1083 | 1089 |
|
| 1084 | 1090 |
|
... | ... | @@ -1115,6 +1121,7 @@ |
| 1115 | 1121 |
} |
| 1116 | 1122 |
} |
| 1117 | 1123 |
|
| 1124 |
+ return false; |
|
| 1118 | 1125 |
console.log(' !!! imgFilePath : ', imgFilePath);
|
| 1119 | 1126 |
|
| 1120 | 1127 |
// img 처리 영역 |
... | ... | @@ -1394,6 +1401,7 @@ |
| 1394 | 1401 |
|
| 1395 | 1402 |
// 타블레이터 호출 |
| 1396 | 1403 |
var $selectedData = tableL.getData(); // 데이터 가져오기 |
| 1404 |
+ |
|
| 1397 | 1405 |
if($selectedData.length < 1){
|
| 1398 | 1406 |
alert("받는사람 내역을 입력해주세요.");
|
| 1399 | 1407 |
return false; |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
... | ... | @@ -328,14 +328,15 @@ |
| 328 | 328 |
|| smsTxtArea.indexOf("[*3*]") > -1
|
| 329 | 329 |
|| smsTxtArea.indexOf("[*4*]") > -1){
|
| 330 | 330 |
|
| 331 |
- fnReplCell(); |
|
| 331 |
+// fnReplCell(); |
|
| 332 | 332 |
|
| 333 | 333 |
}else{
|
| 334 | 334 |
|
| 335 | 335 |
//결제 금액 구하기 |
| 336 |
- totalPriceSum(totRows); |
|
| 336 |
+// totalPriceSum(totRows); |
|
| 337 | 337 |
|
| 338 | 338 |
} |
| 339 |
+ totalPriceSum(totRows); |
|
| 339 | 340 |
|
| 340 | 341 |
setAddrMassClose(); |
| 341 | 342 |
$('.field-selector').each(function() { $(this).val(''); });
|
--- src/main/webapp/js/txtSpecialReplace.js
+++ src/main/webapp/js/txtSpecialReplace.js
... | ... | @@ -1,5 +1,6 @@ |
| 1 | 1 |
|
| 2 | 2 |
function fnReplCell_advc(){
|
| 3 |
+ console.log(':: fnReplCell_advc :: ');
|
|
| 3 | 4 |
|
| 4 | 5 |
var smsTxtArea = $('#smsTxtArea').val();
|
| 5 | 6 |
console.log('smsTxtArea : ', smsTxtArea);
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?