선거문자 업로드 수정
@e46a95b02b2000a18a9f5518802df57c63bc33ad
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 |
import java.math.BigDecimal; |
| 6 | 6 |
import java.math.RoundingMode; |
| 7 | 7 |
import java.text.SimpleDateFormat; |
| 8 |
+import java.time.LocalDateTime; |
|
| 8 | 9 |
import java.util.ArrayList; |
| 9 | 10 |
import java.util.Arrays; |
| 10 | 11 |
import java.util.Calendar; |
... | ... | @@ -16,6 +17,7 @@ |
| 16 | 17 |
import javax.annotation.Resource; |
| 17 | 18 |
import javax.servlet.http.HttpServletRequest; |
| 18 | 19 |
|
| 20 |
+import org.apache.commons.lang3.StringUtils; |
|
| 19 | 21 |
import org.apache.poi.hssf.usermodel.HSSFCell; |
| 20 | 22 |
import org.apache.poi.hssf.usermodel.HSSFRow; |
| 21 | 23 |
import org.apache.poi.hssf.usermodel.HSSFSheet; |
... | ... | @@ -29,6 +31,8 @@ |
| 29 | 31 |
import org.slf4j.Logger; |
| 30 | 32 |
import org.slf4j.LoggerFactory; |
| 31 | 33 |
import org.springframework.beans.factory.annotation.Value; |
| 34 |
+import org.springframework.http.HttpStatus; |
|
| 35 |
+import org.springframework.http.ResponseEntity; |
|
| 32 | 36 |
import org.springframework.stereotype.Controller; |
| 33 | 37 |
import org.springframework.ui.Model; |
| 34 | 38 |
import org.springframework.ui.ModelMap; |
... | ... | @@ -62,6 +66,7 @@ |
| 62 | 66 |
import itn.let.lett.service.HashConfVO; |
| 63 | 67 |
import itn.let.lett.service.LetterService; |
| 64 | 68 |
import itn.let.lett.service.LetterVO; |
| 69 |
+import itn.let.mail.service.StatusResponse; |
|
| 65 | 70 |
import itn.let.mjo.addr.service.AddrGroupService; |
| 66 | 71 |
import itn.let.mjo.addr.service.AddrGroupVO; |
| 67 | 72 |
import itn.let.mjo.addr.service.AddrService; |
... | ... | @@ -1802,47 +1807,91 @@ |
| 1802 | 1807 |
return jspUrl; |
| 1803 | 1808 |
} |
| 1804 | 1809 |
|
| 1805 |
- |
|
| 1806 |
- /** |
|
| 1807 |
- * 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기 |
|
| 1808 |
- * |
|
| 1809 |
- * @param AddrGroupVO |
|
| 1810 |
- * @param AddrVO |
|
| 1811 |
- * @param sessionVO |
|
| 1812 |
- * @param model |
|
| 1813 |
- * @return |
|
| 1814 |
- * @throws Exception |
|
| 1815 |
- */ |
|
| 1816 |
- @RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjax.do"})
|
|
| 1817 |
- public ModelAndView selectMsgAddrListAjax( |
|
| 1818 |
- @ModelAttribute("searchVO") AddrVO addrVO,
|
|
| 1819 |
- ModelMap model, |
|
| 1820 |
- RedirectAttributes redirectAttributes) throws Exception {
|
|
| 1810 |
+ /** |
|
| 1811 |
+ * 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기 |
|
| 1812 |
+ * |
|
| 1813 |
+ * @param AddrGroupVO |
|
| 1814 |
+ * @param AddrVO |
|
| 1815 |
+ * @param sessionVO |
|
| 1816 |
+ * @param model |
|
| 1817 |
+ * @return |
|
| 1818 |
+ * @throws Exception |
|
| 1819 |
+ */ |
|
| 1820 |
+ @RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjax.do"})
|
|
| 1821 |
+ public ModelAndView selectMsgAddrListAjax( |
|
| 1822 |
+ @ModelAttribute("searchVO") AddrVO addrVO,
|
|
| 1823 |
+ ModelMap model, |
|
| 1824 |
+ RedirectAttributes redirectAttributes) throws Exception {
|
|
| 1821 | 1825 |
|
| 1822 |
- ModelAndView modelAndView = new ModelAndView(); |
|
| 1823 |
- modelAndView.setViewName("jsonView");
|
|
| 1824 |
- |
|
| 1825 |
- //로그인 권한정보 불러오기 |
|
| 1826 |
- LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 1827 |
- String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 1828 |
- |
|
| 1829 |
- if(userId != "") {
|
|
| 1830 |
- addrVO.setMberId(userId); |
|
| 1831 |
- }else {
|
|
| 1832 |
- |
|
| 1833 |
- modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
|
|
| 1834 |
- modelAndView.addObject("result", "loginFail");
|
|
| 1835 |
- return modelAndView; |
|
| 1836 |
- |
|
| 1837 |
- } |
|
| 1838 |
- |
|
| 1839 |
- List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax(addrVO); |
|
| 1840 |
- |
|
| 1841 |
- modelAndView.addObject("resultAddrList", resultAddrList);
|
|
| 1842 |
- modelAndView.addObject("result", "success");
|
|
| 1843 |
- |
|
| 1844 |
- return modelAndView; |
|
| 1845 |
- } |
|
| 1826 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 1827 |
+ modelAndView.setViewName("jsonView");
|
|
| 1828 |
+ |
|
| 1829 |
+ //로그인 권한정보 불러오기 |
|
| 1830 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 1831 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 1832 |
+ |
|
| 1833 |
+ if(userId != "") {
|
|
| 1834 |
+ addrVO.setMberId(userId); |
|
| 1835 |
+ }else {
|
|
| 1836 |
+ |
|
| 1837 |
+ modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
|
|
| 1838 |
+ modelAndView.addObject("result", "loginFail");
|
|
| 1839 |
+ return modelAndView; |
|
| 1840 |
+ |
|
| 1841 |
+ } |
|
| 1842 |
+ |
|
| 1843 |
+ long startTime = System.currentTimeMillis(); // 시작 시간 측정 |
|
| 1844 |
+ |
|
| 1845 |
+ List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax(addrVO); |
|
| 1846 |
+ |
|
| 1847 |
+ long endTime = System.currentTimeMillis(); // 종료 시간 측정 |
|
| 1848 |
+ |
|
| 1849 |
+ long elapsedTime = endTime - startTime; // 소요 시간 계산 |
|
| 1850 |
+ System.out.println("소요 시간: " + elapsedTime + " 밀리초");
|
|
| 1851 |
+ |
|
| 1852 |
+ |
|
| 1853 |
+ modelAndView.addObject("resultAddrList", resultAddrList);
|
|
| 1854 |
+ modelAndView.addObject("result", "success");
|
|
| 1855 |
+ |
|
| 1856 |
+ return modelAndView; |
|
| 1857 |
+ } |
|
| 1858 |
+ |
|
| 1859 |
+ /** |
|
| 1860 |
+ * 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기 |
|
| 1861 |
+ * |
|
| 1862 |
+ * @param AddrGroupVO |
|
| 1863 |
+ * @param AddrVO |
|
| 1864 |
+ * @param sessionVO |
|
| 1865 |
+ * @param model |
|
| 1866 |
+ * @return |
|
| 1867 |
+ * @throws Exception |
|
| 1868 |
+ */ |
|
| 1869 |
+ @RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjaxQ.do"})
|
|
| 1870 |
+ public ResponseEntity<StatusResponse> selectMsgAddrListAjax_advc(@ModelAttribute("searchVO") AddrVO addrVO) {
|
|
| 1871 |
+ |
|
| 1872 |
+ Map<String, Object> response = new HashMap<>(); |
|
| 1873 |
+ |
|
| 1874 |
+ try {
|
|
| 1875 |
+ // 로그인 권한 정보 확인 |
|
| 1876 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null; |
|
| 1877 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 1878 |
+ |
|
| 1879 |
+ if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); |
|
| 1880 |
+ |
|
| 1881 |
+ addrVO.setMberId(userId); |
|
| 1882 |
+ |
|
| 1883 |
+ // OFFSET 계산 |
|
| 1884 |
+ int offset = (addrVO.getPage()) * addrVO.getSize(); |
|
| 1885 |
+ addrVO.setOffset(offset); |
|
| 1886 |
+ // 데이터 조회 |
|
| 1887 |
+ List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO); |
|
| 1888 |
+ |
|
| 1889 |
+ return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, "",resultAddrList)); |
|
| 1890 |
+ } catch (Exception e) {
|
|
| 1891 |
+ e.printStackTrace(); |
|
| 1892 |
+ return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "조회 요청 중 오류가 발생하였습니다.", LocalDateTime.now())); |
|
| 1893 |
+ } |
|
| 1894 |
+ } |
|
| 1846 | 1895 |
|
| 1847 | 1896 |
/** |
| 1848 | 1897 |
* 선거문자 최근 전송내역 리스트 화면 불러오기 |
... | ... | @@ -1883,7 +1932,6 @@ |
| 1883 | 1932 |
|
| 1884 | 1933 |
return "web/msgcampain/MsgLatestListAjax"; |
| 1885 | 1934 |
} |
| 1886 |
- |
|
| 1887 | 1935 |
|
| 1888 | 1936 |
/** |
| 1889 | 1937 |
* 선거문자 자주 보내는 번호 리스트 화면 불러오기 |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
... | ... | @@ -1734,7 +1734,7 @@ |
| 1734 | 1734 |
|
| 1735 | 1735 |
/* serialize 를 사용할때는 processData, contentType 옵션 제가할것 */ |
| 1736 | 1736 |
var data = $("#searchAddrGrpForm").serialize();
|
| 1737 |
- var url = "/web/mjon/msgcampain/selectMsgAddrListAjax.do"; |
|
| 1737 |
+ var url = "/web/mjon/msgcampain/selectMsgAddrListAjaxQ.do"; |
|
| 1738 | 1738 |
|
| 1739 | 1739 |
$.ajax({
|
| 1740 | 1740 |
type: "POST", |
... | ... | @@ -1743,41 +1743,19 @@ |
| 1743 | 1743 |
dataType:'json', |
| 1744 | 1744 |
async: true, |
| 1745 | 1745 |
cache: false, |
| 1746 |
- success: function (returnData, status) {
|
|
| 1747 |
- if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
|
| 1746 |
+ success: function (data) {
|
|
| 1747 |
+ console.log('data : ', data);
|
|
| 1748 |
+ if(data.status == "OK"){
|
|
| 1748 | 1749 |
|
| 1749 |
- if(returnData.result == "success"){
|
|
| 1750 |
+ var addrList = data.object; |
|
| 1750 | 1751 |
|
| 1751 |
- var addrList = returnData.resultAddrList; |
|
| 1752 |
- var tableData = []; |
|
| 1753 |
- |
|
| 1754 |
- if(addrList.length == 0){
|
|
| 1755 |
- |
|
| 1756 |
- alert("주소록 정보가 없습니다.");
|
|
| 1757 |
- tableAddr.setData(tableData); |
|
| 1758 |
- return false; |
|
| 1759 |
- } |
|
| 1760 |
- |
|
| 1761 |
- //받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다. |
|
| 1762 |
- for(var i=0; i < addrList.length; i++){
|
|
| 1763 |
- tableData.push({
|
|
| 1764 |
- groupNm: addrList[i].addrGrpNm |
|
| 1765 |
- , phone: removeDash(addrList[i].addrPhoneNo) |
|
| 1766 |
- , name: addrList[i].addrNm |
|
| 1767 |
- , rep1: addrList[i].addrInfo1 |
|
| 1768 |
- , rep2: addrList[i].addrInfo2 |
|
| 1769 |
- , rep3: addrList[i].addrInfo3 |
|
| 1770 |
- , rep4: addrList[i].addrInfo4 |
|
| 1771 |
- }); |
|
| 1772 |
- } |
|
| 1773 |
- |
|
| 1774 |
- //우측 주소록 리스트 Tabulator에 입력해주기 |
|
| 1775 |
- tableAddr.setData(tableData); |
|
| 1776 |
- |
|
| 1777 |
- }else{
|
|
| 1778 |
- alert(returnData.message); |
|
| 1752 |
+ if(addrList.length == 0){
|
|
| 1753 |
+ alert("주소록 정보가 없습니다.");
|
|
| 1779 | 1754 |
return false; |
| 1780 | 1755 |
} |
| 1756 |
+ |
|
| 1757 |
+ //우측 주소록 리스트 Tabulator에 입력해주기 |
|
| 1758 |
+ tableAddr.setData(addrList); |
|
| 1781 | 1759 |
|
| 1782 | 1760 |
} else if(status== 'fail'){
|
| 1783 | 1761 |
alert("주소록 불러오기에 실패하였습니다. !!");
|
... | ... | @@ -2788,8 +2766,8 @@ |
| 2788 | 2766 |
<!--// table --> |
| 2789 | 2767 |
</div> |
| 2790 | 2768 |
<div class="popup_btn_wrap2"> |
| 2791 |
- <button type="button" onClick="javascript:addrToList_advc('all'); return false;">전체</button>
|
|
| 2792 |
- <button type="button" onClick="javascript:addrToList_advc('select'); return false;">선택</button>
|
|
| 2769 |
+ <button type="button" onClick="javascript:addrToList_advc('all'); return false;">전체추가</button>
|
|
| 2770 |
+ <button type="button" onClick="javascript:addrToList_advc('select'); return false;">선택추가</button>
|
|
| 2793 | 2771 |
<button type="button" onClick="javascript:addrClose(); return false;">닫기</button> |
| 2794 | 2772 |
</div> |
| 2795 | 2773 |
<%-- 주소록 레이어 팝업 닫기 실행 코드 --%> |
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?