--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -4119,7 +4119,7 @@ |
| 4119 | 4119 |
ON MC.ORDER_ID = MMD.USERDATA |
| 4120 | 4120 |
AND MC.USER_ID = MMD.USER_ID |
| 4121 | 4121 |
WHERE 1=1 |
| 4122 |
- AND MMD.SENT_DATE > date_add(now(), interval -7 day) |
|
| 4122 |
+ /* AND MMD.SENT_DATE > date_add(now(), interval -7 day)*/ |
|
| 4123 | 4123 |
AND MMD.CUR_STATE = '3' |
| 4124 | 4124 |
AND MMD.REFUND_YN = 'N' |
| 4125 | 4125 |
AND MMD.RESERVE_C_YN = 'N' |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
... | ... | @@ -1055,7 +1055,7 @@ |
| 1055 | 1055 |
|
| 1056 | 1056 |
|
| 1057 | 1057 |
// 총 30만건이 넘으면 false |
| 1058 |
- if (!validateRowLimit(result.count)) {
|
|
| 1058 |
+ if (!validateRowLimit(result.uniqueCount)) {
|
|
| 1059 | 1059 |
return false; |
| 1060 | 1060 |
} |
| 1061 | 1061 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
... | ... | @@ -291,7 +291,6 @@ |
| 291 | 291 |
|
| 292 | 292 |
} |
| 293 | 293 |
|
| 294 |
- |
|
| 295 | 294 |
var addrData = $tableExcel.getData().map((row, index) => ({
|
| 296 | 295 |
name: row.addrNm, |
| 297 | 296 |
phone: removeDash(row.addrPhoneNo), |
... | ... | @@ -301,11 +300,13 @@ |
| 301 | 300 |
rep4: row.addrInfo4, |
| 302 | 301 |
})); |
| 303 | 302 |
|
| 303 |
+ |
|
| 304 |
+ |
|
| 304 | 305 |
// 기존 tableL의 데이터를 가져옵니다. |
| 305 | 306 |
var existingData = tableL.getData(); |
| 306 | 307 |
// 기존 데이터와 새로운 데이터를 합칩니다. |
| 307 | 308 |
var combinedData = existingData.concat(addrData); |
| 308 |
- |
|
| 309 |
+ |
|
| 309 | 310 |
|
| 310 | 311 |
/** |
| 311 | 312 |
* @ phone을 기준으로 중복 제거 및 갯수 계산 |
... | ... | @@ -318,9 +319,11 @@ |
| 318 | 319 |
* }; |
| 319 | 320 |
*/ |
| 320 | 321 |
const result = removeDuplicatesAndCount(combinedData, 'phone'); |
| 322 |
+ |
|
| 323 |
+ console.table('result : ', result);
|
|
| 321 | 324 |
|
| 322 | 325 |
// 총 30만건이 넘으면 false |
| 323 |
- if (!validateRowLimit(result.count)) {
|
|
| 326 |
+ if (!validateRowLimit(result.uniqueCount)) {
|
|
| 324 | 327 |
return false; |
| 325 | 328 |
} |
| 326 | 329 |
|
... | ... | @@ -336,23 +339,7 @@ |
| 336 | 339 |
|
| 337 | 340 |
var totRows = tableL.getRows().length; |
| 338 | 341 |
updateTotCnt(totRows); //전체 데이터 갯수 구하기 |
| 339 |
- console.log('totRows : ', totRows);
|
|
| 340 |
- var smsTxtArea = $('#smsTxtArea').val();
|
|
| 341 |
- if(smsTxtArea.indexOf("[*이름*]") > -1
|
|
| 342 |
- || smsTxtArea.indexOf("[*1*]") > -1
|
|
| 343 |
- || smsTxtArea.indexOf("[*2*]") > -1
|
|
| 344 |
- || smsTxtArea.indexOf("[*3*]") > -1
|
|
| 345 |
- || smsTxtArea.indexOf("[*4*]") > -1){
|
|
| 346 |
- |
|
| 347 |
-// fnReplCell(); |
|
| 348 |
- |
|
| 349 |
- }else{
|
|
| 350 |
- |
|
| 351 |
- //결제 금액 구하기 |
|
| 352 |
-// totalPriceSum(totRows); |
|
| 353 |
- |
|
| 354 |
- } |
|
| 355 |
- totalPriceSum(totRows); |
|
| 342 |
+ totalPriceSum(totRows); |
|
| 356 | 343 |
|
| 357 | 344 |
setAddrMassClose(); |
| 358 | 345 |
$('.field-selector').each(function() { $(this).val(''); });
|
--- src/main/webapp/js/MJUtill.js
+++ src/main/webapp/js/MJUtill.js
... | ... | @@ -986,15 +986,22 @@ |
| 986 | 986 |
* }; |
| 987 | 987 |
*/ |
| 988 | 988 |
function removeDuplicatesAndCount(array, key) {
|
| 989 |
- // 중복을 제거한 배열 생성 |
|
| 990 |
- const uniqueArray = array.filter((item, index, self) => |
|
| 991 |
- index === self.findIndex((t) => t[key] === item[key]) |
|
| 992 |
- ); |
|
| 989 |
+ // 중복 체크를 위한 Map 사용 |
|
| 990 |
+ const seen = new Map(); |
|
| 991 |
+ const uniqueArray = []; |
|
| 992 |
+ const duplicateArray = []; |
|
| 993 | 993 |
|
| 994 |
- // 중복된 데이터만 추출 |
|
| 995 |
- const duplicateArray = array.filter((item, index, self) => |
|
| 996 |
- index !== self.findIndex((t) => t[key] === item[key]) |
|
| 997 |
- ); |
|
| 994 |
+ array.forEach(item => {
|
|
| 995 |
+ const value = item[key]; |
|
| 996 |
+ if (seen.has(value)) {
|
|
| 997 |
+ // 중복된 데이터는 중복 배열에 추가 |
|
| 998 |
+ duplicateArray.push(item); |
|
| 999 |
+ } else {
|
|
| 1000 |
+ // 처음 본 데이터는 고유 배열에 추가하고 Map에 기록 |
|
| 1001 |
+ uniqueArray.push(item); |
|
| 1002 |
+ seen.set(value, true); |
|
| 1003 |
+ } |
|
| 1004 |
+ }); |
|
| 998 | 1005 |
|
| 999 | 1006 |
// 결과 반환 |
| 1000 | 1007 |
return {
|
... | ... | @@ -1022,6 +1029,8 @@ |
| 1022 | 1029 |
// 숫자 변환 |
| 1023 | 1030 |
const totalRowsNum = Number(totalRows); |
| 1024 | 1031 |
const limitNum = Number(limit); |
| 1032 |
+ console.log('totalRowsNum : ', totalRowsNum);
|
|
| 1033 |
+ console.log('limitNum : ', limitNum);
|
|
| 1025 | 1034 |
|
| 1026 | 1035 |
// 변환 후 값 확인 |
| 1027 | 1036 |
|
--- src/main/webapp/js/web/addr/cmn.js
+++ src/main/webapp/js/web/addr/cmn.js
... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 |
function isValidPhoneNumber(phone) {
|
| 5 | 5 |
// 숫자만 추출 |
| 6 | 6 |
const numberOnly = phone.replace(/\D/g, ''); |
| 7 |
- console.log('numberOnly : ' ,numberOnly);
|
|
| 7 |
+ // console.log('numberOnly : ' ,numberOnly);
|
|
| 8 | 8 |
|
| 9 | 9 |
// 유효한 형식 체크 |
| 10 | 10 |
return ( |
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?