--- src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java
... | ... | @@ -45,5 +45,14 @@ |
| 45 | 45 |
|
| 46 | 46 |
//알림톡 지연문자 리스트 조회 |
| 47 | 47 |
List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception; |
| 48 |
+ |
|
| 49 |
+ //알림톡 전체 발송 리스트(대시보드용) |
|
| 50 |
+ List<KakaoVO> selectMjonKakaoATGroupCompleteByUserList_advc(KakaoVO searchVO) throws Exception; |
|
| 51 |
+ |
|
| 52 |
+ //알림톡 발송 상세 리스트 |
|
| 53 |
+ List<KakaoVO> selectMjonKakaoATGroupDtList_advc(KakaoVO searchVO) throws Exception; |
|
| 54 |
+ |
|
| 55 |
+ //알림톡 전송내역 상세 |
|
| 56 |
+ KakaoVO selectMjonKakaoATVO_advc(KakaoVO mjonKakaoATVO) throws Exception; |
|
| 48 | 57 |
} |
| 49 | 58 |
|
--- src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java
... | ... | @@ -97,4 +97,18 @@ |
| 97 | 97 |
public List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception{
|
| 98 | 98 |
return (List<KakaoVO>)list("mjonKakaoATDAO.selectKakaoATDelaySentList", userId);
|
| 99 | 99 |
} |
| 100 |
+ |
|
| 101 |
+ @SuppressWarnings("unchecked")
|
|
| 102 |
+ public List<KakaoVO> selectMjonKakaoATGroupCompleteByUserList_advc(KakaoVO p_mjonKakaoATVO) throws Exception{
|
|
| 103 |
+ return (List<KakaoVO>)list("mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList_advc", p_mjonKakaoATVO);
|
|
| 104 |
+ } |
|
| 105 |
+ |
|
| 106 |
+ @SuppressWarnings("unchecked")
|
|
| 107 |
+ public List<KakaoVO> selectMjonKakaoATGroupDtList_advc(KakaoVO p_mjonKakaoATVO) throws Exception{
|
|
| 108 |
+ return (List<KakaoVO>)list("mjonKakaoATDAO.selectMjonKakaoATGroupDtList_advc", p_mjonKakaoATVO);
|
|
| 109 |
+ } |
|
| 110 |
+ |
|
| 111 |
+ public KakaoVO selectMjonKakaoATVO_advc(KakaoVO p_mjonKakaoATVO) throws Exception{
|
|
| 112 |
+ return (KakaoVO) select("mjonKakaoATDAO.selectMjonKakaoATVO_advc", p_mjonKakaoATVO);
|
|
| 113 |
+ } |
|
| 100 | 114 |
} |
--- src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java
... | ... | @@ -199,4 +199,55 @@ |
| 199 | 199 |
public List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception {
|
| 200 | 200 |
return mjonKakaoATDAO.selectKakaoATDelaySentList(userId); |
| 201 | 201 |
} |
| 202 |
+ |
|
| 203 |
+ @Override |
|
| 204 |
+ public List<KakaoVO> selectMjonKakaoATGroupCompleteByUserList_advc(KakaoVO p_mjonKakaoATVO) throws Exception {
|
|
| 205 |
+ |
|
| 206 |
+ List<KakaoVO> result = new ArrayList<KakaoVO>(); |
|
| 207 |
+ |
|
| 208 |
+ try {
|
|
| 209 |
+ |
|
| 210 |
+ result = mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList_advc(p_mjonKakaoATVO); |
|
| 211 |
+ |
|
| 212 |
+ } catch (Exception e) {
|
|
| 213 |
+ System.out.println("selectMjonKakaoATGroupCompleteByUserList ServiceImpl Error ::: " + e);
|
|
| 214 |
+ } |
|
| 215 |
+ |
|
| 216 |
+ |
|
| 217 |
+ return result; |
|
| 218 |
+ } |
|
| 219 |
+ |
|
| 220 |
+ @Override |
|
| 221 |
+ public List<KakaoVO> selectMjonKakaoATGroupDtList_advc(KakaoVO p_mjonKakaoATVO) throws Exception {
|
|
| 222 |
+ |
|
| 223 |
+ List<KakaoVO> resultList = new ArrayList<KakaoVO>(); |
|
| 224 |
+ |
|
| 225 |
+ try {
|
|
| 226 |
+ |
|
| 227 |
+ resultList = mjonKakaoATDAO.selectMjonKakaoATGroupDtList_advc(p_mjonKakaoATVO); |
|
| 228 |
+ |
|
| 229 |
+ } catch (Exception e) {
|
|
| 230 |
+ System.out.println("selectMjonKakaoATGroupDtList ServiceImpl Error ::: " + e);
|
|
| 231 |
+ |
|
| 232 |
+ } |
|
| 233 |
+ |
|
| 234 |
+ return resultList; |
|
| 235 |
+ } |
|
| 236 |
+ |
|
| 237 |
+ @Override |
|
| 238 |
+ public KakaoVO selectMjonKakaoATVO_advc(KakaoVO p_mjonKakaoATVO) throws Exception {
|
|
| 239 |
+ |
|
| 240 |
+ KakaoVO result = new KakaoVO(); |
|
| 241 |
+ |
|
| 242 |
+ try {
|
|
| 243 |
+ |
|
| 244 |
+ result = mjonKakaoATDAO.selectMjonKakaoATVO_advc(p_mjonKakaoATVO); |
|
| 245 |
+ |
|
| 246 |
+ } catch (Exception e) {
|
|
| 247 |
+ System.out.println("selectMjonKakaoATVO Service Impl Error !!! " + e);
|
|
| 248 |
+ } |
|
| 249 |
+ |
|
| 250 |
+ |
|
| 251 |
+ return result; |
|
| 252 |
+ } |
|
| 202 | 253 |
} |
--- src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
... | ... | @@ -241,7 +241,8 @@ |
| 241 | 241 |
kakaoVO.setNtceBgnde(beforeMonthDay); |
| 242 | 242 |
} |
| 243 | 243 |
|
| 244 |
- resultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(kakaoVO); |
|
| 244 |
+// resultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(kakaoVO); |
|
| 245 |
+ resultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList_advc(kakaoVO); |
|
| 245 | 246 |
|
| 246 | 247 |
model.addAttribute("resultList", resultList);
|
| 247 | 248 |
|
... | ... | @@ -331,7 +332,8 @@ |
| 331 | 332 |
} |
| 332 | 333 |
|
| 333 | 334 |
List<KakaoVO> resultList = new ArrayList<KakaoVO>(); |
| 334 |
- resultList = mjonKakaoATService.selectMjonKakaoATGroupDtList(searchVO); |
|
| 335 |
+// resultList = mjonKakaoATService.selectMjonKakaoATGroupDtList(searchVO); |
|
| 336 |
+ resultList = mjonKakaoATService.selectMjonKakaoATGroupDtList_advc(searchVO); |
|
| 335 | 337 |
|
| 336 | 338 |
model.addAttribute("resultList", resultList);
|
| 337 | 339 |
model.addAttribute("searchVO", searchVO);
|
... | ... | @@ -377,7 +379,8 @@ |
| 377 | 379 |
|
| 378 | 380 |
KakaoVO mjonKakaoATDetailVO = new KakaoVO(); |
| 379 | 381 |
if(null != searchVO.getUserData() && !"".equals(searchVO.getUserData())) { //수정
|
| 380 |
- mjonKakaoATDetailVO = mjonKakaoATService.selectMjonKakaoATVO(searchVO); |
|
| 382 |
+// mjonKakaoATDetailVO = mjonKakaoATService.selectMjonKakaoATVO(searchVO); |
|
| 383 |
+ mjonKakaoATDetailVO = mjonKakaoATService.selectMjonKakaoATVO_advc(searchVO); |
|
| 381 | 384 |
|
| 382 | 385 |
} |
| 383 | 386 |
|
--- src/main/java/itn/let/kakao/user/sent/service/KakaoSentService.java
+++ src/main/java/itn/let/kakao/user/sent/service/KakaoSentService.java
... | ... | @@ -3,6 +3,8 @@ |
| 3 | 3 |
import java.util.List; |
| 4 | 4 |
import java.util.Map; |
| 5 | 5 |
|
| 6 |
+import javax.servlet.http.HttpServletResponse; |
|
| 7 |
+ |
|
| 6 | 8 |
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATVO; |
| 7 | 9 |
|
| 8 | 10 |
public interface KakaoSentService {
|
... | ... | @@ -39,4 +41,5 @@ |
| 39 | 41 |
//발송 관리 문자발송 내용 상세보기 팝업 |
| 40 | 42 |
public MjonKakaoATVO selectKakaoSentDetailViewPhoneAjax(MjonKakaoATVO kakaoSentVO) throws Exception; |
| 41 | 43 |
|
| 44 |
+ public void kakaoExcelDown(KakaoSentVO kakaoSentVO, HttpServletResponse response) throws Exception; |
|
| 42 | 45 |
} |
--- src/main/java/itn/let/kakao/user/sent/service/KakaoSentVO.java
+++ src/main/java/itn/let/kakao/user/sent/service/KakaoSentVO.java
... | ... | @@ -115,4 +115,8 @@ |
| 115 | 115 |
|
| 116 | 116 |
private String divideYn; |
| 117 | 117 |
|
| 118 |
+ private String sendKind; |
|
| 119 |
+ |
|
| 120 |
+ private String yellowId; |
|
| 121 |
+ |
|
| 118 | 122 |
} |
--- src/main/java/itn/let/kakao/user/sent/service/impl/KakaoSentServiceImpl.java
+++ src/main/java/itn/let/kakao/user/sent/service/impl/KakaoSentServiceImpl.java
... | ... | @@ -1,18 +1,35 @@ |
| 1 | 1 |
package itn.let.kakao.user.sent.service.impl; |
| 2 | 2 |
|
| 3 |
+import java.io.OutputStream; |
|
| 3 | 4 |
import java.math.BigDecimal; |
| 4 | 5 |
import java.math.RoundingMode; |
| 6 |
+import java.text.SimpleDateFormat; |
|
| 5 | 7 |
import java.time.LocalDateTime; |
| 6 | 8 |
import java.time.format.DateTimeFormatter; |
| 7 | 9 |
import java.util.ArrayList; |
| 10 |
+import java.util.Date; |
|
| 8 | 11 |
import java.util.HashMap; |
| 9 | 12 |
import java.util.LinkedHashMap; |
| 10 | 13 |
import java.util.List; |
| 14 |
+import java.util.Locale; |
|
| 11 | 15 |
import java.util.Map; |
| 12 | 16 |
import java.util.stream.Collectors; |
| 13 | 17 |
|
| 14 | 18 |
import javax.annotation.Resource; |
| 19 |
+import javax.servlet.http.HttpServletResponse; |
|
| 15 | 20 |
|
| 21 |
+import org.apache.commons.lang3.StringUtils; |
|
| 22 |
+import org.apache.poi.ss.usermodel.BorderStyle; |
|
| 23 |
+import org.apache.poi.ss.usermodel.Cell; |
|
| 24 |
+import org.apache.poi.ss.usermodel.CellStyle; |
|
| 25 |
+import org.apache.poi.ss.usermodel.Font; |
|
| 26 |
+import org.apache.poi.ss.usermodel.HorizontalAlignment; |
|
| 27 |
+import org.apache.poi.ss.usermodel.IndexedColors; |
|
| 28 |
+import org.apache.poi.ss.usermodel.Row; |
|
| 29 |
+import org.apache.poi.ss.usermodel.Sheet; |
|
| 30 |
+import org.apache.poi.ss.usermodel.VerticalAlignment; |
|
| 31 |
+import org.apache.poi.ss.util.CellRangeAddress; |
|
| 32 |
+import org.apache.poi.xssf.streaming.SXSSFWorkbook; |
|
| 16 | 33 |
import org.springframework.stereotype.Service; |
| 17 | 34 |
|
| 18 | 35 |
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; |
... | ... | @@ -21,6 +38,7 @@ |
| 21 | 38 |
import itn.let.kakao.user.sent.service.KakaoSentDetailVO; |
| 22 | 39 |
import itn.let.kakao.user.sent.service.KakaoSentService; |
| 23 | 40 |
import itn.let.kakao.user.sent.service.KakaoSentVO; |
| 41 |
+import itn.let.mjo.msgsent.service.MjonMsgSentVO; |
|
| 24 | 42 |
|
| 25 | 43 |
@Service("KakaoSentService")
|
| 26 | 44 |
public class KakaoSentServiceImpl extends EgovAbstractServiceImpl implements KakaoSentService{
|
... | ... | @@ -437,5 +455,272 @@ |
| 437 | 455 |
return String.format("%,d건씩 %d분 간격", batchSize, intervalMinutes);
|
| 438 | 456 |
|
| 439 | 457 |
} |
| 458 |
+ |
|
| 459 |
+ @Override |
|
| 460 |
+ public void kakaoExcelDown( |
|
| 461 |
+ KakaoSentVO kakaoSentVO |
|
| 462 |
+ , HttpServletResponse response |
|
| 463 |
+ ) throws Exception {
|
|
| 464 |
+ kakaoSentVO.setRecordCountPerPage(100000); |
|
| 465 |
+ kakaoSentVO.setFirstIndex(0); |
|
| 466 |
+ |
|
| 467 |
+ if(StringUtils.isEmpty(kakaoSentVO.getSearchSortOrd())) {
|
|
| 468 |
+ kakaoSentVO.setSearchSortOrd("desc");
|
|
| 469 |
+// kakaoSentVO.setSearchSortCnd("B.REQ_DATE");
|
|
| 470 |
+ } |
|
| 471 |
+ |
|
| 472 |
+ //예약 관리 리스트 불러오기 |
|
| 473 |
+ List<KakaoSentVO> resultList = kakaoSentDAO.selectAllKakaoSentList_advc(kakaoSentVO); |
|
| 474 |
+ |
|
| 475 |
+// long startTime = System.nanoTime(); // 시작 시간 측정 |
|
| 476 |
+// resultAllSentList = makeDetailFunction(resultAllSentList); |
|
| 477 |
+ |
|
| 478 |
+ resultList = resultList.stream().map(t -> setPriceNCode(t)).collect(Collectors.toList()); |
|
| 479 |
+// long endTime = System.nanoTime(); // 끝난 시간 측정 |
|
| 480 |
+// double executionTimeInSeconds = (endTime - startTime) / 1_000_000_000.0; |
|
| 481 |
+// System.out.println("Execution time: " + executionTimeInSeconds + " seconds");
|
|
| 482 |
+ |
|
| 483 |
+ SXSSFWorkbook workbook = null; // SXSSFWorkbook 변수 선언 |
|
| 484 |
+ try{
|
|
| 485 |
+ |
|
| 486 |
+ |
|
| 487 |
+ // Workbook 생성 |
|
| 488 |
+ workbook = new SXSSFWorkbook(); |
|
| 489 |
+ Sheet sheet = workbook.createSheet("발송 내역");
|
|
| 490 |
+ |
|
| 491 |
+ // 열 너비 설정 |
|
| 492 |
+ sheet.setColumnWidth(0, 3000); // 번호 열 |
|
| 493 |
+ sheet.setColumnWidth(1, 4000); // 발송일시 열 |
|
| 494 |
+ sheet.setColumnWidth(2, 5000); // 구분 열 |
|
| 495 |
+ sheet.setColumnWidth(3, 5000); //채널 ID 열 |
|
| 496 |
+ sheet.setColumnWidth(4, 3000); // 형태 열 |
|
| 497 |
+ sheet.setColumnWidth(5, 10000); // 내용 열 |
|
| 498 |
+ sheet.setColumnWidth(6, 4000); // 발송건수 열 |
|
| 499 |
+ sheet.setColumnWidth(7, 3000); // 대기 열 |
|
| 500 |
+ sheet.setColumnWidth(8, 3000); // 카카오톡 성공 열 |
|
| 501 |
+ sheet.setColumnWidth(9, 3000); // 카카오톡 실패 열 |
|
| 502 |
+ sheet.setColumnWidth(10, 3000); // 대체문자 성공 열 |
|
| 503 |
+ sheet.setColumnWidth(11, 3000); // 대체문자 실패 열 |
|
| 504 |
+ sheet.setColumnWidth(12, 4000); // 금액 열 |
|
| 505 |
+ sheet.setColumnWidth(13, 5000); // 진행상황 열 |
|
| 506 |
+ |
|
| 507 |
+ // 헤더 스타일 설정 |
|
| 508 |
+ CellStyle headerStyle = workbook.createCellStyle(); |
|
| 509 |
+ headerStyle.setAlignment(HorizontalAlignment.CENTER); |
|
| 510 |
+ headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); |
|
| 511 |
+ headerStyle.setBorderTop(BorderStyle.THIN); |
|
| 512 |
+ headerStyle.setBorderBottom(BorderStyle.THIN); |
|
| 513 |
+ headerStyle.setBorderLeft(BorderStyle.THIN); |
|
| 514 |
+ headerStyle.setBorderRight(BorderStyle.THIN); |
|
| 515 |
+ headerStyle.setTopBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 516 |
+ headerStyle.setBottomBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 517 |
+ headerStyle.setLeftBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 518 |
+ headerStyle.setRightBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 519 |
+ |
|
| 520 |
+ Font font = workbook.createFont(); |
|
| 521 |
+ font.setBold(true); // 글씨체 굵게 |
|
| 522 |
+ font.setFontHeightInPoints((short) 12); // 글씨 크기 |
|
| 523 |
+ headerStyle.setFont(font); |
|
| 524 |
+ |
|
| 525 |
+ // 데이터 스타일 설정 (가운데 정렬) |
|
| 526 |
+ CellStyle centerStyle = workbook.createCellStyle(); |
|
| 527 |
+ centerStyle.setAlignment(HorizontalAlignment.CENTER); |
|
| 528 |
+ centerStyle.setVerticalAlignment(VerticalAlignment.CENTER); |
|
| 529 |
+ centerStyle.setBorderTop(BorderStyle.THIN); |
|
| 530 |
+ centerStyle.setBorderBottom(BorderStyle.THIN); |
|
| 531 |
+ centerStyle.setBorderLeft(BorderStyle.THIN); |
|
| 532 |
+ centerStyle.setBorderRight(BorderStyle.THIN); |
|
| 533 |
+ centerStyle.setTopBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 534 |
+ centerStyle.setBottomBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 535 |
+ centerStyle.setLeftBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 536 |
+ centerStyle.setRightBorderColor(IndexedColors.GREY_25_PERCENT.getIndex()); |
|
| 537 |
+ |
|
| 538 |
+ // 첫 번째 헤더 작성 (상단 병합) |
|
| 539 |
+ Row headerRow = sheet.createRow(0); |
|
| 540 |
+ |
|
| 541 |
+ // 번호 열 추가 |
|
| 542 |
+ Cell cell = headerRow.createCell(0); |
|
| 543 |
+ cell.setCellValue("번호");
|
|
| 544 |
+ cell.setCellStyle(headerStyle); |
|
| 545 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0)); // 번호 병합 |
|
| 546 |
+ |
|
| 547 |
+ // 구분 열 추가 |
|
| 548 |
+ cell = headerRow.createCell(1); |
|
| 549 |
+ cell.setCellValue("발송일시");
|
|
| 550 |
+ cell.setCellStyle(headerStyle); |
|
| 551 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1)); // 구분 병합 |
|
| 552 |
+ |
|
| 553 |
+ // 구분 열 추가 |
|
| 554 |
+ cell = headerRow.createCell(2); |
|
| 555 |
+ cell.setCellValue("구분");
|
|
| 556 |
+ cell.setCellStyle(headerStyle); |
|
| 557 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 2, 2)); // 구분 병합 |
|
| 558 |
+ |
|
| 559 |
+ cell = headerRow.createCell(3); |
|
| 560 |
+ cell.setCellValue("채널ID");
|
|
| 561 |
+ cell.setCellStyle(headerStyle); |
|
| 562 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 3, 3)); // 발송일시 병합 |
|
| 563 |
+ |
|
| 564 |
+ cell = headerRow.createCell(4); |
|
| 565 |
+ cell.setCellValue("형태");
|
|
| 566 |
+ cell.setCellStyle(headerStyle); |
|
| 567 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 4, 4)); // 형태 병합 |
|
| 568 |
+ |
|
| 569 |
+ cell = headerRow.createCell(5); |
|
| 570 |
+ cell.setCellValue("내용");
|
|
| 571 |
+ cell.setCellStyle(headerStyle); |
|
| 572 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 5, 5)); // 내용 병합 |
|
| 573 |
+ |
|
| 574 |
+ cell = headerRow.createCell(6); |
|
| 575 |
+ cell.setCellValue("발송건수");
|
|
| 576 |
+ cell.setCellStyle(headerStyle); |
|
| 577 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 6, 6)); // 발송건수 병합 |
|
| 578 |
+ |
|
| 579 |
+ cell = headerRow.createCell(7); |
|
| 580 |
+ cell.setCellValue("대기");
|
|
| 581 |
+ cell.setCellStyle(headerStyle); |
|
| 582 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 7, 7)); // 발송건수 병합 |
|
| 583 |
+ |
|
| 584 |
+ cell = headerRow.createCell(8); |
|
| 585 |
+ cell.setCellValue("카카오톡 결과");
|
|
| 586 |
+ cell.setCellStyle(headerStyle); |
|
| 587 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 0, 8, 9)); // 카카오톡 결과 병합 |
|
| 588 |
+ |
|
| 589 |
+ cell = headerRow.createCell(10); |
|
| 590 |
+ cell.setCellValue("대체문자 결과");
|
|
| 591 |
+ cell.setCellStyle(headerStyle); |
|
| 592 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 0, 10, 11)); // 대체문자 결과 병합 |
|
| 593 |
+ |
|
| 594 |
+ cell = headerRow.createCell(12); |
|
| 595 |
+ cell.setCellValue("금액(원)");
|
|
| 596 |
+ cell.setCellStyle(headerStyle); |
|
| 597 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 12, 12)); // 금액(원) 병합 |
|
| 598 |
+ |
|
| 599 |
+ cell = headerRow.createCell(13); |
|
| 600 |
+ cell.setCellValue("진행상황");
|
|
| 601 |
+ cell.setCellStyle(headerStyle); |
|
| 602 |
+ sheet.addMergedRegion(new CellRangeAddress(0, 1, 13, 13)); // 진행상황 병합 |
|
| 603 |
+ |
|
| 604 |
+ // 두 번째 헤더 작성 (카카오톡 결과 하위 열) |
|
| 605 |
+ Row subHeaderRow = sheet.createRow(1); |
|
| 606 |
+ |
|
| 607 |
+ String[] subHeadersKakao = {"성공", "실패"};
|
|
| 608 |
+ for (int i = 0; i < subHeadersKakao.length; i++) {
|
|
| 609 |
+ cell = subHeaderRow.createCell(8 + i); // 결과 열 시작점(6번 열)부터 순차적으로 설정 |
|
| 610 |
+ cell.setCellValue(subHeadersKakao[i]); |
|
| 611 |
+ cell.setCellStyle(headerStyle); |
|
| 612 |
+ } |
|
| 613 |
+ |
|
| 614 |
+ // 두 번째 헤더 작성 (대체문자 결과 하위 열) |
|
| 615 |
+ String[] subHeadersKakaoDaeChae = {"성공", "실패"};
|
|
| 616 |
+ for (int i = 0; i < subHeadersKakaoDaeChae.length; i++) {
|
|
| 617 |
+ cell = subHeaderRow.createCell(10 + i); // 결과 열 시작점(6번 열)부터 순차적으로 설정 |
|
| 618 |
+ cell.setCellValue(subHeadersKakaoDaeChae[i]); |
|
| 619 |
+ cell.setCellStyle(headerStyle); |
|
| 620 |
+ } |
|
| 621 |
+ |
|
| 622 |
+ // Object[][]로 변환 |
|
| 623 |
+ Object[][] data = new Object[resultList.size()][14]; // 14은 필드 수 |
|
| 624 |
+ |
|
| 625 |
+ for (int i = 0; i < resultList.size(); i++) {
|
|
| 626 |
+ KakaoSentVO vo = resultList.get(i); |
|
| 627 |
+ //번호 |
|
| 628 |
+ data[i][0] = i+1; |
|
| 629 |
+ //발송일시 |
|
| 630 |
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
| 631 |
+ data[i][1] = sdf.format(vo.getReqdate()); |
|
| 632 |
+ |
|
| 633 |
+ //구분 |
|
| 634 |
+ data[i][2] = "H".equals(vo.getSendKind()) ? "WEB" : "API"; |
|
| 635 |
+ |
|
| 636 |
+ //채널ID |
|
| 637 |
+ data[i][3] = vo.getYellowId(); |
|
| 638 |
+ |
|
| 639 |
+ //형태 |
|
| 640 |
+ data[i][4] = "8".equals(vo.getMsgType()) ? "알림톡" : "친구톡"; |
|
| 641 |
+ |
|
| 642 |
+ String reserveTxt = ""; |
|
| 643 |
+ if("Y".equals(vo.getReserveYn())) {reserveTxt="[예약]";}
|
|
| 644 |
+ if("Y".equals(vo.getDivideYn())) {reserveTxt+="[분할]";}
|
|
| 645 |
+ |
|
| 646 |
+ data[i][5] = reserveTxt + (StringUtils.isEmpty(vo.getSmsTxt()) ? "-" : vo.getSmsTxt()); |
|
| 647 |
+ data[i][6] = vo.getMsgGroupCnt(); |
|
| 648 |
+ data[i][7] = vo.getWaitCount(); |
|
| 649 |
+ data[i][8] = vo.getSuccessCount(); |
|
| 650 |
+ data[i][9] = vo.getFailCount(); |
|
| 651 |
+ data[i][10] = vo.getKakaoResendSuccCount(); |
|
| 652 |
+ data[i][11] = vo.getKakaoResendFailCount(); |
|
| 653 |
+ data[i][12] = vo.getTotPrice(); |
|
| 654 |
+ |
|
| 655 |
+ String statusTxt="진행중"; |
|
| 656 |
+ if ("04".equals(vo.getStatusCd())) {
|
|
| 657 |
+ statusTxt = "예약취소"; // 예약취소 코드 |
|
| 658 |
+ } else if ("03".equals(vo.getStatusCd())) {
|
|
| 659 |
+ statusTxt = "예약대기"; // 예약대기 코드 ( 예약취소 버튼 노출 ) |
|
| 660 |
+ } else if ("02".equals(vo.getStatusCd())) {
|
|
| 661 |
+ statusTxt = "완료"; // 완료 코드 |
|
| 662 |
+ } |
|
| 663 |
+ |
|
| 664 |
+ data[i][13] = statusTxt; |
|
| 665 |
+ } |
|
| 666 |
+ |
|
| 667 |
+ int rowNum = 2; // 데이터 시작 행 |
|
| 668 |
+ for (Object[] rowData : data) {
|
|
| 669 |
+ Row row = sheet.createRow(rowNum++); |
|
| 670 |
+ for (int col = 0; col < rowData.length; col++) {
|
|
| 671 |
+ cell = row.createCell(col); |
|
| 672 |
+ |
|
| 673 |
+ // "내용" 열만 제외하고 가운데 정렬 |
|
| 674 |
+ if (col == 5) { // 내용 열
|
|
| 675 |
+ cell.setCellValue((String) rowData[col]); |
|
| 676 |
+ } else if (rowData[col] instanceof String) {
|
|
| 677 |
+ cell.setCellValue((String) rowData[col]); |
|
| 678 |
+ cell.setCellStyle(centerStyle); |
|
| 679 |
+ } else if (rowData[col] instanceof Integer) {
|
|
| 680 |
+ cell.setCellValue((Integer) rowData[col]); |
|
| 681 |
+ cell.setCellStyle(centerStyle); |
|
| 682 |
+ } |
|
| 683 |
+ } |
|
| 684 |
+ } |
|
| 685 |
+ |
|
| 686 |
+ // 파일 다운로드 응답 설정 |
|
| 687 |
+ String fileName ="발송결과_리스트"; // 저장 파일명 |
|
| 688 |
+ SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd_HHmmss", Locale.KOREA ); |
|
| 689 |
+ Date currentTime = new Date (); |
|
| 690 |
+ String mTime = mSimpleDateFormat.format ( currentTime ); |
|
| 691 |
+ fileName = fileName+"("+mTime+")";
|
|
| 692 |
+ |
|
| 693 |
+ response.setHeader("Set-Cookie", "fileDownload=true; path=/");
|
|
| 694 |
+ response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx"));
|
|
| 695 |
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
| 696 |
+ |
|
| 697 |
+ // 파일 출력 |
|
| 698 |
+ workbook.write(response.getOutputStream()); |
|
| 699 |
+ workbook.close(); |
|
| 700 |
+ |
|
| 701 |
+ } catch (Exception e) {
|
|
| 702 |
+ // 에러 처리 로직 |
|
| 703 |
+ response.setHeader("Set-Cookie", "fileDownload=false; path=/");
|
|
| 704 |
+ response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
|
| 705 |
+ response.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
| 706 |
+ |
|
| 707 |
+ try (OutputStream out = response.getOutputStream()) {
|
|
| 708 |
+ byte[] data = "fail..".getBytes(); |
|
| 709 |
+ out.write(data, 0, data.length); |
|
| 710 |
+ } catch (Exception ignore) {
|
|
| 711 |
+ ignore.printStackTrace(); |
|
| 712 |
+ } |
|
| 713 |
+ } finally {
|
|
| 714 |
+ if (workbook != null) {
|
|
| 715 |
+ try {
|
|
| 716 |
+ workbook.dispose(); // SXSSFWorkbook 임시 파일 제거 |
|
| 717 |
+ workbook.close(); |
|
| 718 |
+ } catch (Exception ignore) {
|
|
| 719 |
+ ignore.printStackTrace(); |
|
| 720 |
+ } |
|
| 721 |
+ } |
|
| 722 |
+ } |
|
| 723 |
+ |
|
| 724 |
+ } |
|
| 440 | 725 |
|
| 441 | 726 |
} |
--- src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java
+++ src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java
... | ... | @@ -507,10 +507,7 @@ |
| 507 | 507 |
@RequestMapping(value= {"/web/mjon/msgsent/kakaoSentExcelDownLoadAjax.do"})
|
| 508 | 508 |
public void kakaoSentExcelDownLoadAjax( |
| 509 | 509 |
KakaoSentVO kakaoSentVO, |
| 510 |
- RedirectAttributes redirectAttributes, |
|
| 511 |
- HttpServletRequest request, |
|
| 512 |
- HttpServletResponse response , |
|
| 513 |
- ModelMap model) throws Exception{
|
|
| 510 |
+ HttpServletResponse response) throws Exception{
|
|
| 514 | 511 |
|
| 515 | 512 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
| 516 | 513 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
... | ... | @@ -518,89 +515,91 @@ |
| 518 | 515 |
if(!userId.equals("")) {
|
| 519 | 516 |
|
| 520 | 517 |
kakaoSentVO.setUserId(userId); |
| 518 |
+// |
|
| 519 |
+// String stateType = kakaoSentVO.getStateType(); |
|
| 520 |
+// String tabType = kakaoSentVO.getTabType(); |
|
| 521 |
+// |
|
| 522 |
+// // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. |
|
| 523 |
+// SXSSFWorkbook wb = new SXSSFWorkbook(100); |
|
| 524 |
+// String fileName ="발송관리 엑셀 리스트"; // 저장 파일명 |
|
| 525 |
+// String sheetTitle = "문자 발송 내역" ; // 셀 제목 |
|
| 526 |
+// Sheet sheet = wb.createSheet(sheetTitle); |
|
| 527 |
+// Cell cell = null; |
|
| 528 |
+// Row row = null; |
|
| 529 |
+// |
|
| 530 |
+// CellStyle style = wb.createCellStyle(); |
|
| 531 |
+// style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 |
|
| 532 |
+// style.setBorderLeft(CellStyle.BORDER_THIN); |
|
| 533 |
+// style.setBorderRight(CellStyle.BORDER_THIN); |
|
| 534 |
+// style.setBorderTop(CellStyle.BORDER_THIN); |
|
| 535 |
+// |
|
| 536 |
+// CellStyle styleLastCell = wb.createCellStyle(); |
|
| 537 |
+// styleLastCell.setBorderLeft(CellStyle.BORDER_THIN); |
|
| 538 |
+// |
|
| 539 |
+// // 정렬 |
|
| 540 |
+// style.setAlignment(CellStyle.ALIGN_CENTER); //가운데 정렬 |
|
| 541 |
+// style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); //높이 가운데 정렬 |
|
| 542 |
+// |
|
| 543 |
+// Font font = wb.createFont(); |
|
| 544 |
+// font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold |
|
| 545 |
+// |
|
| 546 |
+// |
|
| 547 |
+// String type = ""; |
|
| 548 |
+// String fCnt = ""; |
|
| 549 |
+// |
|
| 550 |
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
| 551 |
+// |
|
| 552 |
+// try{
|
|
| 553 |
+// |
|
| 554 |
+// |
|
| 555 |
+// kakaoSentVO.setRecordCountPerPage(100000); |
|
| 556 |
+// kakaoSentVO.setFirstIndex(0); |
|
| 557 |
+// |
|
| 558 |
+// if("".equals(kakaoSentVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
|
| 559 |
+// kakaoSentVO.setSearchSortCnd("regdate");
|
|
| 560 |
+// kakaoSentVO.setSearchSortOrd("desc");
|
|
| 561 |
+// } |
|
| 562 |
+// kakaoSentVO.setReserveCYn("N");
|
|
| 563 |
+// //발송결과-카카오톡 리스트 불러오기 |
|
| 564 |
+// List<KakaoSentVO> resultAllSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO); |
|
| 565 |
+// if("groupList".equals(kakaoSentVO.getListType())) {
|
|
| 566 |
+// //받는사람(전송건별) |
|
| 567 |
+// kakaoSentExcelGroup(resultAllSentList, row, sheet, cell, style, styleLastCell, type, fCnt, sdf); |
|
| 568 |
+// }else {
|
|
| 569 |
+// kakaoSentExcelPrivate(resultAllSentList, row, sheet, cell, style, styleLastCell, type, fCnt, sdf); |
|
| 570 |
+// } |
|
| 571 |
+// |
|
| 572 |
+// |
|
| 573 |
+// response.setHeader("Set-Cookie", "fileDownload=true; path=/");
|
|
| 574 |
+// SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd_HHmmss", Locale.KOREA ); |
|
| 575 |
+// Date currentTime = new Date (); |
|
| 576 |
+// String mTime = mSimpleDateFormat.format ( currentTime ); |
|
| 577 |
+// fileName = fileName+"("+mTime+")";
|
|
| 578 |
+// |
|
| 579 |
+// response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx"));
|
|
| 580 |
+// wb.write(response.getOutputStream()); |
|
| 581 |
+// }catch(Exception e) {
|
|
| 582 |
+// response.setHeader("Set-Cookie", "fileDownload=false; path=/");
|
|
| 583 |
+// response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
|
| 584 |
+// response.setHeader("Content-Type","text/html; charset=utf-8");
|
|
| 585 |
+// OutputStream out = null; |
|
| 586 |
+// try {
|
|
| 587 |
+// out = response.getOutputStream(); |
|
| 588 |
+// byte[] data = new String("fail..").getBytes();
|
|
| 589 |
+// out.write(data, 0, data.length); |
|
| 590 |
+// } catch(Exception ignore) {
|
|
| 591 |
+// ignore.printStackTrace(); |
|
| 592 |
+// } finally {
|
|
| 593 |
+// if(out != null) try { out.close(); } catch(Exception ignore) {}
|
|
| 594 |
+// } |
|
| 595 |
+// }finally {
|
|
| 596 |
+// // 디스크 적었던 임시파일을 제거합니다. |
|
| 597 |
+// wb.dispose(); |
|
| 598 |
+// try { wb.close(); } catch(Exception ignore) {}
|
|
| 599 |
+// } |
|
| 600 |
+ |
|
| 601 |
+ kakaoSentService.kakaoExcelDown(kakaoSentVO, response); |
|
| 521 | 602 |
|
| 522 |
- String stateType = kakaoSentVO.getStateType(); |
|
| 523 |
- String tabType = kakaoSentVO.getTabType(); |
|
| 524 |
- |
|
| 525 |
- // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. |
|
| 526 |
- SXSSFWorkbook wb = new SXSSFWorkbook(100); |
|
| 527 |
- String fileName ="발송관리 엑셀 리스트"; // 저장 파일명 |
|
| 528 |
- String sheetTitle = "문자 발송 내역" ; // 셀 제목 |
|
| 529 |
- Sheet sheet = wb.createSheet(sheetTitle); |
|
| 530 |
- Cell cell = null; |
|
| 531 |
- Row row = null; |
|
| 532 |
- |
|
| 533 |
- CellStyle style = wb.createCellStyle(); |
|
| 534 |
- style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 |
|
| 535 |
- style.setBorderLeft(CellStyle.BORDER_THIN); |
|
| 536 |
- style.setBorderRight(CellStyle.BORDER_THIN); |
|
| 537 |
- style.setBorderTop(CellStyle.BORDER_THIN); |
|
| 538 |
- |
|
| 539 |
- CellStyle styleLastCell = wb.createCellStyle(); |
|
| 540 |
- styleLastCell.setBorderLeft(CellStyle.BORDER_THIN); |
|
| 541 |
- |
|
| 542 |
- // 정렬 |
|
| 543 |
- style.setAlignment(CellStyle.ALIGN_CENTER); //가운데 정렬 |
|
| 544 |
- style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); //높이 가운데 정렬 |
|
| 545 |
- |
|
| 546 |
- Font font = wb.createFont(); |
|
| 547 |
- font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold |
|
| 548 |
- |
|
| 549 |
- |
|
| 550 |
- String type = ""; |
|
| 551 |
- String fCnt = ""; |
|
| 552 |
- |
|
| 553 |
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
| 554 |
- |
|
| 555 |
- try{
|
|
| 556 |
- |
|
| 557 |
- |
|
| 558 |
- kakaoSentVO.setRecordCountPerPage(100000); |
|
| 559 |
- kakaoSentVO.setFirstIndex(0); |
|
| 560 |
- |
|
| 561 |
- if("".equals(kakaoSentVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
|
| 562 |
- kakaoSentVO.setSearchSortCnd("regdate");
|
|
| 563 |
- kakaoSentVO.setSearchSortOrd("desc");
|
|
| 564 |
- } |
|
| 565 |
- kakaoSentVO.setReserveCYn("N");
|
|
| 566 |
- //발송결과-카카오톡 리스트 불러오기 |
|
| 567 |
- List<KakaoSentVO> resultAllSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO); |
|
| 568 |
- if("groupList".equals(kakaoSentVO.getListType())) {
|
|
| 569 |
- //받는사람(전송건별) |
|
| 570 |
- kakaoSentExcelGroup(resultAllSentList, row, sheet, cell, style, styleLastCell, type, fCnt, sdf); |
|
| 571 |
- }else {
|
|
| 572 |
- kakaoSentExcelPrivate(resultAllSentList, row, sheet, cell, style, styleLastCell, type, fCnt, sdf); |
|
| 573 |
- } |
|
| 574 |
- |
|
| 575 |
- |
|
| 576 |
- response.setHeader("Set-Cookie", "fileDownload=true; path=/");
|
|
| 577 |
- SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd_HHmmss", Locale.KOREA ); |
|
| 578 |
- Date currentTime = new Date (); |
|
| 579 |
- String mTime = mSimpleDateFormat.format ( currentTime ); |
|
| 580 |
- fileName = fileName+"("+mTime+")";
|
|
| 581 |
- |
|
| 582 |
- response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx"));
|
|
| 583 |
- wb.write(response.getOutputStream()); |
|
| 584 |
- }catch(Exception e) {
|
|
| 585 |
- response.setHeader("Set-Cookie", "fileDownload=false; path=/");
|
|
| 586 |
- response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
|
| 587 |
- response.setHeader("Content-Type","text/html; charset=utf-8");
|
|
| 588 |
- OutputStream out = null; |
|
| 589 |
- try {
|
|
| 590 |
- out = response.getOutputStream(); |
|
| 591 |
- byte[] data = new String("fail..").getBytes();
|
|
| 592 |
- out.write(data, 0, data.length); |
|
| 593 |
- } catch(Exception ignore) {
|
|
| 594 |
- ignore.printStackTrace(); |
|
| 595 |
- } finally {
|
|
| 596 |
- if(out != null) try { out.close(); } catch(Exception ignore) {}
|
|
| 597 |
- } |
|
| 598 |
- }finally {
|
|
| 599 |
- // 디스크 적었던 임시파일을 제거합니다. |
|
| 600 |
- wb.dispose(); |
|
| 601 |
- try { wb.close(); } catch(Exception ignore) {}
|
|
| 602 |
- } |
|
| 603 |
- |
|
| 604 | 603 |
}else {
|
| 605 | 604 |
response.sendRedirect("/web/kakao/sent/selectKakaoSentView.do");
|
| 606 | 605 |
} |
--- src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml
... | ... | @@ -2406,4 +2406,742 @@ |
| 2406 | 2406 |
reqDate DESC |
| 2407 | 2407 |
,sentDate DESC |
| 2408 | 2408 |
</select> |
| 2409 |
+ |
|
| 2410 |
+ <select id="mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList_advc" parameterClass="kakaoVO" resultClass="kakaoVO"> |
|
| 2411 |
+ SELECT |
|
| 2412 |
+ M2.totCnt , |
|
| 2413 |
+ M2.userId , |
|
| 2414 |
+ M2.msgGroupId , |
|
| 2415 |
+ M2.msgGroupCnt , |
|
| 2416 |
+ M2.smsTxt , |
|
| 2417 |
+ M2.subject , |
|
| 2418 |
+ M2.regDate , |
|
| 2419 |
+ M2.reqDate , |
|
| 2420 |
+ M2.rsltDate , |
|
| 2421 |
+ M2.callFrom , |
|
| 2422 |
+ M2.callTo , |
|
| 2423 |
+ M2.totPrice , |
|
| 2424 |
+ M2.eachPrice , |
|
| 2425 |
+ M2.curState , |
|
| 2426 |
+ M2.rsltCode , |
|
| 2427 |
+ M2.rsltCode2 , |
|
| 2428 |
+ M2.orderByrsltCode , |
|
| 2429 |
+ M2.delFlag , |
|
| 2430 |
+ M2.msgType , |
|
| 2431 |
+ M2.fileCnt , |
|
| 2432 |
+ M2.agentCode , |
|
| 2433 |
+ M2.reserveYn , |
|
| 2434 |
+ M2.reserveCYn , |
|
| 2435 |
+ M2.cancelDate , |
|
| 2436 |
+ M2.msgTypeName , |
|
| 2437 |
+ M2.orderByCode , |
|
| 2438 |
+ M2.msgResult , |
|
| 2439 |
+ M2.msgNoticetalkSenderKey , |
|
| 2440 |
+ M2.msgNoticetalkTmpKey , |
|
| 2441 |
+ M2.yellowId , |
|
| 2442 |
+ M2.userNm , |
|
| 2443 |
+ M2.atSmishingYn , |
|
| 2444 |
+ M2.atDelayCompleteYn, |
|
| 2445 |
+ M2.atDelayYn, |
|
| 2446 |
+ ( SELECT COUNT(0) |
|
| 2447 |
+ FROM MJ_MSG_DATA C |
|
| 2448 |
+ WHERE C.RESERVE_C_YN = 'N' |
|
| 2449 |
+ AND C.MSG_GROUP_ID = M2.msgGroupId |
|
| 2450 |
+ AND C.RSLT_CODE = '7000' |
|
| 2451 |
+ ) AS successCount , |
|
| 2452 |
+ ( SELECT COUNT(0) |
|
| 2453 |
+ FROM MJ_MSG_DATA C |
|
| 2454 |
+ WHERE C.RESERVE_C_YN = 'N' |
|
| 2455 |
+ AND C.MSG_GROUP_ID = M2.msgGroupId |
|
| 2456 |
+ AND C.RSLT_CODE = '7000' |
|
| 2457 |
+ AND C.MSG_TYPE = '8' |
|
| 2458 |
+ ) AS atSuccessCount , |
|
| 2459 |
+ ( SELECT COUNT(0) |
|
| 2460 |
+ FROM MJ_MSG_DATA C |
|
| 2461 |
+ WHERE C.RESERVE_C_YN = 'N' |
|
| 2462 |
+ AND C.MSG_GROUP_ID = M2.msgGroupId |
|
| 2463 |
+ AND C.RSLT_CODE != '7000' |
|
| 2464 |
+ AND C.MSG_TYPE = '8' |
|
| 2465 |
+ ) AS atFailCount , |
|
| 2466 |
+ ( SELECT COUNT(0) |
|
| 2467 |
+ FROM MJ_MSG_DATA C |
|
| 2468 |
+ WHERE C.DEL_FLAG = 'N' |
|
| 2469 |
+ AND C.RESERVE_C_YN = 'N' |
|
| 2470 |
+ AND C.MSG_GROUP_ID = M2.msgGroupId |
|
| 2471 |
+ AND C.RSLT_CODE = '7000' |
|
| 2472 |
+ AND C.MSG_TYPE = '9' |
|
| 2473 |
+ ) AS ftSuccessCount , |
|
| 2474 |
+ ( SELECT COUNT(0) |
|
| 2475 |
+ FROM MJ_MSG_DATA C |
|
| 2476 |
+ WHERE C.DEL_FLAG = 'N' |
|
| 2477 |
+ AND C.RESERVE_C_YN = 'N' |
|
| 2478 |
+ AND C.MSG_GROUP_ID = M2.msgGroupId |
|
| 2479 |
+ AND C.RSLT_CODE != '7000' |
|
| 2480 |
+ AND C.MSG_TYPE = '9' |
|
| 2481 |
+ ) AS ftFailCount , |
|
| 2482 |
+ <!-- '0' AS ftSuccessCount, |
|
| 2483 |
+ '0' AS ftFailCount, --> |
|
| 2484 |
+ M2.bizUmid, |
|
| 2485 |
+ M2.callStatus, |
|
| 2486 |
+ M2.bizKakaoResendYn, |
|
| 2487 |
+ ( SELECT COUNT(0) |
|
| 2488 |
+ FROM BIZ_LOG BL1, |
|
| 2489 |
+ MJ_MSG_DATA MMD1 |
|
| 2490 |
+ WHERE M2.bizKakaoResendYn = 'Y' |
|
| 2491 |
+ AND M2.msgGroupId = MMD1.MSG_GROUP_ID |
|
| 2492 |
+ AND MMD1.BIZ_UMID = BL1.CMID |
|
| 2493 |
+ AND ( |
|
| 2494 |
+ CASE |
|
| 2495 |
+ WHEN BL1.CALL_STATUS in ('6600','4100')
|
|
| 2496 |
+ THEN 'S' |
|
| 2497 |
+ ELSE 'F' |
|
| 2498 |
+ END ) = 'S' |
|
| 2499 |
+ ) kakaoResendSuccCount, |
|
| 2500 |
+ ( SELECT COUNT(0) |
|
| 2501 |
+ FROM BIZ_LOG BL1, |
|
| 2502 |
+ MJ_MSG_DATA MMD1 |
|
| 2503 |
+ WHERE M2.bizKakaoResendYn = 'Y' |
|
| 2504 |
+ AND M2.msgGroupId = MMD1.MSG_GROUP_ID |
|
| 2505 |
+ AND MMD1.BIZ_UMID = BL1.CMID |
|
| 2506 |
+ AND ( |
|
| 2507 |
+ CASE |
|
| 2508 |
+ WHEN BL1.CALL_STATUS in ('6600','4100')
|
|
| 2509 |
+ THEN 'S' |
|
| 2510 |
+ ELSE 'F' |
|
| 2511 |
+ END ) = 'F' |
|
| 2512 |
+ ) kakaoResendFailCount |
|
| 2513 |
+ FROM ( |
|
| 2514 |
+ SELECT |
|
| 2515 |
+ COUNT(M.USER_ID) OVER() AS totCnt , |
|
| 2516 |
+ M.USER_ID AS userId , |
|
| 2517 |
+ MSG_GROUP_ID AS msgGroupId , |
|
| 2518 |
+ MSG_GROUP_CNT AS msgGroupCnt , |
|
| 2519 |
+ SMS_TXT AS smsTxt , |
|
| 2520 |
+ M.SUBJECT AS subject , |
|
| 2521 |
+ DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate , |
|
| 2522 |
+ DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate , |
|
| 2523 |
+ DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate , |
|
| 2524 |
+ CALL_FROM AS callFrom , |
|
| 2525 |
+ CALL_TO AS callTo , |
|
| 2526 |
+ TOT_PRICE AS totPrice , |
|
| 2527 |
+ EACH_PRICE AS eachPrice , |
|
| 2528 |
+ CUR_STATE AS curState , |
|
| 2529 |
+ RSLT_CODE AS rsltCode , |
|
| 2530 |
+ RSLT_CODE2 AS rsltCode2 , |
|
| 2531 |
+ IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode , |
|
| 2532 |
+ DEL_FLAG AS delFlag , |
|
| 2533 |
+ M.MSG_TYPE AS msgType , |
|
| 2534 |
+ FILE_CNT AS fileCnt , |
|
| 2535 |
+ AGENT_CODE AS agentCode , |
|
| 2536 |
+ RESERVE_YN AS reserveYn , |
|
| 2537 |
+ RESERVE_C_YN AS reserveCYn , |
|
| 2538 |
+ DATE_FORMAT(CANCELDATE, '%Y-%m-%d %T') AS cancelDate , |
|
| 2539 |
+ msgTypeName AS msgTypeName , |
|
| 2540 |
+ orderByCode AS orderByCode , |
|
| 2541 |
+ RESULT AS msgResult , |
|
| 2542 |
+ MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey , |
|
| 2543 |
+ MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey , |
|
| 2544 |
+ MKPI.YELLOW_ID AS yellowId , |
|
| 2545 |
+ LTM.MBER_NM AS userNm , |
|
| 2546 |
+ LTM.AT_SMISHING_YN AS atSmishingYn, |
|
| 2547 |
+ BIZ_UMID AS bizUmid, |
|
| 2548 |
+ BL.CALL_STATUS AS callStatus, |
|
| 2549 |
+ M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn, |
|
| 2550 |
+ M.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn, |
|
| 2551 |
+ M.AT_DELAY_YN AS atDelayYn |
|
| 2552 |
+ FROM |
|
| 2553 |
+ (SELECT |
|
| 2554 |
+ MG.USER_ID |
|
| 2555 |
+ , MG.MSG_GROUP_ID |
|
| 2556 |
+ , MG.MSG_GROUP_CNT |
|
| 2557 |
+ , MG.SMS_TXT |
|
| 2558 |
+ , MG.SUBJECT |
|
| 2559 |
+ , MG.REGDATE |
|
| 2560 |
+ , MG.REQ_DATE |
|
| 2561 |
+ , MD.RSLT_DATE |
|
| 2562 |
+ , MG.CALL_FROM |
|
| 2563 |
+ , MG.TOT_PRICE |
|
| 2564 |
+ , MG.EACH_PRICE |
|
| 2565 |
+ , MG.DEL_FLAG |
|
| 2566 |
+ , MG.MSG_TYPE |
|
| 2567 |
+ , MG.FILE_CNT |
|
| 2568 |
+ , MG.AGENT_CODE |
|
| 2569 |
+ , MG.RESERVE_YN |
|
| 2570 |
+ , MG.RESERVE_C_YN |
|
| 2571 |
+ , MG.CANCELDATE |
|
| 2572 |
+ , MD.MSG_SEQ |
|
| 2573 |
+ , MD.CALL_TO |
|
| 2574 |
+ , MD.CUR_STATE |
|
| 2575 |
+ , MD.RSLT_CODE |
|
| 2576 |
+ , MD.RSLT_CODE2 |
|
| 2577 |
+ , CASE |
|
| 2578 |
+ WHEN MG.MSG_TYPE = '8' |
|
| 2579 |
+ THEN '알림톡' |
|
| 2580 |
+ WHEN MG.MSG_TYPE = '9' |
|
| 2581 |
+ THEN '친구톡' |
|
| 2582 |
+ END msgTypeName |
|
| 2583 |
+ , CASE |
|
| 2584 |
+ WHEN MG.MSG_TYPE = '8' |
|
| 2585 |
+ THEN '1' |
|
| 2586 |
+ ELSE '2' |
|
| 2587 |
+ END orderByCode |
|
| 2588 |
+ , ( |
|
| 2589 |
+ CASE |
|
| 2590 |
+ WHEN MD.RSLT_CODE = '7000' |
|
| 2591 |
+ THEN 'S' |
|
| 2592 |
+ WHEN (MD.RSLT_CODE IS NULL AND MD.SENT_DATE IS NULL AND MD.RSLT_DATE IS NULL) |
|
| 2593 |
+ THEN 'W' |
|
| 2594 |
+ ELSE 'F' |
|
| 2595 |
+ END |
|
| 2596 |
+ ) AS result |
|
| 2597 |
+ , MSG_NOTICETALK_SENDER_KEY |
|
| 2598 |
+ , MSG_NOTICETALK_TMP_KEY |
|
| 2599 |
+ , MD.BIZ_UMID |
|
| 2600 |
+ , MD.BIZ_KAKAO_RESEND_YN |
|
| 2601 |
+ , MG.AT_DELAY_COMPLETE_YN |
|
| 2602 |
+ , MG.AT_DELAY_YN |
|
| 2603 |
+ FROM |
|
| 2604 |
+ MJ_MSG_DATA MD |
|
| 2605 |
+ , MJ_MSG_GROUP_DATA MG |
|
| 2606 |
+ WHERE 1=1 |
|
| 2607 |
+ AND MD.MSG_GROUP_ID = MG.MSG_GROUP_ID |
|
| 2608 |
+ <!-- AND IFNULL(MG.DEL_FLAG, 'N') = 'N' --> |
|
| 2609 |
+ <!-- AND MD.DEL_FLAG = 'N' --> |
|
| 2610 |
+ <!-- JSPark 2023.07.10 알림톡 전송완료 목록은 (즉시 + 예약 발송완료 + 처리안된 지연문자(즉시,예약) 노출 --> |
|
| 2611 |
+ <![CDATA[ |
|
| 2612 |
+ AND CASE |
|
| 2613 |
+ WHEN MG.RESERVE_YN = 'N' |
|
| 2614 |
+ THEN (MG.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE)) |
|
| 2615 |
+ WHEN MG.RESERVE_YN = 'Y' |
|
| 2616 |
+ THEN (MG.REQ_DATE <= NOW() OR (MG.AT_DELAY_YN = 'Y' AND MG.AT_DELAY_COMPLETE_YN = 'N')) |
|
| 2617 |
+ END |
|
| 2618 |
+ ]]> |
|
| 2619 |
+ <isNotEmpty property="userId"> |
|
| 2620 |
+ AND MG.USER_ID = #userId# |
|
| 2621 |
+ </isNotEmpty> |
|
| 2622 |
+ <!-- AND MG.DEL_FLAG ='N' --> |
|
| 2623 |
+ AND MG.RESERVE_C_YN = 'N' |
|
| 2624 |
+ AND MG.MSG_TYPE IN ('8', '9')
|
|
| 2625 |
+ )M |
|
| 2626 |
+ LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI |
|
| 2627 |
+ ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY |
|
| 2628 |
+ AND MKPI.USER_ID = M.USER_ID |
|
| 2629 |
+ LEFT JOIN LETTNGNRLMBER LTM |
|
| 2630 |
+ ON M.USER_ID = LTM.MBER_ID |
|
| 2631 |
+ LEFT JOIN BIZ_LOG BL |
|
| 2632 |
+ ON M.BIZ_UMID = BL.CMID |
|
| 2633 |
+ WHERE 1=1 |
|
| 2634 |
+ <isNotEmpty property="searchKeyword"> |
|
| 2635 |
+ <isEqual property="searchCondition" compareValue="" > |
|
| 2636 |
+ AND ( |
|
| 2637 |
+ M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2638 |
+ OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2639 |
+ OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2640 |
+ ) |
|
| 2641 |
+ </isEqual> |
|
| 2642 |
+ <isEqual property="searchCondition" compareValue="1"> |
|
| 2643 |
+ AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2644 |
+ </isEqual> |
|
| 2645 |
+ <isEqual property="searchCondition" compareValue="2"> |
|
| 2646 |
+ AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2647 |
+ </isEqual> |
|
| 2648 |
+ <isEqual property="searchCondition" compareValue="3"> |
|
| 2649 |
+ AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2650 |
+ </isEqual> |
|
| 2651 |
+ |
|
| 2652 |
+ <isEqual property="searchCondition2" compareValue="" > |
|
| 2653 |
+ AND IFNULL(M.RESERVE_YN, 'N') IN ('Y','N')
|
|
| 2654 |
+ </isEqual> |
|
| 2655 |
+ <isEqual property="searchCondition2" compareValue="N"> |
|
| 2656 |
+ AND IFNULL(M.RESERVE_YN, 'N') = 'N' |
|
| 2657 |
+ </isEqual> |
|
| 2658 |
+ <isEqual property="searchCondition2" compareValue="Y"> |
|
| 2659 |
+ AND IFNULL(M.RESERVE_YN, 'N') = 'Y' |
|
| 2660 |
+ </isEqual> |
|
| 2661 |
+ </isNotEmpty> |
|
| 2662 |
+ |
|
| 2663 |
+ <isEmpty property="searchKeyword"> |
|
| 2664 |
+ <isNotEmpty property="searchCondition"> |
|
| 2665 |
+ <isEqual property="searchCondition" compareValue="" > |
|
| 2666 |
+ AND ( |
|
| 2667 |
+ M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2668 |
+ OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2669 |
+ OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2670 |
+ ) |
|
| 2671 |
+ </isEqual> |
|
| 2672 |
+ <isEqual property="searchCondition" compareValue="1"> |
|
| 2673 |
+ AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2674 |
+ </isEqual> |
|
| 2675 |
+ <isEqual property="searchCondition" compareValue="2"> |
|
| 2676 |
+ AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2677 |
+ </isEqual> |
|
| 2678 |
+ <isEqual property="searchCondition" compareValue="3"> |
|
| 2679 |
+ AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2680 |
+ </isEqual> |
|
| 2681 |
+ </isNotEmpty> |
|
| 2682 |
+ <isNotEmpty property="searchCondition2"> |
|
| 2683 |
+ <isEqual property="searchCondition2" compareValue="" > |
|
| 2684 |
+ AND IFNULL(M.RESERVE_YN, 'N') IN ('Y','N')
|
|
| 2685 |
+ </isEqual> |
|
| 2686 |
+ <isEqual property="searchCondition2" compareValue="N"> |
|
| 2687 |
+ AND IFNULL(M.RESERVE_YN, 'N') = 'N' |
|
| 2688 |
+ </isEqual> |
|
| 2689 |
+ <isEqual property="searchCondition2" compareValue="Y"> |
|
| 2690 |
+ AND IFNULL(M.RESERVE_YN, 'N') = 'Y' |
|
| 2691 |
+ </isEqual> |
|
| 2692 |
+ </isNotEmpty> |
|
| 2693 |
+ </isEmpty> |
|
| 2694 |
+ |
|
| 2695 |
+ <isNotEmpty property="pageType"> |
|
| 2696 |
+ <isEqual property="pageType" compareValue="sand"> |
|
| 2697 |
+ AND M.CUR_STATE = '3' |
|
| 2698 |
+ </isEqual> |
|
| 2699 |
+ </isNotEmpty> |
|
| 2700 |
+ |
|
| 2701 |
+ <isNotEmpty property="msgType"> |
|
| 2702 |
+ <isEqual property="msgType" compareValue="8"> |
|
| 2703 |
+ AND M.MSG_TYPE = '8' |
|
| 2704 |
+ </isEqual> |
|
| 2705 |
+ <isEqual property="msgType" compareValue="9"> |
|
| 2706 |
+ AND M.MSG_TYPE = '9' |
|
| 2707 |
+ </isEqual> |
|
| 2708 |
+ </isNotEmpty> |
|
| 2709 |
+ <isEmpty property="msgType"> |
|
| 2710 |
+ AND M.MSG_TYPE IN ('8','9')
|
|
| 2711 |
+ </isEmpty> |
|
| 2712 |
+ <isNotEmpty property="ntceBgnde"> |
|
| 2713 |
+ <![CDATA[ |
|
| 2714 |
+ AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#ntceBgnde#, '%Y-%m-%d') |
|
| 2715 |
+ ]]> |
|
| 2716 |
+ </isNotEmpty> |
|
| 2717 |
+ <isNotEmpty property="ntceEndde"> |
|
| 2718 |
+ <![CDATA[ |
|
| 2719 |
+ AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#ntceEndde#, '%Y-%m-%d') |
|
| 2720 |
+ ]]> |
|
| 2721 |
+ </isNotEmpty> |
|
| 2722 |
+ GROUP BY MSG_GROUP_ID |
|
| 2723 |
+ ORDER BY 1=1 |
|
| 2724 |
+ <isNotEmpty property="searchSortCnd"> |
|
| 2725 |
+ <isEqual property="searchSortCnd" compareValue="curState"> |
|
| 2726 |
+ , curState $searchSortOrd$ |
|
| 2727 |
+ , orderByrsltCode |
|
| 2728 |
+ </isEqual> |
|
| 2729 |
+ <isNotEqual property="searchSortCnd" compareValue="curState"> |
|
| 2730 |
+ ,$searchSortCnd$ |
|
| 2731 |
+ </isNotEqual> |
|
| 2732 |
+ </isNotEmpty> |
|
| 2733 |
+ <isNotEmpty property="searchSortOrd"> |
|
| 2734 |
+ $searchSortOrd$ |
|
| 2735 |
+ </isNotEmpty> |
|
| 2736 |
+ LIMIT #recordCountPerPage# OFFSET #firstIndex# |
|
| 2737 |
+ ) M2 |
|
| 2738 |
+ |
|
| 2739 |
+ </select> |
|
| 2740 |
+ |
|
| 2741 |
+ <!-- 알림톡 상세 리스트 조회 --> |
|
| 2742 |
+ <select id="mjonKakaoATDAO.selectMjonKakaoATGroupDtList_advc" parameterClass="kakaoVO" resultClass="kakaoVO"> |
|
| 2743 |
+ /* mjonKakaoATDAO.selectMjonKakaoATGroupDtList_advc - 알림톡 전송 개별 리스트 */ |
|
| 2744 |
+ SELECT |
|
| 2745 |
+ COUNT(M.USER_ID) OVER() AS totCnt |
|
| 2746 |
+ , M.USER_ID AS userId |
|
| 2747 |
+ , MSG_GROUP_ID AS msgGroupId |
|
| 2748 |
+ , MSG_GROUP_CNT AS msgGroupCnt |
|
| 2749 |
+ , MSG_ID AS msgId |
|
| 2750 |
+ , USERDATA AS userData |
|
| 2751 |
+ , SMS_TXT AS smsTxt |
|
| 2752 |
+ , SUBJECT AS subject |
|
| 2753 |
+ , DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate |
|
| 2754 |
+ , DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate |
|
| 2755 |
+ , DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate |
|
| 2756 |
+ , CALL_FROM AS callFrom |
|
| 2757 |
+ , CALL_TO AS callTo |
|
| 2758 |
+ , TOT_PRICE AS totPrice |
|
| 2759 |
+ , EACH_PRICE AS eachPrice |
|
| 2760 |
+ , CUR_STATE AS curStateTxt |
|
| 2761 |
+ , RSLT_CODE AS rsltCode |
|
| 2762 |
+ , RSLT_CODE2 AS rsltCode2 |
|
| 2763 |
+ , IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode |
|
| 2764 |
+ , DEL_FLAG AS delFlag |
|
| 2765 |
+ , MSG_TYPE AS msgType |
|
| 2766 |
+ , FILE_CNT AS fileCnt |
|
| 2767 |
+ , AGENT_CODE AS agentCode |
|
| 2768 |
+ , RESERVE_YN AS reserveYn |
|
| 2769 |
+ , RESERVE_C_YN AS reserveCYn |
|
| 2770 |
+ , CANCELDATE AS cancelDate |
|
| 2771 |
+ , msgTypeName AS msgTypeName |
|
| 2772 |
+ , orderByCode AS orderByCode |
|
| 2773 |
+ , RESULT AS resultCodeTxt |
|
| 2774 |
+ , MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey |
|
| 2775 |
+ , MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey |
|
| 2776 |
+ , MKPI.YELLOW_ID AS yellowId |
|
| 2777 |
+ , LTM.MBER_NM AS userNm |
|
| 2778 |
+ , BIZ_KAKAO_RESEND_YN AS subMsgSendYn |
|
| 2779 |
+ , BIZ_KAKAO_RESEND_TYPE AS subMsgType |
|
| 2780 |
+ , BIZ_KAKAO_RESEND_DATA AS subMsgTxt |
|
| 2781 |
+ , BIZ_KAKAO_JSON_FILE AS bizJsonName |
|
| 2782 |
+ , BIZ_UMID AS bizUmid |
|
| 2783 |
+ FROM |
|
| 2784 |
+ ( SELECT |
|
| 2785 |
+ B.USER_ID |
|
| 2786 |
+ , B.MSG_GROUP_ID |
|
| 2787 |
+ , B.MSG_GROUP_CNT |
|
| 2788 |
+ , A.MSG_ID |
|
| 2789 |
+ , A.USERDATA |
|
| 2790 |
+ , B.SMS_TXT |
|
| 2791 |
+ , B.SUBJECT |
|
| 2792 |
+ , B.REGDATE |
|
| 2793 |
+ , A.REQ_DATE |
|
| 2794 |
+ , A.RSLT_DATE |
|
| 2795 |
+ , B.CALL_FROM |
|
| 2796 |
+ , B.TOT_PRICE |
|
| 2797 |
+ , B.EACH_PRICE |
|
| 2798 |
+ , CASE |
|
| 2799 |
+ WHEN B.DEL_FLAG = 'Y' |
|
| 2800 |
+ THEN '삭제' |
|
| 2801 |
+ ELSE '미삭제' |
|
| 2802 |
+ END DEL_FLAG |
|
| 2803 |
+ , B.MSG_TYPE |
|
| 2804 |
+ , B.FILE_CNT |
|
| 2805 |
+ , B.AGENT_CODE |
|
| 2806 |
+ , B.RESERVE_YN |
|
| 2807 |
+ , B.RESERVE_C_YN |
|
| 2808 |
+ , B.CANCELDATE |
|
| 2809 |
+ , A.MSG_SEQ |
|
| 2810 |
+ , A.CALL_TO |
|
| 2811 |
+ , CASE |
|
| 2812 |
+ WHEN A.CUR_STATE = '0' |
|
| 2813 |
+ THEN '전송대기' |
|
| 2814 |
+ WHEN A.CUR_STATE = '3' |
|
| 2815 |
+ THEN '전송완료' |
|
| 2816 |
+ END CUR_STATE |
|
| 2817 |
+ , A.RSLT_CODE |
|
| 2818 |
+ , A.RSLT_CODE2 |
|
| 2819 |
+ , CASE |
|
| 2820 |
+ WHEN B.MSG_TYPE = '8' |
|
| 2821 |
+ THEN '알림톡' |
|
| 2822 |
+ WHEN B.MSG_TYPE = '9' |
|
| 2823 |
+ THEN '친구톡' |
|
| 2824 |
+ END msgTypeName |
|
| 2825 |
+ , CASE |
|
| 2826 |
+ WHEN B.MSG_TYPE = '8' |
|
| 2827 |
+ THEN '1' |
|
| 2828 |
+ ELSE '2' |
|
| 2829 |
+ END orderByCode |
|
| 2830 |
+ , (<include refid="KakaoSentDAO.selectAgentResultQuery_A"/>) AS RESULT |
|
| 2831 |
+ , A.MSG_NOTICETALK_SENDER_KEY |
|
| 2832 |
+ , A.MSG_NOTICETALK_TMP_KEY |
|
| 2833 |
+ , CASE |
|
| 2834 |
+ WHEN A.BIZ_KAKAO_RESEND_YN = 'Y' |
|
| 2835 |
+ THEN '발송' |
|
| 2836 |
+ ELSE '미발송' |
|
| 2837 |
+ END BIZ_KAKAO_RESEND_YN |
|
| 2838 |
+ , CASE |
|
| 2839 |
+ WHEN A.BIZ_KAKAO_RESEND_TYPE = 'SMS' |
|
| 2840 |
+ THEN '단문' |
|
| 2841 |
+ ELSE '장문' |
|
| 2842 |
+ END BIZ_KAKAO_RESEND_TYPE |
|
| 2843 |
+ , A.BIZ_KAKAO_RESEND_DATA |
|
| 2844 |
+ , A.BIZ_KAKAO_JSON_FILE |
|
| 2845 |
+ , A.BIZ_UMID |
|
| 2846 |
+ FROM |
|
| 2847 |
+ MJ_MSG_DATA A |
|
| 2848 |
+ , MJ_MSG_GROUP_DATA B |
|
| 2849 |
+ WHERE |
|
| 2850 |
+ A.MSG_GROUP_ID = B.MSG_GROUP_ID |
|
| 2851 |
+ <isNotEmpty property="userId"> |
|
| 2852 |
+ AND B.USER_ID = #userId# |
|
| 2853 |
+ </isNotEmpty> |
|
| 2854 |
+ AND A.MSG_GROUP_ID = #msgGroupId# |
|
| 2855 |
+ AND B.RESERVE_C_YN = 'N' |
|
| 2856 |
+ <isNotEmpty property="msgType"> |
|
| 2857 |
+ <isEqual property="msgType" compareValue="8"> |
|
| 2858 |
+ AND A.MSG_TYPE = '8' |
|
| 2859 |
+ </isEqual> |
|
| 2860 |
+ <isEqual property="msgType" compareValue="9"> |
|
| 2861 |
+ AND A.MSG_TYPE = '9' |
|
| 2862 |
+ </isEqual> |
|
| 2863 |
+ </isNotEmpty> |
|
| 2864 |
+ <isEmpty property="msgType"> |
|
| 2865 |
+ AND A.MSG_TYPE IN ('8','9')
|
|
| 2866 |
+ </isEmpty> |
|
| 2867 |
+ <![CDATA[ |
|
| 2868 |
+ AND CASE |
|
| 2869 |
+ WHEN B.RESERVE_YN = 'N' |
|
| 2870 |
+ THEN (B.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE)) |
|
| 2871 |
+ WHEN B.RESERVE_YN = 'Y' |
|
| 2872 |
+ THEN (B.REQ_DATE <= NOW() OR (B.AT_DELAY_YN = 'Y' AND B.AT_DELAY_COMPLETE_YN = 'N')) |
|
| 2873 |
+ END |
|
| 2874 |
+ ]]> |
|
| 2875 |
+ )M |
|
| 2876 |
+ LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI |
|
| 2877 |
+ ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY AND MKPI.USER_ID = M.USER_ID |
|
| 2878 |
+ LEFT JOIN LETTNGNRLMBER LTM |
|
| 2879 |
+ ON M.USER_ID = LTM.MBER_ID |
|
| 2880 |
+ WHERE 1=1 |
|
| 2881 |
+ <isNotEmpty property="userId"> |
|
| 2882 |
+ AND M.USER_ID = #userId# |
|
| 2883 |
+ </isNotEmpty> |
|
| 2884 |
+ <isNotEmpty property="searchKeyword"> |
|
| 2885 |
+ <isEqual property="searchCondition" compareValue="" > |
|
| 2886 |
+ AND ( |
|
| 2887 |
+ M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2888 |
+ OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2889 |
+ OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2890 |
+ ) |
|
| 2891 |
+ </isEqual> |
|
| 2892 |
+ <isEqual property="searchCondition" compareValue="1"> |
|
| 2893 |
+ AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2894 |
+ </isEqual> |
|
| 2895 |
+ <isEqual property="searchCondition" compareValue="2"> |
|
| 2896 |
+ AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2897 |
+ </isEqual> |
|
| 2898 |
+ <isEqual property="searchCondition" compareValue="3"> |
|
| 2899 |
+ AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2900 |
+ </isEqual> |
|
| 2901 |
+ |
|
| 2902 |
+ <isEqual property="searchCondition2" compareValue="" > |
|
| 2903 |
+ AND M.RESERVE_YN IN ('Y','N')
|
|
| 2904 |
+ </isEqual> |
|
| 2905 |
+ <isEqual property="searchCondition2" compareValue="N"> |
|
| 2906 |
+ AND M.RESERVE_YN = 'N' |
|
| 2907 |
+ </isEqual> |
|
| 2908 |
+ <isEqual property="searchCondition2" compareValue="Y"> |
|
| 2909 |
+ AND M.RESERVE_YN = 'Y' |
|
| 2910 |
+ </isEqual> |
|
| 2911 |
+ </isNotEmpty> |
|
| 2912 |
+ |
|
| 2913 |
+ <isEmpty property="searchKeyword"> |
|
| 2914 |
+ <isNotEmpty property="searchCondition"> |
|
| 2915 |
+ <isEqual property="searchCondition" compareValue="" > |
|
| 2916 |
+ AND ( |
|
| 2917 |
+ M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2918 |
+ OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2919 |
+ OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2920 |
+ ) |
|
| 2921 |
+ </isEqual> |
|
| 2922 |
+ <isEqual property="searchCondition" compareValue="1"> |
|
| 2923 |
+ AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
|
| 2924 |
+ </isEqual> |
|
| 2925 |
+ <isEqual property="searchCondition" compareValue="2"> |
|
| 2926 |
+ AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2927 |
+ </isEqual> |
|
| 2928 |
+ <isEqual property="searchCondition" compareValue="3"> |
|
| 2929 |
+ AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
|
| 2930 |
+ </isEqual> |
|
| 2931 |
+ </isNotEmpty> |
|
| 2932 |
+ <isNotEmpty property="searchCondition2"> |
|
| 2933 |
+ <isEqual property="searchCondition2" compareValue="" > |
|
| 2934 |
+ AND M.RESERVE_YN IN ('Y','N')
|
|
| 2935 |
+ </isEqual> |
|
| 2936 |
+ <isEqual property="searchCondition2" compareValue="N"> |
|
| 2937 |
+ AND M.RESERVE_YN = 'N' |
|
| 2938 |
+ </isEqual> |
|
| 2939 |
+ <isEqual property="searchCondition2" compareValue="Y"> |
|
| 2940 |
+ AND M.RESERVE_YN = 'Y' |
|
| 2941 |
+ </isEqual> |
|
| 2942 |
+ </isNotEmpty> |
|
| 2943 |
+ </isEmpty> |
|
| 2944 |
+ |
|
| 2945 |
+ |
|
| 2946 |
+ <isNotEmpty property="msgType"> |
|
| 2947 |
+ <isEqual property="msgType" compareValue="8"> |
|
| 2948 |
+ AND MSG_TYPE = '8' |
|
| 2949 |
+ </isEqual> |
|
| 2950 |
+ <isEqual property="msgType" compareValue="9"> |
|
| 2951 |
+ AND MSG_TYPE = '9' |
|
| 2952 |
+ </isEqual> |
|
| 2953 |
+ </isNotEmpty> |
|
| 2954 |
+ <isEmpty property="msgType"> |
|
| 2955 |
+ AND MSG_TYPE IN ('8','9')
|
|
| 2956 |
+ </isEmpty> |
|
| 2957 |
+ <isNotEmpty property="ntceBgnde"> |
|
| 2958 |
+ <![CDATA[ |
|
| 2959 |
+ AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#ntceBgnde#, '%Y-%m-%d') |
|
| 2960 |
+ ]]> |
|
| 2961 |
+ </isNotEmpty> |
|
| 2962 |
+ <isNotEmpty property="ntceEndde"> |
|
| 2963 |
+ <![CDATA[ |
|
| 2964 |
+ AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#ntceEndde#, '%Y-%m-%d') |
|
| 2965 |
+ ]]> |
|
| 2966 |
+ </isNotEmpty> |
|
| 2967 |
+ ORDER BY 1=1 |
|
| 2968 |
+ <isNotEmpty property="searchSortCnd"> |
|
| 2969 |
+ <isEqual property="searchSortCnd" compareValue="curState"> |
|
| 2970 |
+ , curState $searchSortOrd$ |
|
| 2971 |
+ , orderByrsltCode |
|
| 2972 |
+ </isEqual> |
|
| 2973 |
+ <isNotEqual property="searchSortCnd" compareValue="curState"> |
|
| 2974 |
+ ,$searchSortCnd$ |
|
| 2975 |
+ </isNotEqual> |
|
| 2976 |
+ </isNotEmpty> |
|
| 2977 |
+ <isNotEmpty property="searchSortOrd"> |
|
| 2978 |
+ $searchSortOrd$ |
|
| 2979 |
+ </isNotEmpty> |
|
| 2980 |
+ LIMIT #recordCountPerPage# OFFSET #firstIndex# |
|
| 2981 |
+ </select> |
|
| 2982 |
+ |
|
| 2983 |
+ <!-- 알림톡 상세 내용 --> |
|
| 2984 |
+ <select id="mjonKakaoATDAO.selectMjonKakaoATVO_advc" parameterClass="kakaoVO" resultClass="kakaoVO"> |
|
| 2985 |
+ /* mjonKakaoATDAO.selectMjonKakaoATGroupDtList_advc - 알림톡 전송 상세정보 */ |
|
| 2986 |
+ SELECT |
|
| 2987 |
+ COUNT(M.USER_ID) OVER() AS totCnt |
|
| 2988 |
+ , M.USER_ID AS userId |
|
| 2989 |
+ , MSG_GROUP_ID AS msgGroupId |
|
| 2990 |
+ , MSG_GROUP_CNT AS msgGroupCnt |
|
| 2991 |
+ , MSG_ID AS msgId |
|
| 2992 |
+ , USERDATA AS userData |
|
| 2993 |
+ , SMS_TXT AS smsTxt |
|
| 2994 |
+ , M.SUBJECT AS subject |
|
| 2995 |
+ , DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate |
|
| 2996 |
+ , DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate |
|
| 2997 |
+ , DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate |
|
| 2998 |
+ , CALL_FROM AS callFrom |
|
| 2999 |
+ , CALL_TO AS callTo |
|
| 3000 |
+ , TOT_PRICE AS totPrice |
|
| 3001 |
+ , EACH_PRICE AS eachPrice |
|
| 3002 |
+ , CUR_STATE AS curStateTxt |
|
| 3003 |
+ , RSLT_CODE AS rsltCode |
|
| 3004 |
+ , RSLT_CODE2 AS rsltCode2 |
|
| 3005 |
+ , RSLT_NET AS rsltNet |
|
| 3006 |
+ , IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode |
|
| 3007 |
+ , DEL_FLAG AS delFlag |
|
| 3008 |
+ , M.MSG_TYPE AS msgType |
|
| 3009 |
+ , FILE_CNT AS fileCnt |
|
| 3010 |
+ , M.AGENT_CODE AS agentCode |
|
| 3011 |
+ , MMRC.RESULT_CODE_TXT AS agentCodeTxt |
|
| 3012 |
+ , RESERVE_YN AS reserveYn |
|
| 3013 |
+ , RESERVE_C_YN AS reserveCYn |
|
| 3014 |
+ , CANCELDATE AS cancelDate |
|
| 3015 |
+ , REFUND_YN AS refundYn |
|
| 3016 |
+ , msgTypeName AS msgTypeName |
|
| 3017 |
+ , orderByCode AS orderByCode |
|
| 3018 |
+ , RESULT AS resultCodeTxt |
|
| 3019 |
+ , MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey |
|
| 3020 |
+ , MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey |
|
| 3021 |
+ , MKPI.YELLOW_ID AS yellowId |
|
| 3022 |
+ , MTHD.CODE_NM AS conectMthdTxt |
|
| 3023 |
+ , LTM.MBER_NM AS userNm |
|
| 3024 |
+ <!-- , successCount --> |
|
| 3025 |
+ , BIZ_KAKAO_RESEND_YN AS subMsgSendYn |
|
| 3026 |
+ , BIZ_KAKAO_RESEND_TYPE AS subMsgType |
|
| 3027 |
+ , BIZ_KAKAO_RESEND_DATA AS subMsgTxt |
|
| 3028 |
+ , BIZ_KAKAO_JSON_FILE AS bizJsonName |
|
| 3029 |
+ , BIZ_UMID AS bizUmid |
|
| 3030 |
+ , CASE |
|
| 3031 |
+ WHEN |
|
| 3032 |
+ BL.CALL_STATUS = '6600' OR BL.CALL_STATUS = '4100' |
|
| 3033 |
+ THEN 'S' |
|
| 3034 |
+ WHEN |
|
| 3035 |
+ ( |
|
| 3036 |
+ BL.CALL_STATUS IS NULL |
|
| 3037 |
+ AND BL.STATUS = 0 |
|
| 3038 |
+ ) |
|
| 3039 |
+ THEN 'W' |
|
| 3040 |
+ ELSE 'F' |
|
| 3041 |
+ END bizLogCallStatusCode |
|
| 3042 |
+ , BL.CALL_STATUS AS bizLogCallStatus |
|
| 3043 |
+ , MMRC2.RESULT_CODE_TXT AS bizLogCallStatusTxt |
|
| 3044 |
+ |
|
| 3045 |
+ FROM |
|
| 3046 |
+ ( SELECT |
|
| 3047 |
+ B.USER_ID |
|
| 3048 |
+ , B.MSG_GROUP_ID |
|
| 3049 |
+ , B.MSG_GROUP_CNT |
|
| 3050 |
+ , A.MSG_ID |
|
| 3051 |
+ , A.USERDATA |
|
| 3052 |
+ , A.SMS_TXT |
|
| 3053 |
+ , B.SUBJECT |
|
| 3054 |
+ , B.REGDATE |
|
| 3055 |
+ , B.REQ_DATE |
|
| 3056 |
+ , A.RSLT_DATE |
|
| 3057 |
+ , A.RSLT_NET |
|
| 3058 |
+ , B.CALL_FROM |
|
| 3059 |
+ , B.TOT_PRICE |
|
| 3060 |
+ , B.EACH_PRICE |
|
| 3061 |
+ , CASE |
|
| 3062 |
+ WHEN B.DEL_FLAG = 'Y' |
|
| 3063 |
+ THEN '삭제' |
|
| 3064 |
+ ELSE '미삭제' |
|
| 3065 |
+ END DEL_FLAG |
|
| 3066 |
+ , B.MSG_TYPE |
|
| 3067 |
+ , B.FILE_CNT |
|
| 3068 |
+ , B.AGENT_CODE |
|
| 3069 |
+ , B.RESERVE_YN |
|
| 3070 |
+ , B.RESERVE_C_YN |
|
| 3071 |
+ , B.CANCELDATE |
|
| 3072 |
+ , A.REFUND_YN |
|
| 3073 |
+ , A.MSG_SEQ |
|
| 3074 |
+ , A.CALL_TO |
|
| 3075 |
+ , A.CONECT_MTHD |
|
| 3076 |
+ , CASE |
|
| 3077 |
+ WHEN A.CUR_STATE = '0' |
|
| 3078 |
+ THEN '전송대기' |
|
| 3079 |
+ WHEN A.CUR_STATE = '3' |
|
| 3080 |
+ THEN '전송완료' |
|
| 3081 |
+ END CUR_STATE |
|
| 3082 |
+ , A.RSLT_CODE |
|
| 3083 |
+ , A.RSLT_CODE2 |
|
| 3084 |
+ , CASE |
|
| 3085 |
+ WHEN B.MSG_TYPE = '8' |
|
| 3086 |
+ THEN '알림톡' |
|
| 3087 |
+ WHEN B.MSG_TYPE = '9' |
|
| 3088 |
+ THEN '친구톡' |
|
| 3089 |
+ END msgTypeName |
|
| 3090 |
+ , CASE |
|
| 3091 |
+ WHEN B.MSG_TYPE = '8' |
|
| 3092 |
+ THEN '1' |
|
| 3093 |
+ ELSE '2' |
|
| 3094 |
+ END orderByCode |
|
| 3095 |
+ , (<include refid="KakaoSentDAO.selectAgentResultQuery_A"/>) AS RESULT |
|
| 3096 |
+ <!-- , (<include refid="mjonKakaoATDAO.selectSuccessResultQuery_C"/>) AS successCount --> |
|
| 3097 |
+ , A.MSG_NOTICETALK_SENDER_KEY |
|
| 3098 |
+ , A.MSG_NOTICETALK_TMP_KEY |
|
| 3099 |
+ , CASE |
|
| 3100 |
+ WHEN A.BIZ_KAKAO_RESEND_YN = 'Y' |
|
| 3101 |
+ THEN '대체문자 발송' |
|
| 3102 |
+ ELSE '대체문자 미발송' |
|
| 3103 |
+ END BIZ_KAKAO_RESEND_YN |
|
| 3104 |
+ , CASE |
|
| 3105 |
+ WHEN A.BIZ_KAKAO_RESEND_TYPE = 'SMS' |
|
| 3106 |
+ THEN '단문' |
|
| 3107 |
+ ELSE '장문' |
|
| 3108 |
+ END BIZ_KAKAO_RESEND_TYPE |
|
| 3109 |
+ , A.BIZ_KAKAO_RESEND_DATA |
|
| 3110 |
+ , A.BIZ_KAKAO_JSON_FILE |
|
| 3111 |
+ , A.BIZ_UMID |
|
| 3112 |
+ FROM |
|
| 3113 |
+ MJ_MSG_DATA A |
|
| 3114 |
+ , MJ_MSG_GROUP_DATA B |
|
| 3115 |
+ WHERE |
|
| 3116 |
+ A.MSG_GROUP_ID = B.MSG_GROUP_ID |
|
| 3117 |
+ <isNotEmpty property="userId"> |
|
| 3118 |
+ AND B.USER_ID = #userId# |
|
| 3119 |
+ </isNotEmpty> |
|
| 3120 |
+ AND A.MSG_GROUP_ID = #msgGroupId# |
|
| 3121 |
+ AND B.RESERVE_C_YN = 'N' |
|
| 3122 |
+ |
|
| 3123 |
+ )M |
|
| 3124 |
+ LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI |
|
| 3125 |
+ ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY AND MKPI.USER_ID = M.USER_ID AND MKPI.DELETE_YN = 'N' |
|
| 3126 |
+ LEFT JOIN LETTNGNRLMBER LTM |
|
| 3127 |
+ ON M.USER_ID = LTM.MBER_ID |
|
| 3128 |
+ LEFT JOIN MJ_MSG_RESULT_CODE MMRC |
|
| 3129 |
+ ON M.RSLT_CODE = MMRC.RESULT_CODE |
|
| 3130 |
+ AND MMRC.AGENT_CODE = '04' |
|
| 3131 |
+ LEFT JOIN BIZ_LOG BL |
|
| 3132 |
+ ON M.BIZ_UMID = BL.CMID |
|
| 3133 |
+ LEFT JOIN MJ_MSG_RESULT_CODE MMRC2 |
|
| 3134 |
+ ON BL.CALL_STATUS = MMRC2.RESULT_CODE |
|
| 3135 |
+ AND MMRC2.AGENT_CODE = '04' |
|
| 3136 |
+ LEFT JOIN( |
|
| 3137 |
+ SELECT CODE_NM, CODE, CODE_DC |
|
| 3138 |
+ FROM LETTCCMMNDETAILCODE |
|
| 3139 |
+ WHERE USE_AT = 'Y' |
|
| 3140 |
+ AND CODE_ID = 'ITN020' |
|
| 3141 |
+ ) MTHD ON M.CONECT_MTHD = MTHD.CODE /** 접속기기 */ |
|
| 3142 |
+ WHERE 1=1 |
|
| 3143 |
+ AND M.USER_ID = #userId# |
|
| 3144 |
+ AND M.USERDATA = #userData# |
|
| 3145 |
+ |
|
| 3146 |
+ </select> |
|
| 2409 | 3147 |
</sqlMap>(No newline at end of file) |
--- src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
... | ... | @@ -1385,7 +1385,8 @@ |
| 1385 | 1385 |
t1.msgNoticetalkSenderKey, |
| 1386 | 1386 |
t1.bizKakaoResendYn, |
| 1387 | 1387 |
t1.atDelayOrgTime, |
| 1388 |
- t1.divideYN |
|
| 1388 |
+ t1.divideYN, |
|
| 1389 |
+ t1.yellowId |
|
| 1389 | 1390 |
FROM ( |
| 1390 | 1391 |
SELECT COUNT(B.USER_ID) OVER() AS totMsgCnt, |
| 1391 | 1392 |
B.USER_ID AS userId , |
... | ... | @@ -1422,10 +1423,12 @@ |
| 1422 | 1423 |
A.MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey, |
| 1423 | 1424 |
A.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn, |
| 1424 | 1425 |
IF(B.AT_DELAY_YN = 'Y' and B.AT_DELAY_COMPLETE_YN = 'N', DATE_ADD(B.REQ_DATE, INTERVAL -30 MINUTE), B.REQ_DATE) AS atDelayOrgTime, |
| 1425 |
- CASE WHEN COUNT(DISTINCT A.REQ_DATE) > 1 THEN 'Y' ELSE 'N' END AS divideYN |
|
| 1426 |
+ CASE WHEN COUNT(DISTINCT A.REQ_DATE) > 1 THEN 'Y' ELSE 'N' END AS divideYN, |
|
| 1427 |
+ C.YELLOW_ID as yellowId |
|
| 1426 | 1428 |
FROM MJ_MSG_DATA A |
| 1427 | 1429 |
JOIN MJ_MSG_GROUP_DATA B |
| 1428 | 1430 |
ON A.MSG_GROUP_ID = B.MSG_GROUP_ID |
| 1431 |
+ left outer join mj_kakao_profile_info C on A.MSG_NOTICETALK_SENDER_KEY = C.SENDER_KEY |
|
| 1429 | 1432 |
WHERE ( |
| 1430 | 1433 |
B.DEL_FLAG = 'N' OR B.DEL_FLAG IS NULL |
| 1431 | 1434 |
) |
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?