This commit is contained in:
hehihoho3@gmail.com 2024-10-21 09:18:04 +09:00
commit b2a89f11bd
2 changed files with 101 additions and 75 deletions

View File

@ -5,6 +5,7 @@ import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
@ -16,6 +17,7 @@ import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
@ -29,6 +31,8 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
@ -62,6 +66,7 @@ import itn.com.utl.fcc.service.EgovStringUtil;
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.AddrGroupService;
import itn.let.mjo.addr.service.AddrGroupVO;
import itn.let.mjo.addr.service.AddrService;
@ -1802,47 +1807,91 @@ public class MjonMsgCampainDataController {
return jspUrl;
}
/**
* 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기
*
* @param AddrGroupVO
* @param AddrVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjax.do"})
public ModelAndView selectMsgAddrListAjax(
@ModelAttribute("searchVO") AddrVO addrVO,
ModelMap model,
RedirectAttributes redirectAttributes) throws Exception {
/**
* 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기
*
* @param AddrGroupVO
* @param AddrVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjax.do"})
public ModelAndView selectMsgAddrListAjax(
@ModelAttribute("searchVO") AddrVO addrVO,
ModelMap model,
RedirectAttributes redirectAttributes) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId != "") {
addrVO.setMberId(userId);
}else {
modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax(addrVO);
modelAndView.addObject("resultAddrList", resultAddrList);
modelAndView.addObject("result", "success");
return modelAndView;
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId != "") {
addrVO.setMberId(userId);
}else {
modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
long startTime = System.currentTimeMillis(); // 시작 시간 측정
List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax(addrVO);
long endTime = System.currentTimeMillis(); // 종료 시간 측정
long elapsedTime = endTime - startTime; // 소요 시간 계산
System.out.println("소요 시간: " + elapsedTime + " 밀리초");
modelAndView.addObject("resultAddrList", resultAddrList);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기
*
* @param AddrGroupVO
* @param AddrVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjaxQ.do"})
public ResponseEntity<StatusResponse> selectMsgAddrListAjax_advc(@ModelAttribute("searchVO") AddrVO addrVO) {
Map<String, Object> response = new HashMap<>();
try {
// 로그인 권한 정보 확인
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
addrVO.setMberId(userId);
// OFFSET 계산
int offset = (addrVO.getPage()) * addrVO.getSize();
addrVO.setOffset(offset);
// 데이터 조회
List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO);
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()));
}
}
/**
* 선거문자 최근 전송내역 리스트 화면 불러오기
@ -1884,7 +1933,6 @@ public class MjonMsgCampainDataController {
return "web/msgcampain/MsgLatestListAjax";
}
/**
* 선거문자 자주 보내는 번호 리스트 화면 불러오기
*

View File

@ -1734,7 +1734,7 @@ function loadAddrList(){
/* serialize 를 사용할때는 processData, contentType 옵션 제가할것 */
var data = $("#searchAddrGrpForm").serialize();
var url = "/web/mjon/msgcampain/selectMsgAddrListAjax.do";
var url = "/web/mjon/msgcampain/selectMsgAddrListAjaxQ.do";
$.ajax({
type: "POST",
@ -1743,42 +1743,20 @@ function loadAddrList(){
dataType:'json',
async: true,
cache: false,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
success: function (data) {
console.log('data : ', data);
if(data.status == "OK"){
if(returnData.result == "success"){
var addrList = data.object;
var addrList = returnData.resultAddrList;
var tableData = [];
if(addrList.length == 0){
alert("주소록 정보가 없습니다.");
tableAddr.setData(tableData);
return false;
}
//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
for(var i=0; i < addrList.length; i++){
tableData.push({
groupNm: addrList[i].addrGrpNm
, phone: removeDash(addrList[i].addrPhoneNo)
, name: addrList[i].addrNm
, rep1: addrList[i].addrInfo1
, rep2: addrList[i].addrInfo2
, rep3: addrList[i].addrInfo3
, rep4: addrList[i].addrInfo4
});
}
//우측 주소록 리스트 Tabulator에 입력해주기
tableAddr.setData(tableData);
}else{
alert(returnData.message);
if(addrList.length == 0){
alert("주소록 정보가 없습니다.");
return false;
}
//우측 주소록 리스트 Tabulator에 입력해주기
tableAddr.setData(addrList);
} else if(status== 'fail'){
alert("주소록 불러오기에 실패하였습니다. !!");
}
@ -2788,8 +2766,8 @@ $(document).on('click', '#hdnLink', function() {
<!--// table -->
</div>
<div class="popup_btn_wrap2">
<button type="button" onClick="javascript:addrToList_advc('all'); return false;">전체</button>
<button type="button" onClick="javascript:addrToList_advc('select'); return false;">선택</button>
<button type="button" onClick="javascript:addrToList_advc('all'); return false;">전체추가</button>
<button type="button" onClick="javascript:addrToList_advc('select'); return false;">선택추가</button>
<button type="button" onClick="javascript:addrClose(); return false;">닫기</button>
</div>
<%-- 주소록 레이어 팝업 닫기 실행 코드 --%>