From f36b1f454cdbabb0c8ce91cecc58b399b769049b Mon Sep 17 00:00:00 2001 From: hylee Date: Wed, 11 Sep 2024 17:44:00 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A3=BC=EC=86=8C=EB=A1=9D=20=EA=B7=B8?= =?UTF-8?q?=EB=A3=B9=EC=82=AD=EC=A0=9C=20=EC=9E=91=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/mjo/addr/service/AddrGroupVO.java | 83 +--- .../itn/let/mjo/addr/service/AddrService.java | 4 + .../java/itn/let/mjo/addr/service/AddrVO.java | 388 +----------------- .../let/mjo/addr/service/impl/AddrDAO.java | 5 + .../mjo/addr/service/impl/AddrGroupDAO.java | 2 +- .../service/impl/AddrGroupServiceImpl.java | 2 +- .../addr/service/impl/AddrServiceImpl.java | 52 +++ .../itn/let/mjo/addr/web/AddrController.java | 3 +- .../let/mjo/addr/web/AddrGroupController.java | 13 +- .../let/mjo/addr/AddrGroup_SQL_Mysql.xml | 1 + .../sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml | 18 + .../jsp/web/addr/AddrGroupListAjax.jsp | 3 +- 12 files changed, 109 insertions(+), 465 deletions(-) diff --git a/src/main/java/itn/let/mjo/addr/service/AddrGroupVO.java b/src/main/java/itn/let/mjo/addr/service/AddrGroupVO.java index aed15e16..2d452558 100644 --- a/src/main/java/itn/let/mjo/addr/service/AddrGroupVO.java +++ b/src/main/java/itn/let/mjo/addr/service/AddrGroupVO.java @@ -1,7 +1,11 @@ package itn.let.mjo.addr.service; import itn.com.cmm.ComDefaultVO; +import lombok.Getter; +import lombok.Setter; +@Getter +@Setter public class AddrGroupVO extends ComDefaultVO{ private static final long serialVersionUID = 1L; @@ -21,83 +25,4 @@ public class AddrGroupVO extends ComDefaultVO{ private int bookmarkCnt; private int nogrpCnt; private int addrTotCnt; - - public int getBookmarkCnt() { - return bookmarkCnt; - } - public void setBookmarkCnt(int bookmarkCnt) { - this.bookmarkCnt = bookmarkCnt; - } - public int getNogrpCnt() { - return nogrpCnt; - } - public void setNogrpCnt(int nogrpCnt) { - this.nogrpCnt = nogrpCnt; - } - public int getAddrTotCnt() { - return addrTotCnt; - } - public void setAddrTotCnt(int addrTotCnt) { - this.addrTotCnt = addrTotCnt; - } - public int getTotcnt() { - return totcnt; - } - public void setTotcnt(int totcnt) { - this.totcnt = totcnt; - } - public String getAddrGrpId() { - return addrGrpId; - } - public void setAddrGrpId(String addrGrpId) { - this.addrGrpId = addrGrpId; - } - public String[] getAddrGrpIds() { - return addrGrpIds; - } - public void setAddrGrpIds(String[] addrGrpIds) { - this.addrGrpIds = addrGrpIds; - } - public String getMberId() { - return mberId; - } - public void setMberId(String mberId) { - this.mberId = mberId; - } - public String getAddrGrpNm() { - return addrGrpNm; - } - public void setAddrGrpNm(String addrGrpNm) { - this.addrGrpNm = addrGrpNm; - } - public String getAddrComment() { - return addrComment; - } - public void setAddrComment(String addrComment) { - this.addrComment = addrComment; - } - public String getDeleteYn() { - return deleteYn; - } - public void setDeleteYn(String deleteYn) { - this.deleteYn = deleteYn; - } - public int getGrpOrder() { - return grpOrder; - } - public void setGrpOrder(int grpOrder) { - this.grpOrder = grpOrder; - } - public String getGrpCount() { - return grpCount; - } - public void setGrpCount(String grpCount) { - this.grpCount = grpCount; - } - public String getMergeGrps() { - return mergeGrps; - } - public void setMergeGrps(String mergeGrps) { - this.mergeGrps = mergeGrps; - } } diff --git a/src/main/java/itn/let/mjo/addr/service/AddrService.java b/src/main/java/itn/let/mjo/addr/service/AddrService.java index 056a81c6..ea1179a2 100644 --- a/src/main/java/itn/let/mjo/addr/service/AddrService.java +++ b/src/main/java/itn/let/mjo/addr/service/AddrService.java @@ -105,4 +105,8 @@ public interface AddrService { public int insertAddrByTempAddrAll(List addrList, AddrVO addrVO) throws Exception; public StatusResponse addrMassInsertByTempAjax_advc(List addrListVO, String userId) throws Exception; + + void deleteAddr_advc(AddrGroupVO addrGroupVO) throws Exception; + + int getAddrCount(AddrGroupVO addrGroupVO) throws Exception; } diff --git a/src/main/java/itn/let/mjo/addr/service/AddrVO.java b/src/main/java/itn/let/mjo/addr/service/AddrVO.java index c40b7708..d3339b25 100644 --- a/src/main/java/itn/let/mjo/addr/service/AddrVO.java +++ b/src/main/java/itn/let/mjo/addr/service/AddrVO.java @@ -3,7 +3,11 @@ package itn.let.mjo.addr.service; import java.util.List; import itn.com.cmm.ComDefaultVO; +import lombok.Getter; +import lombok.Setter; +@Getter +@Setter public class AddrVO extends ComDefaultVO{ private static final long serialVersionUID = 1L; @@ -13,12 +17,6 @@ public class AddrVO extends ComDefaultVO{ private String addrId; // 주소록ID private String addrGrpId; // 주소록그룹ID private String[] addrGrpIds; // 주소록그룹IDs - public String[] getAddrGrpIds() { - return addrGrpIds; - } - public void setAddrGrpIds(String[] addrGrpIds) { - this.addrGrpIds = addrGrpIds; - } private String mberId; // 일반회원ID private String addrNm; // 주소록 이름 private String addrPhoneNo; // 휴대폰번호 @@ -64,232 +62,6 @@ public class AddrVO extends ComDefaultVO{ String[] memoList; private int dupliCnt; - - public String getSearchStartDate() { - return searchStartDate; - } - public void setSearchStartDate(String searchStartDate) { - this.searchStartDate = searchStartDate; - } - public String getSearchEndDate() { - return searchEndDate; - } - public void setSearchEndDate(String searchEndDate) { - this.searchEndDate = searchEndDate; - } - public int getDupliCnt() { - return dupliCnt; - } - public void setDupliCnt(int dupliCnt) { - this.dupliCnt = dupliCnt; - } - public String[] getPhoneList() { - return phoneList; - } - public void setPhoneList(String[] phoneList) { - this.phoneList = phoneList; - } - public String[] getNameList() { - return nameList; - } - public void setNameList(String[] nameList) { - this.nameList = nameList; - } - public String[] getInfo1List() { - return info1List; - } - public void setInfo1List(String[] info1List) { - this.info1List = info1List; - } - public String[] getInfo2List() { - return info2List; - } - public void setInfo2List(String[] info2List) { - this.info2List = info2List; - } - public String[] getInfo3List() { - return info3List; - } - public void setInfo3List(String[] info3List) { - this.info3List = info3List; - } - public String[] getInfo4List() { - return info4List; - } - public void setInfo4List(String[] info4List) { - this.info4List = info4List; - } - public String[] getMemoList() { - return memoList; - } - public void setMemoList(String[] memoList) { - this.memoList = memoList; - } - - - public int getTotcnt() { - return totcnt; - } - public void setTotcnt(int totcnt) { - this.totcnt = totcnt; - } - - public String getAddrId() { - return addrId; - } - public void setAddrId(String addrId) { - this.addrId = addrId; - } - public String getAddrGrpId() { - return addrGrpId; - } - public void setAddrGrpId(String addrGrpId) { - this.addrGrpId = addrGrpId; - } - public String getMberId() { - return mberId; - } - public void setMberId(String mberId) { - this.mberId = mberId; - } - public String getAddrNm() { - return addrNm; - } - public void setAddrNm(String addrNm) { - this.addrNm = addrNm; - } - public String getAddrPhoneNo() { - return addrPhoneNo; - } - public void setAddrPhoneNo(String addrPhoneNo) { - this.addrPhoneNo = addrPhoneNo; - } - public String getAddrInfo1() { - return addrInfo1; - } - public void setAddrInfo1(String addrInfo1) { - this.addrInfo1 = addrInfo1; - } - public String getAddrInfo2() { - return addrInfo2; - } - public void setAddrInfo2(String addrInfo2) { - this.addrInfo2 = addrInfo2; - } - public String getAddrInfo3() { - return addrInfo3; - } - public void setAddrInfo3(String addrInfo3) { - this.addrInfo3 = addrInfo3; - } - public String getAddrInfo4() { - return addrInfo4; - } - public void setAddrInfo4(String addrInfo4) { - this.addrInfo4 = addrInfo4; - } - public String getAddrComment() { - return addrComment; - } - public void setAddrComment(String addrComment) { - this.addrComment = addrComment; - } - public String getDeleteYn() { - return deleteYn; - } - public void setDeleteYn(String deleteYn) { - this.deleteYn = deleteYn; - } - public String getAddrGrpNm() { - return addrGrpNm; - } - public void setAddrGrpNm(String addrGrpNm) { - this.addrGrpNm = addrGrpNm; - } - public String getGrpDelete() { - return grpDelete; - } - public void setGrpDelete(String grpDelete) { - this.grpDelete = grpDelete; - } - public String getType() { - return type; - } - public void setType(String type) { - this.type = type; - } - public String getBookmark() { - return bookmark; - } - public void setBookmark(String bookmark) { - this.bookmark = bookmark; - } - public String getRecvStatus() { - return recvStatus; - } - public void setRecvStatus(String recvStatus) { - this.recvStatus = recvStatus; - } - public String[] getMergeGrps() { - return mergeGrps; - } - public void setMergeGrps(String[] mergeGrps) { - this.mergeGrps = mergeGrps; - } - public String[] getSendGrps() { - return sendGrps; - } - public void setSendGrps(String[] sendGrps) { - this.sendGrps = sendGrps; - } - public String[] getAddrIds() { - return addrIds; - } - public void setAddrIds(String[] addrIds) { - this.addrIds = addrIds; - } - public String[] getAddrPhones() { - return addrPhones; - } - public void setAddrPhones(String[] addrPhones) { - this.addrPhones = addrPhones; - } - public String[] getAddrNms() { - return addrNms; - } - public void setAddrNms(String[] addrNms) { - this.addrNms = addrNms; - } - public String[] getAddrInfo1s() { - return addrInfo1s; - } - public void setAddrInfo1s(String[] addrInfo1s) { - this.addrInfo1s = addrInfo1s; - } - public String[] getAddrInfo2s() { - return addrInfo2s; - } - public void setAddrInfo2s(String[] addrInfo2s) { - this.addrInfo2s = addrInfo2s; - } - public String[] getAddrInfo3s() { - return addrInfo3s; - } - public void setAddrInfo3s(String[] addrInfo3s) { - this.addrInfo3s = addrInfo3s; - } - public String[] getAddrInfo4s() { - return addrInfo4s; - } - public void setAddrInfo4s(String[] addrInfo4s) { - this.addrInfo4s = addrInfo4s; - } - public String[] getExcelDownTitles() { - return excelDownTitles; - } - public void setExcelDownTitles(String[] excelDownTitles) { - this.excelDownTitles = excelDownTitles; - } public String getFieldValue(String field) { @@ -334,30 +106,6 @@ public class AddrVO extends ComDefaultVO{ } return ""; } - public String getSearchAddrGrpId() { - return searchAddrGrpId; - } - public void setSearchAddrGrpId(String searchAddrGrpId) { - this.searchAddrGrpId = searchAddrGrpId; - } - public String getStartKeyword() { - return startKeyword; - } - public void setStartKeyword(String startKeyword) { - this.startKeyword = startKeyword; - } - public String[] getCopyAddrs() { - return copyAddrs; - } - public void setCopyAddrs(String[] copyAddrs) { - this.copyAddrs = copyAddrs; - } - public List getAddrIdList() { - return addrIdList; - } - public void setAddrIdList(List addrIdList) { - this.addrIdList = addrIdList; - } @@ -368,49 +116,6 @@ public class AddrVO extends ComDefaultVO{ private String addrRep2; private String addrRep3; private String addrRep4; - public String getAddrGroupNm() { - return addrGroupNm; - } - public void setAddrGroupNm(String addrGroupNm) { - this.addrGroupNm = addrGroupNm; - } - public String getAddrPhone() { - return addrPhone; - } - public void setAddrPhone(String addrPhone) { - this.addrPhone = addrPhone; - } - public String getAddrName() { - return addrName; - } - public void setAddrName(String addrName) { - this.addrName = addrName; - } - public String getAddrRep1() { - return addrRep1; - } - public void setAddrRep1(String addrRep1) { - this.addrRep1 = addrRep1; - } - public String getAddrRep2() { - return addrRep2; - } - public void setAddrRep2(String addrRep2) { - this.addrRep2 = addrRep2; - } - public String getAddrRep3() { - return addrRep3; - } - public void setAddrRep3(String addrRep3) { - this.addrRep3 = addrRep3; - } - public String getAddrRep4() { - return addrRep4; - } - public void setAddrRep4(String addrRep4) { - this.addrRep4 = addrRep4; - } - private int page = 1; // 기본 값 설정 @@ -423,88 +128,11 @@ public class AddrVO extends ComDefaultVO{ private String rep3; private String rep4; + private int batchSize; + private int lastProcessedId; + + - - public int getPage() { - return page; - } - - public int getSize() { - return size; - } - public int getOffset() { - return offset; - } - public void setOffset(int offset) { - this.offset = offset; - } - public void setSize(int size) { - this.size = size; - } - public void setPage(int page) { - this.page = page; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public String getPhone() { - return phone; - } - public void setPhone(String phone) { - this.phone = phone; - } - public String getRep1() { - return rep1; - } - public void setRep1(String rep1) { - this.rep1 = rep1; - } - public String getRep2() { - return rep2; - } - public void setRep2(String rep2) { - this.rep2 = rep2; - } - public String getRep3() { - return rep3; - } - public void setRep3(String rep3) { - this.rep3 = rep3; - } - public String getRep4() { - return rep4; - } - public void setRep4(String rep4) { - this.rep4 = rep4; - } - - - - -// public void setPage(int page) { -// if(page > 0) { -// this.page = page; -// } -// } - -// -// public void setSize(int size) { -// if(size > 0) { -// this.size = size; -// } -// } -// -// // OFFSET 계산 메서드 추가 -// public int getOffset() { -// return (page - 1) * size; -// } -// public void setOffset(int offset) { -// this.offset = offset; -// } - } diff --git a/src/main/java/itn/let/mjo/addr/service/impl/AddrDAO.java b/src/main/java/itn/let/mjo/addr/service/impl/AddrDAO.java index 799f8b70..06505d43 100644 --- a/src/main/java/itn/let/mjo/addr/service/impl/AddrDAO.java +++ b/src/main/java/itn/let/mjo/addr/service/impl/AddrDAO.java @@ -287,5 +287,10 @@ public class AddrDAO extends EgovAbstractDAO { public int insertAddrByTempAddr(AddrVO addrVO) throws Exception { return update("AddrDAO.insertAddrByTempAddr", addrVO); } + + public int getAddrCount(AddrVO addrVO) { + return (Integer)select("AddrDAO.getAddrCount", addrVO); + } + } diff --git a/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupDAO.java b/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupDAO.java index 6ce5bc50..9097893e 100644 --- a/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupDAO.java +++ b/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupDAO.java @@ -49,7 +49,7 @@ public class AddrGroupDAO extends EgovAbstractDAO { public AddrGroupVO selectAddrGroupTotCnt(AddrGroupVO addrGroupVO) throws Exception { return (AddrGroupVO) select("AddrGroupDAO.selectAddrGroupTotCnt", addrGroupVO); } - + // 주소록 그룹 카운트 조회(그룹미지정) public AddrGroupVO selectAddrGroupNogrpCnt(AddrGroupVO addrGroupVO) throws Exception { return (AddrGroupVO) select("AddrGroupDAO.selectAddrGroupNogrpCnt", addrGroupVO); diff --git a/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupServiceImpl.java b/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupServiceImpl.java index f626c01a..cbf4ac4e 100644 --- a/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupServiceImpl.java +++ b/src/main/java/itn/let/mjo/addr/service/impl/AddrGroupServiceImpl.java @@ -62,7 +62,7 @@ public class AddrGroupServiceImpl extends EgovAbstractServiceImpl implements Ad public AddrGroupVO selectAddrGroupTotCnt(AddrGroupVO addrGroupVO) throws Exception { return addrGroupDAO.selectAddrGroupTotCnt(addrGroupVO); } - + // 주소록 그룹 카운트 조회(그룹미지정) public AddrGroupVO selectAddrGroupNogrpCnt(AddrGroupVO addrGroupVO) throws Exception { return addrGroupDAO.selectAddrGroupNogrpCnt(addrGroupVO); 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 e969e960..eb6f4762 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 @@ -4,11 +4,14 @@ import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; +import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; @@ -602,4 +605,53 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer } return new String(bytes, 0, len, EUC_KR); } + + + private final ExecutorService executorService = Executors.newFixedThreadPool(3); + + + public void deleteAddr_advc(AddrGroupVO addrGroupVO) throws Exception { + + addrGroupDAO.deleteAddrGroup(addrGroupVO); + + AddrVO addrVO = new AddrVO(); + addrVO.setAddrGrpId(addrGroupVO.getAddrGrpId()); + addrVO.setGrpDelete("Y"); + addrVO.setMberId(addrGroupVO.getMberId()); + + +// boolean hasMoreData = true; +// +// while (hasMoreData) { +// // 1. addrVO에 마지막으로 처리된 ID와 배치 크기를 설정 +// addrVO.setBatchSize(50000); +// + + + // 2. 현재 배치에서 삭제된 레코드 수를 확인 +// int affectedRows = addrDAO.deleteAddr(addrVO); + +// // 3. 더 이상 삭제할 데이터가 없으면 종료 +// if (affectedRows < BATCH_SIZE) { +// hasMoreData = false; +// } +// } + + addrDAO.deleteAddr(addrVO); + } + + @Override + public int getAddrCount(AddrGroupVO addrGroupVO) throws Exception { + + AddrVO addrVO = new AddrVO(); + addrVO.setAddrGrpId(addrGroupVO.getAddrGrpId()); + addrVO.setMberId(addrGroupVO.getMberId()); + + int aa = addrDAO.getAddrCount(addrVO); + + System.out.println("aa : "+ aa); + + return aa; + } + } diff --git a/src/main/java/itn/let/mjo/addr/web/AddrController.java b/src/main/java/itn/let/mjo/addr/web/AddrController.java index c71f3d42..631aa1ec 100644 --- a/src/main/java/itn/let/mjo/addr/web/AddrController.java +++ b/src/main/java/itn/let/mjo/addr/web/AddrController.java @@ -570,7 +570,8 @@ public class AddrController { for(String id:addrCheck) { try { addrVO.setAddrId(id); - addrService.deleteAddr(addrVO); +// addrService.deleteAddr(addrVO); + System.out.println("??????"); modelAndView.addObject("result", "success"); } catch (Exception e) { diff --git a/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java b/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java index b8462e74..bc16ee88 100644 --- a/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java +++ b/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java @@ -725,11 +725,20 @@ public class AddrGroupController { LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); addrGroupVO.setLastUpdusrId(user.getId()); addrGroupVO.setMberId(user.getId()); - AddrVO addrVO = new AddrVO(); for(String id:grpCheck) { try { + +// id = "13026"; addrGroupVO.setAddrGrpId(id); + addrGroupVO.setMberId(user.getId()); + int tot = addrService.getAddrCount(addrGroupVO); + addrGroupVO.setTotCnt(tot); + + addrService.deleteAddr_advc(addrGroupVO); + + +/* addrGroupVO.setAddrGrpId(id); addrGroupService.deleteAddrGroup(addrGroupVO); addrVO.setAddrGrpId(id); @@ -737,7 +746,7 @@ public class AddrGroupController { addrVO.setMberId(user.getId()); addrVO.setLastUpdusrId(user.getId()); addrService.deleteAddr(addrVO); - +*/ modelAndView.addObject("result", "success"); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/resources/egovframework/sqlmap/let/mjo/addr/AddrGroup_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/mjo/addr/AddrGroup_SQL_Mysql.xml index 2111dbab..b94a69fb 100644 --- a/src/main/resources/egovframework/sqlmap/let/mjo/addr/AddrGroup_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/mjo/addr/AddrGroup_SQL_Mysql.xml @@ -71,6 +71,7 @@ + + select + count(*) + FROM + MJ_ADDR + WHERE + MBER_ID = #mberId# + + AND + ADDR_GRP_ID = #addrGrpId# + + + DELETE FROM 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 c2ead1dc..e21b0eb5 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp @@ -30,6 +30,7 @@ function getAddrGroupTotCnt() { dataType:'json', async: true, success: function (data) { + console.log('data : ', data); if (data.isSuccess) { $("#addrTotCnt").html(numberWithCommas(data.addrTotCnt)); } @@ -97,10 +98,10 @@ function listAddrGroupAjax() { // 주소록 그룹 지우기(선택삭제) function deleteAddrGroup() { - fn_loadAddActive(); var form = document.addrGrpListForm; if($("input:checkbox[name='grpCheck']").is(":checked")==true){ if(confirm("그룹을 삭제하시겠습니까?\n그룹 내 전체 주소가 삭제되며 복구할 수 없습니다.")) { + fn_loadAddActive(); var data = new FormData(form); $.ajax({ cache : false,