문자, 팩스발송 주소록 불러오기 완료

This commit is contained in:
hehihoho3@gmail.com 2024-12-24 20:00:42 +09:00
parent 6fbef10f7a
commit 71d444f447
10 changed files with 90 additions and 66 deletions

View File

@ -158,6 +158,7 @@ public class FaxAddrController {
try {
List<FaxAddrVO> resultAddrList = faxAddrService.selectFaxAddrListAjax(faxAddrVO);
System.out.println("resultAddrList.size() :: "+ resultAddrList.size());
modelAndView.addObject("resultAddrList", resultAddrList);
modelAndView.addObject("result", "success");

View File

@ -0,0 +1,35 @@
package itn.let.mjo.addr.service;
import itn.com.cmm.ComDefaultVO;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class AddrDTO extends ComDefaultVO{
private static final long serialVersionUID = 1L;
private String addrId; // 주소록ID
private String addrGrpId; // 주소록그룹ID
private String mberId; // 일반회원ID
private String name;
private String phone;
private String rep1;
private String rep2;
private String rep3;
private String rep4;
private String deleteYn; // 삭제여부
private String bookmark; // 자주보내는번호
private String addrGroupNm;
}

View File

@ -67,6 +67,7 @@ import itn.let.lett.service.HashConfVO;
import itn.let.lett.service.LetterService;
import itn.let.lett.service.LetterVO;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.addr.service.AddrDTO;
import itn.let.mjo.addr.service.AddrGroupService;
import itn.let.mjo.addr.service.AddrGroupVO;
import itn.let.mjo.addr.service.AddrService;
@ -1884,7 +1885,7 @@ public class MjonMsgCampainDataController {
int offset = (addrVO.getPage()) * addrVO.getSize();
addrVO.setOffset(offset);
// 데이터 조회
List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO);
List<AddrDTO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO);
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, "",resultAddrList));
} catch (Exception e) {

View File

@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest;
import itn.let.lett.service.LetterVO;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.addr.service.AddrDTO;
import itn.let.mjo.addr.service.AddrVO;
import itn.let.mjo.msg.service.MjonMsgVO;
import itn.let.sym.site.service.JoinSettingVO;
@ -177,7 +178,7 @@ public interface MjonMsgDataService {
//대용량 문자 전송시 사용자 마지막 PK 조회하기
public String selectMsgUserLastIdgen(MjonMsgVO mjonMsgVO) throws Exception;
public List<AddrVO> selectMsgAddrListAjax_advc(AddrVO addrVO) throws Exception;
public List<AddrDTO> selectMsgAddrListAjax_advc(AddrVO addrVO) throws Exception;
public int countByMsgAddrListAjax_advc(AddrVO addrVO) throws Exception;

View File

@ -16,6 +16,7 @@ import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import itn.com.cmm.MjonMsgSendVO;
import itn.let.lett.service.LetterVO;
import itn.let.mjo.addr.service.AddrDTO;
import itn.let.mjo.addr.service.AddrVO;
import itn.let.mjo.msg.service.MjonMsgVO;
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
@ -381,8 +382,8 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
}
public List<AddrVO> selectMsgAddrListAjax_advc(AddrVO addrVO) {
return (List<AddrVO>) list("mjonMsgDAO.selectMsgAddrListAjax_advc", addrVO);
public List<AddrDTO> selectMsgAddrListAjax_advc(AddrVO addrVO) {
return (List<AddrDTO>) list("mjonMsgDAO.selectMsgAddrListAjax_advc", addrVO);
}

View File

@ -1,6 +1,5 @@
package itn.let.mjo.msgdata.service.impl;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
@ -18,22 +17,18 @@ import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.ModelAndView;
import egovframework.com.idgen.CustomIdGnrService;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.cmmn.exception.FdlException;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import itn.com.cmm.LoginVO;
import itn.com.cmm.MjonMsgSendVO;
import itn.com.cmm.OptimalMsgResultDTO;
import itn.com.cmm.util.MJUtil;
import itn.com.cmm.util.MsgSendUtils;
import itn.com.cmm.util.StringUtil;
@ -41,6 +36,7 @@ import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.lett.service.LetterVO;
import itn.let.lett.service.impl.LetterDAO;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.addr.service.AddrDTO;
import itn.let.mjo.addr.service.AddrVO;
import itn.let.mjo.event.service.MjonEventService;
import itn.let.mjo.event.service.MjonEventVO;
@ -3929,7 +3925,7 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
}
@Override
public List<AddrVO> selectMsgAddrListAjax_advc(AddrVO addrVO) throws Exception {
public List<AddrDTO> selectMsgAddrListAjax_advc(AddrVO addrVO) throws Exception {
return mjonMsgDataDAO.selectMsgAddrListAjax_advc(addrVO);
}

View File

@ -42,7 +42,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@ -51,7 +50,6 @@ import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.support.SessionStatus;
@ -60,8 +58,6 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.fasterxml.jackson.databind.ObjectMapper;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@ -69,7 +65,6 @@ import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.JsonResult;
import itn.com.cmm.LoginVO;
import itn.com.cmm.MjonMsgSendVO;
import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.EgovFileMngUtil;
import itn.com.cmm.service.FileVO;
@ -81,6 +76,7 @@ import itn.let.lett.service.HashConfVO;
import itn.let.lett.service.LetterService;
import itn.let.lett.service.LetterVO;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.addr.service.AddrDTO;
import itn.let.mjo.addr.service.AddrGroupService;
import itn.let.mjo.addr.service.AddrGroupVO;
import itn.let.mjo.addr.service.AddrService;
@ -2068,21 +2064,17 @@ public class MjonMsgDataController {
int offset = (addrVO.getPage()) * addrVO.getSize();
addrVO.setOffset(offset);
// 데이터 조회
List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO);
// List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO);
List<AddrDTO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO);
System.out.println(" + resultAddrList.size() :: "+ resultAddrList.size());
// int totalCount = mjonMsgDataService.countByMsgAddrListAjax_advc(addrVO); // 필터에 맞는 레코드 가져오기
// 페이지네이션 계산
// int lastPage = (int) Math.ceil((double) totalCount / addrVO.getSize());
// 응답 데이터 구성
// response.put("data", resultAddrList);
// response.put("last_page", lastPage); // 클라이언트가 사용할 있도록 last_page 포함
// response.put("total_count", totalCount); // 필요 , 레코드 포함
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, "",resultAddrList));
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "조회 요청 중 오류가 발생하였습니다.", LocalDateTime.now()));
e.printStackTrace();
return ResponseEntity.ok().body(
new StatusResponse(HttpStatus.INTERNAL_SERVER_ERROR, "조회 중 오류 발생", LocalDateTime.now()));
}
}

View File

@ -1021,7 +1021,7 @@
ON A.ADDR_GRP_ID = B.ADDR_GRP_ID
WHERE A.MBER_ID = #mberId#
AND (A.RECV_STATUS = 'Y' OR A.RECV_STATUS = 'S' OR A.RECV_STATUS IS NULL)
AND B.DELETE_YN = 'N'
AND A.DELETE_YN = 'N'
GROUP BY A.ADDR_PHONE_NO
ORDER BY A.ADDR_PHONE_NO ASC, B.ADDR_GRP_ID ASC
) M
@ -1144,7 +1144,6 @@
A.ADDR_GRP_ID = B.ADDR_GRP_ID
WHERE A.MBER_ID = #mberId#
AND (A.RECV_STATUS = 'Y' OR A.RECV_STATUS = 'S' OR A.RECV_STATUS IS NULL)
AND B.DELETE_YN = 'N'
<isNotEmpty property="type">
<isEqual property="type" compareValue="none">
AND A.ADDR_GRP_ID = '0'
@ -1156,6 +1155,13 @@
<isEqual property="type" compareValue="grp">
AND A.ADDR_GRP_ID = #searchAddrGrpId#
</isEqual>
<isEqual property="type" compareValue="all">
AND (
B.DELETE_YN = 'N'
OR (A.ADDR_GRP_ID = '0' AND A.BOOKMARK = 'N')
OR A.BOOKMARK = 'Y'
)
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchCondition">
<isEqual property="searchCondition" compareValue="0">

View File

@ -16,6 +16,7 @@
<typeAlias alias="mberManageVO" type="itn.let.uss.umt.service.MberManageVO"/>
<typeAlias alias="SendLogVO" type="itn.let.uat.uia.web.SendLogVO"/>
<typeAlias alias="addrVO" type="itn.let.mjo.addr.service.AddrVO"/>
<typeAlias alias="addrDTO" type="itn.let.mjo.addr.service.AddrDTO"/>
<typeAlias alias="mjonMsgResultCodeVO" type="itn.let.mjo.msg.service.MjonMsgResultCodeVO"/>
<typeAlias alias="mjonSwearWordVO" type="itn.let.mjo.msg.service.MjonSwearWordVO"/>
<typeAlias alias="mjonMsgResvVO" type="itn.let.mjo.reservmsg.service.MjonResvMsgVO"/>
@ -3882,7 +3883,7 @@
</select>
<!-- 등록 주소록 그룹 선택시 리스트 불러오기 -->
<select id="mjonMsgDAO.selectMsgAddrListAjax_advc" parameterClass="addrVO" resultClass="addrVO">
<select id="mjonMsgDAO.selectMsgAddrListAjax_advc" parameterClass="addrVO" resultClass="addrDTO">
/* mjonMsgDAO.selectMsgAddrListAjax_advc */
SELECT A.ADDR_ID AS addrId,
@ -3904,7 +3905,6 @@
A.ADDR_GRP_ID = B.ADDR_GRP_ID
WHERE A.MBER_ID = #mberId#
AND (A.RECV_STATUS = 'Y' OR A.RECV_STATUS = 'S' OR A.RECV_STATUS IS NULL)
AND B.DELETE_YN = 'N'
<isNotEmpty property="type">
<isEqual property="type" compareValue="none">
AND A.ADDR_GRP_ID = '0'
@ -3916,6 +3916,13 @@
<isEqual property="type" compareValue="grp">
AND A.ADDR_GRP_ID = #searchAddrGrpId#
</isEqual>
<isEqual property="type" compareValue="all">
AND (
B.DELETE_YN = 'N'
OR (A.ADDR_GRP_ID = '0' AND A.BOOKMARK = 'N')
OR A.BOOKMARK = 'Y'
)
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchCondition">
<isEqual property="searchCondition" compareValue="0">
@ -3952,7 +3959,7 @@
A.ADDR_GRP_ID = B.ADDR_GRP_ID
WHERE A.MBER_ID = #mberId#
AND (A.RECV_STATUS = 'Y' OR A.RECV_STATUS = 'S' OR A.RECV_STATUS IS NULL)
AND B.DELETE_YN = 'N'
<isNotEmpty property="type">
<isEqual property="type" compareValue="none">
AND A.ADDR_GRP_ID = '0'
@ -3964,6 +3971,13 @@
<isEqual property="type" compareValue="grp">
AND A.ADDR_GRP_ID = #searchAddrGrpId#
</isEqual>
<isEqual property="type" compareValue="all">
AND (
B.DELETE_YN = 'N'
OR (A.ADDR_GRP_ID = '0' AND A.BOOKMARK = 'N')
OR A.BOOKMARK = 'Y'
)
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchCondition">
<isEqual property="searchCondition" compareValue="0">

View File

@ -2765,7 +2765,6 @@ function fnAddrGrpSearch(){
//주소록 불러오기 팝업의 그룹 선택시 우측에 주소록 불러오기
function fnSelectAddrList(type,addrGrpId,item){
// 주소록 그룹 열림, 닫힘 폴더이미지 초기화
$(".adr_pop_list div p").each(function (index, item) {
$(item).find("img").attr("src", "/publish/images/content/close_folder2.png");
@ -2840,47 +2839,25 @@ function loadAddrList(){
return false;
}
//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
// for(var i=0; i < addrList.length; i++){
// tableData.push({
// addrGroupNm: addrList[i].addrGrpNm
// , addrPhone: removeDash(addrList[i].addrPhoneNo)
// , addrName: addrList[i].addrNm
// , addrRep1: addrList[i].addrInfo1
// , addrRep2: addrList[i].addrInfo2
// , addrRep3: addrList[i].addrInfo3
// , addrRep4: addrList[i].addrInfo4
// });
// }
// addrList.forEach(function(addr){
// tableData.push({
// addrGroupNm: addr.addrGrpNm,
// addrPhone: removeDash(addr.addrPhoneNo),
// addrName: addr.addrNm,
// addrRep1: addr.addrInfo1,
// addrRep2: addr.addrInfo2,
// addrRep3: addr.addrInfo3,
// addrRep4: addr.addrInfo4
// });
// });
//우측 주소록 리스트 Tabulator에 입력해주기
// tableAddr.setData(tableData);
console.log('data : ', data);
// console.log('data : ', data);
tableAddr.setData(addrList);
// tableAddr.updateOrAddData(addrList); // 무한 스크롤을 위해 데이터를 업데이트
}
else
{
alert("주소록 불러오기에 실패하였습니다. !!");
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert("주소록 불러오기에 실패하였습니다.");
console.log("ERROR : ", jqXHR.status, textStatus, errorThrown); // 상태 코드, 상태 텍스트, 에러 메시지 출력
console.log("Response Text: ", jqXHR.responseText); // 서버 응답 텍스트 출력
},
error: function (jqXHR, textStatus, errorThrown) {
alert("주소록 불러오기에 실패하였습니다.");
console.error("Error:", jqXHR.status, textStatus, errorThrown);
console.error("Response Text:", jqXHR.responseText);
try {
let json = JSON.parse(jqXHR.responseText);
console.log("Parsed JSON Response:", json);
} catch (e) {
console.error("JSON Parse Error:", e);
}
},
beforeSend : function(xmlHttpRequest) {
//로딩창 show
$('.loading_layer').addClass('active');