주소록 그룹삭제 작업중

This commit is contained in:
hylee 2024-09-11 17:44:00 +09:00
parent 15c2ee77c4
commit f36b1f454c
12 changed files with 109 additions and 465 deletions

View File

@ -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;
}
}

View File

@ -105,4 +105,8 @@ public interface AddrService {
public int insertAddrByTempAddrAll(List<AddrVO> addrList, AddrVO addrVO) throws Exception;
public StatusResponse addrMassInsertByTempAjax_advc(List<AddrVO> addrListVO, String userId) throws Exception;
void deleteAddr_advc(AddrGroupVO addrGroupVO) throws Exception;
int getAddrCount(AddrGroupVO addrGroupVO) throws Exception;
}

View File

@ -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;
// }
}

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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) {

View File

@ -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();

View File

@ -71,6 +71,7 @@
</select>
<select id="AddrGroupDAO.selectAddrGroupTotCnt" parameterClass="addrGroupVO" resultClass="addrGroupVO">
/* AddrGroupDAO.selectAddrGroupTotCnt */
SELECT
COUNT(0) AS addrTotCnt
FROM MJ_ADDR A

View File

@ -771,8 +771,26 @@
AND
ADDR_ID = #addrId#
</isNotEqual>
<isNotEmpty property="batchSize">
LIMIT #batchSize#
</isNotEmpty>
</delete>
<!-- 주소록 삭제 -->
<select id="AddrDAO.getAddrCount" parameterClass="addrVO" resultClass="int">
select
count(*)
FROM
MJ_ADDR
WHERE
MBER_ID = #mberId#
<isNotEmpty property="addrGrpId">
AND
ADDR_GRP_ID = #addrGrpId#
</isNotEmpty>
</select>
<!-- 주소록 삭제 By Admin -->
<delete id="AddrDAO.deleteAddrByAdmin" parameterClass="addrVO">
DELETE FROM

View File

@ -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,