--- src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java
+++ src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java
... | ... | @@ -653,19 +653,42 @@ |
| 653 | 653 |
|
| 654 | 654 |
String userId = addrVO.getMberId(); |
| 655 | 655 |
|
| 656 |
- AddrGroupVO addrGroupVO = new AddrGroupVO(); |
|
| 657 |
- addrGroupVO.setAddrGrpNm(addrVO.getAddrGrpNm()); |
|
| 658 |
- addrGroupVO.setMberId(userId); |
|
| 659 |
- addrGroupVO.setFrstRegisterId(userId); |
|
| 656 |
+ log.info("addrVO.getAddrGrpId() :: [{}]", addrVO.getAddrGrpId());
|
|
| 660 | 657 |
|
| 661 |
- int usedCnt = addrGroupDAO.selectDuplAddrGroupCnt(addrGroupVO); |
|
| 662 |
- if(usedCnt > 0) {
|
|
| 663 |
- return new StatusResponse(HttpStatus.BAD_REQUEST, "이미 등록되어있는 그룹이름입니다.", LocalDateTime.now()); |
|
| 658 |
+ if ("NEW".equals(addrVO.getAddrGrpId())) {
|
|
| 659 |
+ |
|
| 660 |
+ |
|
| 661 |
+ AddrGroupVO addrGroupVO = new AddrGroupVO(); |
|
| 662 |
+ addrGroupVO.setMberId(userId); |
|
| 663 |
+ addrGroupVO.setAddrGrpNm(addrVO.getAddrGrpNm()); |
|
| 664 |
+ addrGroupVO.setFrstRegisterId(userId); |
|
| 665 |
+ |
|
| 666 |
+ int usedCnt = addrGroupDAO.selectDuplAddrGroupCnt(addrGroupVO); |
|
| 667 |
+ if(usedCnt > 0) {
|
|
| 668 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "이미 등록되어있는 그룹이름입니다.", LocalDateTime.now()); |
|
| 669 |
+ } |
|
| 670 |
+ |
|
| 671 |
+ int nextOrderNumber = addrGroupDAO.selectMaxOrderNumber(addrGroupVO); |
|
| 672 |
+ addrGroupVO.setGrpOrder(nextOrderNumber); |
|
| 673 |
+ |
|
| 674 |
+ String addrGrpIdTemp = addrGroupDAO.insertAddrGroup(addrGroupVO); |
|
| 675 |
+ |
|
| 676 |
+ |
|
| 677 |
+ addrVO.setAddrGrpId(addrGrpIdTemp); |
|
| 678 |
+ |
|
| 664 | 679 |
} |
| 680 |
+ else if ("bookmark".equals(addrVO.getAddrGrpId()))
|
|
| 681 |
+ {
|
|
| 682 |
+ addrVO.setBookmark("Y");
|
|
| 683 |
+ addrVO.setAddrGrpId("0");
|
|
| 684 |
+ } |
|
| 685 |
+ else |
|
| 686 |
+ {
|
|
| 687 |
+ addrVO.setBookmark("N");
|
|
| 688 |
+ } |
|
| 665 | 689 |
|
| 666 |
- String addrGrpId = addrGroupDAO.insertAddrGroup(addrGroupVO); |
|
| 667 |
- |
|
| 668 |
- |
|
| 690 |
+ String bookmark = addrVO.getBookmark(); |
|
| 691 |
+ String addrGrpId = addrVO.getAddrGrpId(); |
|
| 669 | 692 |
|
| 670 | 693 |
List<AddrVO> addrDataInfo = new ArrayList<AddrVO>(); |
| 671 | 694 |
|
... | ... | @@ -673,7 +696,7 @@ |
| 673 | 696 |
AddrVO addrTempVO = new AddrVO(); |
| 674 | 697 |
addrTempVO.setAddrPhoneNo(phone); |
| 675 | 698 |
addrTempVO.setAddrGrpId(addrGrpId); |
| 676 |
- addrTempVO.setBookmark("N"); //북마크 : N
|
|
| 699 |
+ addrTempVO.setBookmark(bookmark); //북마크 : N |
|
| 677 | 700 |
addrTempVO.setFrstRegisterId(userId); |
| 678 | 701 |
addrTempVO.setMberId(userId); |
| 679 | 702 |
addrDataInfo.add(addrTempVO); |
--- src/main/java/itn/let/mjo/addr/web/AddrController.java
+++ src/main/java/itn/let/mjo/addr/web/AddrController.java
... | ... | @@ -2245,8 +2245,6 @@ |
| 2245 | 2245 |
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); |
| 2246 | 2246 |
} |
| 2247 | 2247 |
|
| 2248 |
- log.info(" + addrVO.getAddrPhones() :: [{}]", addrVO.getAddrPhones().length);
|
|
| 2249 |
- log.info(" + addrVO.getAddrGrpNm() :: [{}]", addrVO.getAddrGrpNm());
|
|
| 2250 | 2248 |
addrVO.setMberId(userId); |
| 2251 | 2249 |
|
| 2252 | 2250 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentDetailView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentDetailView.jsp
... | ... | @@ -32,6 +32,8 @@ |
| 32 | 32 |
|
| 33 | 33 |
// 탭별 하위 버튼 활성화 |
| 34 | 34 |
fn_rowBtnSH('전체');
|
| 35 |
+ // 주소록 그룹 불러오기 |
|
| 36 |
+ getAddrGroupList(); |
|
| 35 | 37 |
|
| 36 | 38 |
//Tabulator AJAX Data Loading |
| 37 | 39 |
$tbDtailList = new Tabulator("#detailPopup", {
|
... | ... | @@ -125,6 +127,13 @@ |
| 125 | 127 |
|
| 126 | 128 |
$('.grpClose').on("click", function (){
|
| 127 | 129 |
$('#grpNm').val('')
|
| 130 |
+ }); |
|
| 131 |
+ |
|
| 132 |
+ |
|
| 133 |
+ $(document).on('change', '#addrGrpIdInfo', function() {
|
|
| 134 |
+ if ($("#addrGrpIdInfo option:selected").val() != "NEW") {
|
|
| 135 |
+ $("#grpNm").val(""); // 새그룹명 Clear;
|
|
| 136 |
+ } |
|
| 128 | 137 |
}); |
| 129 | 138 |
|
| 130 | 139 |
}); |
... | ... | @@ -443,6 +452,14 @@ |
| 443 | 452 |
let url = "/web/mjon/addr/insertByAddrGrpDataAndAddrDataAjax.do"; |
| 444 | 453 |
|
| 445 | 454 |
|
| 455 |
+ console.log($("#addrGrpIdInfo option:selected").val());
|
|
| 456 |
+ console.log($("#grpNm").val());
|
|
| 457 |
+ if ($("#addrGrpIdInfo option:selected").val() == "NEW"
|
|
| 458 |
+ && $("#grpNm").val() == "") {
|
|
| 459 |
+ alert("저장할 그룹을 선택하거나 새 그룹명을 입력해주세요.");
|
|
| 460 |
+ return false; |
|
| 461 |
+ } |
|
| 462 |
+ |
|
| 446 | 463 |
// 필터링된 데이터 가져오기 (탭 필터 적용) |
| 447 | 464 |
let filteredData = getFilteredDataByTab(); |
| 448 | 465 |
|
... | ... | @@ -450,7 +467,7 @@ |
| 450 | 467 |
|
| 451 | 468 |
// phone 필드 데이터만 추출 |
| 452 | 469 |
let addrPhones = filteredData.map(row => row.phone); |
| 453 |
- console.log('addrPhones : ', addrPhones)
|
|
| 470 |
+// console.log('addrPhones : ', addrPhones)
|
|
| 454 | 471 |
|
| 455 | 472 |
if(addrPhones.length < 1){
|
| 456 | 473 |
alert('해당 탭에 데이터가 없습니다.');
|
... | ... | @@ -459,11 +476,13 @@ |
| 459 | 476 |
|
| 460 | 477 |
// 주소록 그룹명 가져오기 |
| 461 | 478 |
let addrGrpNm = $('#grpNm').val();
|
| 479 |
+ let addrGrpId = $("#addrGrpIdInfo option:selected").val();
|
|
| 462 | 480 |
|
| 463 | 481 |
// 데이터 객체 생성 |
| 464 | 482 |
let data = {
|
| 465 |
- addrPhones: addrPhones, |
|
| 466 |
- addrGrpNm: addrGrpNm |
|
| 483 |
+ addrPhones : addrPhones |
|
| 484 |
+ , addrGrpNm : addrGrpNm |
|
| 485 |
+ , addrGrpId : addrGrpId |
|
| 467 | 486 |
}; |
| 468 | 487 |
|
| 469 | 488 |
if(!confirm("연락처 정보를 주소록에 등록 하시겠습니까?")){
|
... | ... | @@ -509,8 +528,6 @@ |
| 509 | 528 |
// 필터링된 데이터 가져오기 (탭 필터 적용) |
| 510 | 529 |
let filteredData = getFilteredDataByTab(); |
| 511 | 530 |
|
| 512 |
- console.log('filteredData : ', filteredData)
|
|
| 513 |
- |
|
| 514 | 531 |
// phone 필드 데이터만 추출 |
| 515 | 532 |
let addrPhones = filteredData.map(row => row.phone); |
| 516 | 533 |
console.log('addrPhones : ', addrPhones)
|
... | ... | @@ -574,6 +591,42 @@ |
| 574 | 591 |
return allData.filter(row => tabFilter ? row.result.includes(tabFilter.value) : true); |
| 575 | 592 |
} |
| 576 | 593 |
|
| 594 |
+ |
|
| 595 |
+ |
|
| 596 |
+//주소록 그룹정보 불러오기 |
|
| 597 |
+function getAddrGroupList() {
|
|
| 598 |
+ $.ajax({
|
|
| 599 |
+ type : "POST", |
|
| 600 |
+ async : false, |
|
| 601 |
+ url : "/web/mjon/addr/addrGroupListAjax.do", |
|
| 602 |
+ data : {},
|
|
| 603 |
+ dataType:'json', |
|
| 604 |
+ success : function(data) {
|
|
| 605 |
+ //alert(JSON.stringify(data.addrGroupList)); |
|
| 606 |
+ |
|
| 607 |
+ // Show Html |
|
| 608 |
+ getAddrGroupListShow(data.addrGroupList); |
|
| 609 |
+ }, |
|
| 610 |
+ error : function(xhr, status, error) {
|
|
| 611 |
+ alert(error); |
|
| 612 |
+ return false; |
|
| 613 |
+ } |
|
| 614 |
+ }); |
|
| 615 |
+} |
|
| 616 |
+ |
|
| 617 |
+//Show Html |
|
| 618 |
+function getAddrGroupListShow(jsonList) {
|
|
| 619 |
+ var sHtml = ""; |
|
| 620 |
+ sHtml += "<option value='NEW'>그룹추가</option>"; |
|
| 621 |
+ sHtml += "<option value='0'>그룹미지정</option>"; |
|
| 622 |
+ sHtml += "<option value='bookmark'>자주보내는 번호</option>"; |
|
| 623 |
+ for (var j = 0; j < jsonList.length; j++) {
|
|
| 624 |
+ sHtml += " <option value='" + $.trim(jsonList[j].addrGrpId) + "' />" + $.trim(jsonList[j].addrGrpNm) + "</option>"; |
|
| 625 |
+ } |
|
| 626 |
+ |
|
| 627 |
+ $("#addrGrpIdInfo").html(sHtml);
|
|
| 628 |
+} |
|
| 629 |
+ |
|
| 577 | 630 |
</script> |
| 578 | 631 |
<div class="inner"> |
| 579 | 632 |
<!-- js 참고용 hidden --> |
... | ... | @@ -871,7 +924,7 @@ |
| 871 | 924 |
</div> |
| 872 | 925 |
</div> |
| 873 | 926 |
<!-- //발송대상 리스트 안내 팝업 --> |
| 874 |
- |
|
| 927 |
+ <!-- |
|
| 875 | 928 |
<div class="tooltip-wrap"> |
| 876 | 929 |
<div class="popup-com adr_layer rev_popup02" tabindex="0" data-tooltip-con="rev_popup02" data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 500px;"> |
| 877 | 930 |
<div class="popup_heading"> |
... | ... | @@ -895,8 +948,43 @@ |
| 895 | 948 |
</div> |
| 896 | 949 |
</div> |
| 897 | 950 |
</div> |
| 898 |
- </div> |
|
| 951 |
+ </div> --> |
|
| 899 | 952 |
|
| 953 |
+ <!-- 주소록에 등록 팝업 --> |
|
| 954 |
+ <div class="tooltip-wrap"> |
|
| 955 |
+ <div class="popup-com adr_layer rev_popup02" tabindex="0" data-tooltip-con="rev_popup02" data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 510px;"> |
|
| 956 |
+ <div class="popup_heading"> |
|
| 957 |
+ <p>주소록에 등록</p> |
|
| 958 |
+ <button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> |
|
| 959 |
+ </div> |
|
| 960 |
+ <div class="layer_in"> |
|
| 961 |
+ <table class="layer_tType1 style1"> |
|
| 962 |
+ <caption>주소록 그룹선택 표</caption> |
|
| 963 |
+ <colgroup> |
|
| 964 |
+ <col style="width: 80px"> |
|
| 965 |
+ <col style="width: auto"> |
|
| 966 |
+ </colgroup> |
|
| 967 |
+ <tbody> |
|
| 968 |
+ <tr> |
|
| 969 |
+ <th>그룹 선택</th> |
|
| 970 |
+ <td> |
|
| 971 |
+ <label for="" class="label">그룹 선택</label> |
|
| 972 |
+ <select id="addrGrpIdInfo" name="addrGrpIdInfo"> |
|
| 973 |
+ </select> |
|
| 974 |
+ <label for="" class="label">그룹명 입력</label> |
|
| 975 |
+ <input type="text" id="grpNm" placeholder="새 그룹명을 입력해주세요." onfocus="this.placeholder=''" onblur="this.placeholder='새 그룹명을 입력해주세요.'" class="inputLight"> |
|
| 976 |
+ </td> |
|
| 977 |
+ </tr> |
|
| 978 |
+ </tbody> |
|
| 979 |
+ </table> |
|
| 980 |
+ <div class="popup_btn_wrap2"> |
|
| 981 |
+ <button type="button" onclick="fnAddAddrNo()">등록</button> |
|
| 982 |
+ <button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close" data-focus-next="rev_popup02">닫기</button> |
|
| 983 |
+ </div> |
|
| 984 |
+ </div> |
|
| 985 |
+ </div> |
|
| 986 |
+ </div> |
|
| 987 |
+ <!--// 주소록에 등록 팝업 --> |
|
| 900 | 988 |
|
| 901 | 989 |
<!-- 이전 리스트 상태(검색조건, 페이징) 그대로 가기 위한 form --> |
| 902 | 990 |
<form id="goList" name="goList" method="post" action="/web/mjon/msgsent/selectMsgSentView.do"> |
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?