package itn.web; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.spec.RSAPublicKeySpec; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.annotation.Resource; import javax.crypto.Cipher; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Part; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import egovframework.rte.fdl.property.EgovPropertyService; import egovframework.rte.fdl.security.intercept.EgovReloadableFilterInvocationSecurityMetadataSource; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.rte.psl.dataaccess.util.EgovMap; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import itn.com.cmm.ComDefaultCodeVO; import itn.com.cmm.ComDefaultVO; import itn.com.cmm.LoginVO; import itn.com.cmm.service.CmmnDetailCode; import itn.com.cmm.service.EgovCmmUseService; import itn.com.cmm.service.EgovFileMngUtil; import itn.com.cmm.service.FileVO; import itn.com.cmm.util.StringUtil; import itn.com.cmm.util.WebUtil; import itn.com.uss.ion.bnr.pop.service.MainPopupManageService; import itn.com.uss.ion.bnr.pop.service.MainPopupVO; import itn.com.uss.ion.bnr.service.BannerVO; import itn.com.uss.ion.bnr.service.EgovBannerService; import itn.com.uss.ion.bnr.sub.service.SubMainZoneManageService; import itn.com.uss.ion.cnf.service.MetaTagManageService; import itn.com.uss.ion.cyb.service.CyberAlertManageService; import itn.com.uss.ion.cyb.service.CyberAlertManageVO; import itn.com.uss.ion.fms.service.FmsFileVO; import itn.com.uss.ion.pwm.service.EgovPopupManageService; import itn.com.uss.ion.pwm.service.MainzoneVO; import itn.com.uss.ion.pwm.service.PopupManageVO; import itn.com.uss.ion.pwm.service.PopupzoneVO; import itn.com.uss.olh.hpc.service.HackIpService; import itn.com.uss.olh.hpc.service.HackIpVO; import itn.com.utl.fcc.service.EgovStringUtil; import itn.let.cop.bbs.service.BoardMasterVO; import itn.let.cop.bbs.service.BoardVO; import itn.let.cop.bbs.service.EgovBBSAttributeManageService; import itn.let.cop.bbs.service.EgovBBSManageService; import itn.let.cop.bbs.service.SearchTotalVO; import itn.let.fax.addr.service.FaxAddrTransHistService; import itn.let.fax.addr.service.FaxAddrTransHistVO; import itn.let.lett.service.LetterService; import itn.let.lett.service.LetterVO; import itn.let.mjo.addr.service.AddrTransHistService; import itn.let.mjo.addr.service.AddrTransHistVO; import itn.let.mjo.event.service.MjonEventService; import itn.let.mjo.event.service.MjonEventVO; import itn.let.mjo.kisa.service.KisaService; import itn.let.mjo.kisa.service.KisaVO; import itn.let.mjo.mjocommon.MjonForienIpChk; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgcampain.service.MjonCandidateService; import itn.let.mjo.msgcampain.service.MjonCandidateVO; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.payva.service.VacsVactService; import itn.let.mjo.payva.service.VacsVactVO; import itn.let.solr.sys.service.ResearchService; import itn.let.sts.com.StatsVO; import itn.let.sts.cst.service.EgovConectStatsService; import itn.let.sym.ccm.cde.service.CateCode; import itn.let.sym.log.clg.service.EgovLoginLogService; import itn.let.sym.log.clg.service.LoginLog; import itn.let.sym.mnu.mcm.service.EgovMenuCreateManageService; import itn.let.sym.mnu.mpm.service.EgovMenuManageService; import itn.let.sym.mnu.mpm.service.MenuManageJTreeVO; import itn.let.sym.mnu.mpm.service.MenuManageVO; import itn.let.sym.prm.service.EgovProgrmManageService; import itn.let.sym.prm.service.ProgrmManageVO; import itn.let.sym.site.service.EgovSiteManagerService; import itn.let.sym.site.service.JoinSettingVO; import itn.let.sym.site.service.MetaTagVO; import itn.let.sym.site.service.SiteManagerVO; import itn.let.uss.umt.service.EgovMberManageService; import itn.let.uss.umt.service.EgovUserManageService; import itn.let.uss.umt.service.MberManageVO; import itn.let.uss.umt.service.UserManageVO; import itn.let.utl.sim.service.EgovClntInfo; /** * 템플릿 메인 페이지 컨트롤러 클래스(Sample 소스) * @author 실행환경 개발팀 JJY * @since 2011.08.31 * @version 1.0 * @see * *
 * << 개정이력(Modification Information) >>
 *
 *   수정일      수정자           수정내용
 *  -------    --------    ---------------------------
 *   2011.08.31  JJY            최초 생성
 *
 * 
*/ @Controller @SessionAttributes(types = ComDefaultVO.class) public class MainController { static String RSA_WEB_KEY = "_RSA_WEB_Key_"; // 개인키 session key static String RSA_INSTANCE = "RSA"; // rsa transformation /** EgovProgrmManageService */ @Resource(name = "progrmManageService") private EgovProgrmManageService progrmManageService; /** EgovPropertyService */ @Resource(name = "propertiesService") protected EgovPropertyService propertiesService; /* MjonMsgDataService */ @Resource(name = "MjonMsgDataService") private MjonMsgDataService mjonMsgDataService; /** * EgovBBSManageService */ @Resource(name = "EgovBBSManageService") private EgovBBSManageService bbsMngService; /** EgovMenuManageService */ @Resource(name = "meunManageService") private EgovMenuManageService menuManageService; @Resource(name = "egovBannerService") private EgovBannerService egovBannerService; /** EgovPopupManageService */ @Resource(name = "egovPopupManageService") private EgovPopupManageService egovPopupManageService; /** cyberAlertManageService */ @Resource(name = "cyberAlertManageService") private CyberAlertManageService cyberAlertManageService; @Resource(name="EgovLoginLogService") private EgovLoginLogService loginLogService; @Resource(name = "conectStatsService") private EgovConectStatsService conectStatsService; @Resource(name="databaseSecurityMetadataSource") EgovReloadableFilterInvocationSecurityMetadataSource databaseSecurityMetadataSource; @Resource(name = "researchService") protected ResearchService researchService; /** cmmUseService */ @Resource(name = "EgovCmmUseService") private EgovCmmUseService cmmUseService; /** EgovMenuManageService */ @Resource(name = "meunCreateManageService") private EgovMenuCreateManageService menuCreateManageService; @Resource(name = "egovSiteManagerService") EgovSiteManagerService egovSiteManagerService; @Resource(name = "EgovBBSAttributeManageService") private EgovBBSAttributeManageService bbsAttrbService; /** metaTagManageService 메타태그 */ @Resource(name = "metaTagManageService") private MetaTagManageService metaTagManageService; @Resource(name="EgovFileMngUtil") private EgovFileMngUtil fileUtil; /** KisaService */ @Resource(name = "KisaService") private KisaService kisaService; /** LetterService */ @Resource(name = "LetterService") private LetterService letterService; @Resource(name = "AddrTransHistService") private AddrTransHistService addrTransHistService; @Resource(name = "FaxAddrTransHistService") private FaxAddrTransHistService faxAddrTransHistService; //전용계좌 서비스 @Resource(name="vacsVactService") private VacsVactService vacsVactService; @Resource(name = "hackIpService") private HackIpService hackIpService; @Resource(name = "mjonPayService") private MjonPayService mjonPayService; @Resource(name = "MjonEventService") private MjonEventService mjonEventService; @Resource(name = "userManageService") private EgovUserManageService userManageService; /** mberManageService */ @Resource(name = "mberManageService") private EgovMberManageService mberManageService; @Resource(name = "mjonCandidateService") private MjonCandidateService mjonCandidateService; @Resource(name = "subMainZoneManageService") private SubMainZoneManageService subMainZoneManageService; /** 메인팝업 service */ @Resource(name = "mainPopupManageService") private MainPopupManageService mainPopupManageService; @Value("#{globalSettings['Globals.email.host']}") private String Globals_email_host; @Value("#{globalSettings['Globals.email.port']}") private String Globals_email_port; @Value("#{globalSettings['Globals.email.fromUser']}") private String Globals_email_fromUser; @Value("#{globalSettings['Globals.email.fromEmail']}") private String Globals_email_fromEmail; @Value("#{globalSettings['Globals.email.fromEmail.password']}") private String Globals_email_fromEmail_password; @Value("#{globalSettings['Globals.email.toEmail']}") private String Globals_email_toEmail; @Value("#{globalSettings['Globals.email.toEmail.BCC']}") private String Globals_email_toEmail_BCC; @RequestMapping(value = "/{siteId}/web/main/mainPage_keri.do") public String siteMainPage_keri(@PathVariable("siteId") String siteId , HttpServletRequest request, ModelMap model) throws Exception{ //메인이미지 /** EgovPropertyService.sample */ MainzoneVO mainzoneVO = new MainzoneVO(); mainzoneVO.setPageUnit(propertiesService.getInt("pageUnit")); mainzoneVO.setPageSize(propertiesService.getInt("pageSize")); /** pageing */ PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(mainzoneVO.getPageIndex()); paginationInfo.setRecordCountPerPage(mainzoneVO.getPageUnit()); paginationInfo.setPageSize(mainzoneVO.getPageSize()); mainzoneVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); mainzoneVO.setLastIndex(paginationInfo.getLastRecordIndex()); mainzoneVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); mainzoneVO.setSiteId(siteId); List mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지 model.addAttribute("mainzoneList", mainzoneList); BoardVO boardVO = new BoardVO(); boardVO.setPageUnit(7); boardVO.setPageSize(10); paginationInfo.setCurrentPageNo(boardVO.getPageIndex()); paginationInfo.setRecordCountPerPage(boardVO.getPageUnit()); paginationInfo.setPageSize(boardVO.getPageSize()); boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); boardVO.setLastIndex(paginationInfo.getLastRecordIndex()); boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); boardVO.setBbsId("BBSMSTR_000000000153"); //라이브폴라스토리 boardVO.setSecretAt("N"); //비밀글제외 boardVO.setAtchFileCnt(1); //파일이 있는경우만(임의의 숫자 1) //대표이미지 가져오기 ComDefaultCodeVO vo = new ComDefaultCodeVO(); vo.setCodeId("ITN005"); List cmmCaLevel = cmmUseService.selectCmmCodeDetail(vo); BoardVO mainPolaVo = new BoardVO(); if(cmmCaLevel != null){ String bbsId = ((CmmnDetailCode)cmmCaLevel.get(0)).getCodeNm() ; boardVO.setNttId(Integer.parseInt(bbsId)); boardVO.setMainPolaNttId(bbsId); mainPolaVo = bbsMngService.selectBoardArticle(boardVO); if(mainPolaVo !=null){ boardVO.setRecordCountPerPage(5); model.addAttribute("livePolaStoryListOne", mainPolaVo); //첫번째 사진 } } Map livePolaStoryList = bbsMngService.selectBoardArticles(boardVO, "BBSA02"); List livePolaArrayList = (List) livePolaStoryList.get("resultList") ; model.addAttribute("livePolaStoryListOther", livePolaArrayList); //나머지 사진 /*if(livePolaArrayList.size()!=0){ livePolaArrayList.remove(0) ; model.addAttribute("livePolaStoryList", livePolaStoryList.get("resultList")); }*/ boardVO.setBbsId("BBSMSTR_000000000018"); // 공지사항 메인 컨텐츠 Map map = bbsMngService.selectBoardArticles(boardVO, "BBSA02"); model.addAttribute("notiList", map.get("resultList")); /*boardVO.setBbsId("BBSMSTR_000000000101"); //입찰공고 Map map1 = bbsMngService.selectBoardArticles(boardVO, "BBSA02"); model.addAttribute("biddingList", map1.get("resultList"));*/ // 공지사항 메인컨텐츠 조회 끝 ----------------------------------- // 자유게시판 메인 컨텐츠 조회 시작 --------------------------------- boardVO.setPageUnit(9); boardVO.setPageSize(10); boardVO.setBbsId("BBSMSTR_BBBBBBBBBBBB"); paginationInfo.setCurrentPageNo(boardVO.getPageIndex()); paginationInfo.setRecordCountPerPage(boardVO.getPageUnit()); paginationInfo.setPageSize(boardVO.getPageSize()); boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); boardVO.setLastIndex(paginationInfo.getLastRecordIndex()); boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); model.addAttribute("bbsList", bbsMngService.selectBoardArticles(boardVO, "BBSA02").get("resultList")); // 설문참여 메인 컨텐츠 조회 시작 ----------------------------------- ComDefaultVO qVO = new ComDefaultVO(); qVO.setPageUnit(1); qVO.setPageSize(10); /** pageing */ paginationInfo.setCurrentPageNo(qVO.getPageIndex()); paginationInfo.setRecordCountPerPage(qVO.getPageUnit()); paginationInfo.setPageSize(qVO.getPageSize()); qVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); qVO.setLastIndex(paginationInfo.getLastRecordIndex()); qVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); //배너 리스트 조회 BannerVO bannerVO = new BannerVO(); bannerVO.setRecordCountPerPage(50); //50개까지 bannerVO.setFirstIndex(0); bannerVO.setReflctAt("Y"); //반영이 Y 만 ArrayList bannerVOList= (ArrayList) egovBannerService.selectBannerList(bannerVO) ;//배너6개 안되면 좌측 버튼이 안보임 if(null != bannerVOList){ for(int i=0; i<4; i++){ if(bannerVOList.size()<6){ bannerVOList.addAll(bannerVOList); } } } //bannerVO.setBannerList(egovBannerService.selectBannerList(bannerVO)); bannerVO.setBannerList(bannerVOList); model.addAttribute("bannerList", bannerVO.getBannerList()); //팝업리스트 조회 /*if(!isMobile(request)){ //PC인경우만 PopupManageVO popupManageVO = new PopupManageVO(); popupManageVO.setRecordCountPerPage(10); //10개만 popupManageVO.setNtceAt("Y"); //사용만 popupManageVO.setMainPageFlag("Y") ; //메인화면의 용도(시작일 종료일 사이 조회) List popupList = egovPopupManageService.selectPopupMainList(popupManageVO); model.addAttribute("popupList", popupList); }*/ //알림판 /** 알림창괸리 */ PopupzoneVO popupzoneVo = new PopupzoneVO(); List popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo); model.addAttribute("popupzoneList", popupzoneList); /** 팝업존관리 */ /* popupManageVO.setRecordCountPerPage(10); //10개만 popupManageVO.setNtceAt("Y"); //사용만 popupManageVO.setMainPageFlag("Y") ; //메인화면의 용도(시작일 종료일 사이 조회) popupManageVO.setPopupType("Z"); //팝업존만 조회 List popupzoneList = egovPopupManageService.selectPopupMainList(popupManageVO); model.addAttribute("popupzoneList", popupzoneList);*/ /** 사이버경고관리 */ CyberAlertManageVO cyberManageVO = new CyberAlertManageVO(); cyberManageVO.setCaId("CYBER_0000000001"); List cyberAlerMap = cyberAlertManageService.selectCyberAlert(cyberManageVO); EgovMap emp = new EgovMap(); if( cyberAlerMap.size() != 0 ){ emp = (EgovMap)cyberAlerMap.get(0); } model.addAttribute("cyberAlerMap", emp); model.addAttribute("siteId", siteId); String siteFolder = "site/"+siteId ; return "web/"+siteFolder+"/main/mainPage"; } @RequestMapping(value = "/web/main/mainPage.do") public String siteMainPage(HttpServletRequest request, ModelMap model, HttpSession session, @RequestParam(value="message", defaultValue="0") String message, LetterVO letterVO) throws Exception{ //메인이미지 String referer = (String)request.getHeader("REFERER"); //로그인 실패시 메세지 if(!"0".equals(message)) { model.addAttribute("messageflag", "1"); model.addAttribute("message", message); } /* *//** EgovPropertyService.sample *//* MainzoneVO mainzoneVO = new MainzoneVO(); mainzoneVO.setPageUnit(propertiesService.getInt("pageUnit")); mainzoneVO.setPageSize(propertiesService.getInt("pageSize")); *//** pageing *//* PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(mainzoneVO.getPageIndex()); paginationInfo.setRecordCountPerPage(mainzoneVO.getPageUnit()); paginationInfo.setPageSize(mainzoneVO.getPageSize());*/ /*mainzoneVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); mainzoneVO.setLastIndex(paginationInfo.getLastRecordIndex()); mainzoneVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); mainzoneVO.setUseYn("Y"); //사용하는것만 mainzoneVO.setDeviceType("P"); //PC List mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지 mainzoneVO.setDeviceType("M"); //모바일 List mainzoneListM = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지 model.addAttribute("mainzoneList", mainzoneList); //PC model.addAttribute("mainzoneListM", mainzoneListM); //모바일 *//** 팝업존 알림창괸리 *//* if(!isMobile(request)){ PopupzoneVO popupzoneVo = new PopupzoneVO(); popupzoneVo.setFirstIndex(0); popupzoneVo.setSeCd("02"); //좌측팝업 popupzoneVo.setUseYn("Y"); List popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo); model.addAttribute("popupzoneList", popupzoneList); popupzoneVo.setSeCd("03"); List popupzoneTopList = egovPopupManageService.selectPopupzoneList(popupzoneVo); model.addAttribute("popupzoneTopList", popupzoneTopList); } 하단 배너 BannerVO bannerVO = new BannerVO(); bannerVO.setRecordCountPerPage(50); //50개까지 bannerVO.setFirstIndex(0); bannerVO.setSeCd("01"); bannerVO.setReflctAt("Y"); bannerVO.setSearchSortCnd("SORTORDR"); bannerVO.setSearchSortOrd("asc"); ArrayList bannerVOList= (ArrayList) egovBannerService.selectBannerList(bannerVO) ;//배너6개 안되면 좌측 버튼이 안보임 bannerVO.setBannerList(bannerVOList); model.addAttribute("bannerList", bannerVO.getBannerList()) ; 소셜 허브 하단 배너 bannerVO.setSeCd("02"); ArrayList bannerVOSocList= (ArrayList) egovBannerService.selectBannerList(bannerVO) ;//배너6개 안되면 좌측 버튼이 안보임 bannerVO.setBannerList(bannerVOSocList); model.addAttribute("bannerVOSocList", bannerVO.getBannerList()) ; //대표이미지 가져오기 ComDefaultCodeVO vo = new ComDefaultCodeVO(); vo.setCodeId("ITN005"); */ //kisa 사용자 경고 팝업 LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { KisaVO kisaVO = new KisaVO(); kisaVO.setMberId(user.getId()); kisaVO.setKisaPopupYn("Y"); List kisaList = kisaService.selectKisaListMberId(kisaVO); if(kisaList.size() > 0) { //kisa 코드 조회 ComDefaultCodeVO kisacodeVO = new ComDefaultCodeVO(); kisacodeVO.setCodeId("ITN034"); List kisacodeResult = cmmUseService.selectCmmCodeDetail(kisacodeVO); model.addAttribute("kisacodeResult", kisacodeResult); //위반 사항 안내 종합 (아이디별 kisalist의 각각 kisaWarnMessage를 한번에 보여주기 위해) String[] chk = {}; ArrayList kisaWarnMessagelist = new ArrayList(); for(KisaVO tmpVO : kisaList) { if(!"".equals(tmpVO.getKisaWarnMessage()) && tmpVO.getKisaWarnMessage() != null) { chk = tmpVO.getKisaWarnMessage().split(","); for(int i = 0 ; i < chk.length ; i++) { if(!kisaWarnMessagelist.contains(chk[i])) { kisaWarnMessagelist.add(chk[i]); } } } } model.addAttribute("chk", kisaWarnMessagelist); model.addAttribute("kisaListSize", kisaList.size()); model.addAttribute("kisaList", kisaList); } } //공지사항 게시글 불러오기 BoardMasterVO boardMasterVO = new BoardMasterVO(); //공지사항 url로 전체게시글 불러오기 boardMasterVO.setUrl("/web/cop/bbs/NoticeList.do"); BoardMasterVO bmVO = new BoardMasterVO(); BoardVO boardVO = new BoardVO(); boardVO.setPageUnit(7); boardVO.setPageSize(10); if("".equals(boardMasterVO.getSearchSortCnd())){ //최초조회시 최신것 조회List boardMasterVO.setSearchSortCnd("nttId"); boardMasterVO.setSearchSortOrd("desc"); } //전체 게시글 불러오기 Map map = new HashMap(); if(boardMasterVO.getPageUnit() != 10) { bmVO.setPageUnit(boardMasterVO.getPageUnit()); } PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(bmVO.getPageIndex()); paginationInfo.setRecordCountPerPage(bmVO.getPageUnit()); paginationInfo.setPageSize(bmVO.getPageSize()); paginationInfo.setCurrentPageNo(boardVO.getPageIndex()); paginationInfo.setRecordCountPerPage(boardVO.getPageUnit()); paginationInfo.setPageSize(boardVO.getPageSize()); boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex()); boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리 boardMasterVO.setUrl(temp.replace("Ajax", "")); Map noticeMap = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null); if(!noticeMap.get("resultCnt").equals("0")){ @SuppressWarnings("unchecked") ArrayList boardList= (ArrayList)noticeMap.get("resultList") ; //nttcn 태그 삭제 처리 for( BoardVO tempBoardVO : boardList){ if("".equals(tempBoardVO.getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0].equals(""))){ tempBoardVO.setNttCn ( tempBoardVO.getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "")) ; }else { tempBoardVO.setNttCn( tempBoardVO.getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0] ) ; } } model.addAttribute("noticeList", noticeMap.get("resultList")); } // 문자 카테고리 리스트 불러오기 List cateConfList = letterService.selectCateConfWithList("N"); model.addAttribute("cateCodeList", cateConfList); // 맞춤문자 카테고리 리스트 불러오기 List cateConfCustomList = letterService.selectCateConfWithList("C"); model.addAttribute("cateConfCustomList", cateConfCustomList); /* // 문자 카테고리 리스트 불러오기 & // 맞춤문자 카테고리 리스트 불러오기 { //merge list data List cateConfListMerge = letterService.selectCateConfWithList4Main("N"); // 문자 카테고리 리스트 불러오기 List cateConfList = new ArrayList(); //model.addAttribute("cateCodeList", cateConfList); // 맞춤문자 카테고리 리스트 불러오기 List cateConfCustomList = new ArrayList(); //model.addAttribute("cateConfCustomList", cateConfCustomList); for (int i=0;i mainMsgTagList = letterService.selectMainMsgTagWebList(letterMsgVO); model.addAttribute("mainMsgTagList", mainMsgTagList); {//상단 메인배너 롤링 이미지 불러오기 List resultMainzoneList = egovPopupManageService.selectMainzoneListRolling(); model.addAttribute("mainzoneList", resultMainzoneList); } {//하단 서브메인배너 롤링 이미지 불러오기 List resultSubMainzoneList = subMainZoneManageService.selectSubMainzoneListRolling(); model.addAttribute("subMainzoneList", resultSubMainzoneList); } {//팝업 롤링 이미지 불러오기 List resultMainPopupList = mainPopupManageService.selectMainPopupListRolling(); model.addAttribute("mainPopupList", resultMainPopupList); System.out.println("===================mainPopupList"); } return "web/main/mainPage"; } //================================================================================================================== @RequestMapping(value = "/web/main/mainPageTest.do") public String siteMainPageTest(HttpServletRequest request, ModelMap model, HttpSession session, @RequestParam(value="message", defaultValue="0") String message, LetterVO letterVO) throws Exception{ //메인이미지 String referer = (String)request.getHeader("REFERER"); //로그인 실패시 메세지 if(!"0".equals(message)) { model.addAttribute("messageflag", "1"); model.addAttribute("message", message); } /* *//** EgovPropertyService.sample *//* MainzoneVO mainzoneVO = new MainzoneVO(); mainzoneVO.setPageUnit(propertiesService.getInt("pageUnit")); mainzoneVO.setPageSize(propertiesService.getInt("pageSize")); *//** pageing *//* PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(mainzoneVO.getPageIndex()); paginationInfo.setRecordCountPerPage(mainzoneVO.getPageUnit()); paginationInfo.setPageSize(mainzoneVO.getPageSize());*/ /*mainzoneVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); mainzoneVO.setLastIndex(paginationInfo.getLastRecordIndex()); mainzoneVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); mainzoneVO.setUseYn("Y"); //사용하는것만 mainzoneVO.setDeviceType("P"); //PC List mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지 mainzoneVO.setDeviceType("M"); //모바일 List mainzoneListM = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지 model.addAttribute("mainzoneList", mainzoneList); //PC model.addAttribute("mainzoneListM", mainzoneListM); //모바일 *//** 팝업존 알림창괸리 *//* if(!isMobile(request)){ PopupzoneVO popupzoneVo = new PopupzoneVO(); popupzoneVo.setFirstIndex(0); popupzoneVo.setSeCd("02"); //좌측팝업 popupzoneVo.setUseYn("Y"); List popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo); model.addAttribute("popupzoneList", popupzoneList); popupzoneVo.setSeCd("03"); List popupzoneTopList = egovPopupManageService.selectPopupzoneList(popupzoneVo); model.addAttribute("popupzoneTopList", popupzoneTopList); } 하단 배너 BannerVO bannerVO = new BannerVO(); bannerVO.setRecordCountPerPage(50); //50개까지 bannerVO.setFirstIndex(0); bannerVO.setSeCd("01"); bannerVO.setReflctAt("Y"); bannerVO.setSearchSortCnd("SORTORDR"); bannerVO.setSearchSortOrd("asc"); ArrayList bannerVOList= (ArrayList) egovBannerService.selectBannerList(bannerVO) ;//배너6개 안되면 좌측 버튼이 안보임 bannerVO.setBannerList(bannerVOList); model.addAttribute("bannerList", bannerVO.getBannerList()) ; 소셜 허브 하단 배너 bannerVO.setSeCd("02"); ArrayList bannerVOSocList= (ArrayList) egovBannerService.selectBannerList(bannerVO) ;//배너6개 안되면 좌측 버튼이 안보임 bannerVO.setBannerList(bannerVOSocList); model.addAttribute("bannerVOSocList", bannerVO.getBannerList()) ; //대표이미지 가져오기 ComDefaultCodeVO vo = new ComDefaultCodeVO(); vo.setCodeId("ITN005"); */ //kisa 사용자 경고 팝업 LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { KisaVO kisaVO = new KisaVO(); kisaVO.setMberId(user.getId()); kisaVO.setKisaPopupYn("Y"); List kisaList = kisaService.selectKisaListMberId(kisaVO); if(kisaList.size() > 0) { //kisa 코드 조회 ComDefaultCodeVO kisacodeVO = new ComDefaultCodeVO(); kisacodeVO.setCodeId("ITN034"); List kisacodeResult = cmmUseService.selectCmmCodeDetail(kisacodeVO); model.addAttribute("kisacodeResult", kisacodeResult); //위반 사항 안내 종합 (아이디별 kisalist의 각각 kisaWarnMessage를 한번에 보여주기 위해) String[] chk = {}; ArrayList kisaWarnMessagelist = new ArrayList(); for(KisaVO tmpVO : kisaList) { if(!"".equals(tmpVO.getKisaWarnMessage()) && tmpVO.getKisaWarnMessage() != null) { chk = tmpVO.getKisaWarnMessage().split(","); for(int i = 0 ; i < chk.length ; i++) { if(!kisaWarnMessagelist.contains(chk[i])) { kisaWarnMessagelist.add(chk[i]); } } } } model.addAttribute("chk", kisaWarnMessagelist); model.addAttribute("kisaListSize", kisaList.size()); model.addAttribute("kisaList", kisaList); } } //공지사항 게시글 불러오기 BoardMasterVO boardMasterVO = new BoardMasterVO(); //공지사항 url로 전체게시글 불러오기 boardMasterVO.setUrl("/web/cop/bbs/NoticeList.do"); BoardMasterVO bmVO = new BoardMasterVO(); BoardVO boardVO = new BoardVO(); boardVO.setPageUnit(7); boardVO.setPageSize(10); if("".equals(boardMasterVO.getSearchSortCnd())){ //최초조회시 최신것 조회List boardMasterVO.setSearchSortCnd("nttId"); boardMasterVO.setSearchSortOrd("desc"); } //전체 게시글 불러오기 Map map = new HashMap(); if(boardMasterVO.getPageUnit() != 10) { bmVO.setPageUnit(boardMasterVO.getPageUnit()); } PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(bmVO.getPageIndex()); paginationInfo.setRecordCountPerPage(bmVO.getPageUnit()); paginationInfo.setPageSize(bmVO.getPageSize()); paginationInfo.setCurrentPageNo(boardVO.getPageIndex()); paginationInfo.setRecordCountPerPage(boardVO.getPageUnit()); paginationInfo.setPageSize(boardVO.getPageSize()); boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex()); boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리 boardMasterVO.setUrl(temp.replace("Ajax", "")); Map noticeMap = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null); if(!noticeMap.get("resultCnt").equals("0")){ @SuppressWarnings("unchecked") ArrayList boardList= (ArrayList)noticeMap.get("resultList") ; //nttcn 태그 삭제 처리 for( BoardVO tempBoardVO : boardList){ if("".equals(tempBoardVO.getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0].equals(""))){ tempBoardVO.setNttCn ( tempBoardVO.getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "")) ; }else { tempBoardVO.setNttCn( tempBoardVO.getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0] ) ; } } model.addAttribute("noticeList", noticeMap.get("resultList")); } // 문자 카테고리 리스트 불러오기 List cateConfList = letterService.selectCateConfWithList("N"); model.addAttribute("cateCodeList", cateConfList); // 맞춤문자 카테고리 리스트 불러오기 List cateConfCustomList = letterService.selectCateConfWithList("C"); model.addAttribute("cateConfCustomList", cateConfCustomList); /* // 문자 카테고리 리스트 불러오기 & // 맞춤문자 카테고리 리스트 불러오기 { //merge list data List cateConfListMerge = letterService.selectCateConfWithList4Main("N"); // 문자 카테고리 리스트 불러오기 List cateConfList = new ArrayList(); //model.addAttribute("cateCodeList", cateConfList); // 맞춤문자 카테고리 리스트 불러오기 List cateConfCustomList = new ArrayList(); //model.addAttribute("cateConfCustomList", cateConfCustomList); for (int i=0;i mainMsgTagList = letterService.selectMainMsgTagWebList(letterMsgVO); model.addAttribute("mainMsgTagList", mainMsgTagList); {//상단 메인배너 롤링 이미지 불러오기 List resultMainzoneList = egovPopupManageService.selectMainzoneListRolling(); model.addAttribute("mainzoneList", resultMainzoneList); } return "web/main/mainPageTest"; } //==================================================================================================================== /** * KISA 수정 Ajax * @param kisaVO * @param model * @return modelAndView * @throws Exception * /kisaWeb/kisaWeb/updateKisaWarnMessageAjax.do */ @RequestMapping(value = {"/web/kisa/updateKisaWarnMessageAjax.do"}) public ModelAndView updateKisaAjax(@ModelAttribute("kisaVO") KisaVO kisaVO , RedirectAttributes redirectAttributes , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); kisaVO.setKisaPopupYn("Y"); List kisaList = kisaService.selectKisaListMberId(kisaVO); for(KisaVO tmpVO : kisaList) { tmpVO.setKisaSignNm(kisaVO.getKisaSignNm()); tmpVO.setKisaSignPhoneNo(kisaVO.getKisaSignPhoneNo()); if("1".equals(tmpVO.getKisaReceptState())){ tmpVO.setKisaReceptState("2"); } else if("3".equals(tmpVO.getKisaReceptState())){ tmpVO.setKisaReceptState("4"); } else if("5".equals(tmpVO.getKisaReceptState())){ tmpVO.setKisaReceptState("6"); } kisaService.updateKisaWarnMessage(tmpVO); } modelAndView.addObject("result", "success"); return modelAndView; } /** * 사용자 상단 매뉴 */ @RequestMapping(value="/web/com/webCommonHeader.do") public String siteWebCommonHeader( @RequestParam Map commandMap, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, HttpSession session, ModelMap model, HttpServletRequest request) throws Exception { //점검중 페이지 체크 SiteManagerVO siteManagerVO_ = new SiteManagerVO(); siteManagerVO_ = egovSiteManagerService.selectSiteManagerVO(siteManagerVO_); //1. 사이트 점검중 페이지 노출 //2. siteManager 테이블의 SYS_MAINTENANCE, SYS_MAINTENANCE_IP 를 통해 구분 //3. 점검중페이지 노출 방식 // 미사용 : 점검 중 페이지 미노출 // IP로제어 : 등록 IP를 제외하고 모든 페이지에서 '점검중' 레이어 노출 // PATH로제어 : '/web/main/mainPage.do' 메인페이지에 접근했을때만 점검중페이지로 이동 String userIP = this.getClientIP(request); Boolean result = this.inspPageIp(request, userIP, siteManagerVO_); if(!result) { model.addAttribute("inspYn", "Y"); } LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; List menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회 HashSet underMenuEmpty = new HashSet(); //2뎁스의 하위매뉴 없는것 조회 for(MenuManageJTreeVO menuManage : menuResultList){ if(menuManage.getDepth().equals("3")){ menuTwoExist.add(menuManage.getUpperMenuId()) ; } if(menuManage.getDepth().equals("2")){ underMenuEmpty.add(menuManage.getMenuNo()); } } HashSet underMenuExist = new HashSet(menuTwoExist); //하위매뉴가 있는것 underMenuEmpty.removeAll(underMenuExist); //하위매뉴가 없는것 MenuManageJTreeVO menuManageTopVO = new MenuManageJTreeVO(); menuManageTopVO.setUpperMenuId("#"); menuManageTopVO.setMenuNo("0"); model.addAttribute("menuResultList", menuResultList); model.addAttribute("underMenuExist", underMenuExist); model.addAttribute("underMenuEmpty", underMenuEmpty); //이전 URL model.addAttribute("beforeUrl",request.getRequestURI()); //팝업존 /* 팝업 가져오기 */ if(!isMobile(request)){ //PC인경우만 PopupManageVO popupManageVO = new PopupManageVO(); popupManageVO.setRecordCountPerPage(10); //10개만 popupManageVO.setNtceAt("Y"); //사용만 popupManageVO.setMainPageFlag("Y") ; //메인화면의 용도(시작일 종료일 사이 조회) List popupList = egovPopupManageService.selectPopupMainList(popupManageVO); model.addAttribute("popupList", popupList); PopupzoneVO popupzoneVo = new PopupzoneVO(); popupzoneVo.setFirstIndex(0); popupzoneVo.setRecordCountPerPage(20); popupzoneVo.setSeCd("02"); popupzoneVo.setUseYn("Y"); popupzoneVo.setSearchSortCnd("SORT"); popupzoneVo.setSearchSortOrd("ASC"); List popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo); model.addAttribute("popupzoneList", popupzoneList); } if(request.getRequestURL().indexOf("web/user/login/login.do") > -1){ model.addAttribute("loginPage", true); }else { initRsa(request); } MjonMsgVO mjonMsgVO = new MjonMsgVO(); mjonMsgVO.setUserId(userId); //현재 보유 잔액/포인트 정보 불러오기 Double userMoney = 0.0; String userPoint = "0"; String money = "0"; //admin 계정 에러안나게 처리(임시) userMoney = Double.parseDouble(money);여기 에러남 /*if(!userId.equals("") && !"ROLE_ADMIN".equals(loginVO.getAuthority())) { money = mjonMsgDataService.selectBeforeCashData(mjonMsgVO); userMoney = Double.parseDouble(money); userPoint = mjonMsgDataService.selectBeforePointData(mjonMsgVO); }*/ if(!userId.equals("")) { money = mjonMsgDataService.selectBeforeCashData(mjonMsgVO); if(money != null) { userMoney = Double.parseDouble(money); } userPoint = mjonMsgDataService.selectBeforePointData(mjonMsgVO); // 타인에게 전송받은 주소록 수신대기 목록 조회하기 //AddrTransHistVO addrTransHistVO = new AddrTransHistVO(); //addrTransHistVO.setRecvMberId(userId); //List addrTransWaitList = addrTransHistService.selectAddrTransWaitList(addrTransHistVO); //model.addAttribute("addrTransWaitListSize", addrTransWaitList.size()); } BigDecimal parseMoney = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN); model.addAttribute("userMoney", parseMoney); model.addAttribute("userPoint", userPoint); //비로그인 시 KMC 팝업 준비 - 로그인 시 IP 등록되어있는지 체크 후 IP없으면 본인인증을 위함 /*Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); if(!isAuthenticated && !(request.getRequestURL().toString().contains("checkTerms.do") || request.getRequestURL().toString().contains("findUserId.do"))) { KmcCertChecker kmcCertCheck = new KmcCertChecker(); AuthCertVO certVO = kmcCertCheck.authCertCheck("http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"); model.addAttribute("tr_cert", certVO.getTr_cert()); model.addAttribute("tr_url", certVO.getTr_url()); model.addAttribute("tr_add", certVO.getTr_add()); }*/ //로그인 시 IP 체크를 위해 클라이언트 IP 넘겨주기 //사용자의 ip 정보를 불러오는 것으로 변경!!!!!!!!!!!!!!!!!!!!_220412 //공인 IP 구하기 String userIp = EgovClntInfo.getClntIP2(request); // java.util.Scanner s = new java.util.Scanner(new java.net.URL("https://api.ipify.org").openStream(), "UTF-8").useDelimiter("\\A"); // userIp = s.next(); model.addAttribute("userIp", userIp); //세션타임 설정(관리자) SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO); /*session.setMaxInactiveInterval(60* Integer.parseInt(siteManagerVO.getSessionTimeCdText()));*/ //10분 session.setMaxInactiveInterval(60* Integer.parseInt(siteManagerVO.getSessionTimeUserCdTxt())); //10분 /*model.addAttribute("sessionTime", siteManagerVO.getSessionTimeCdText());*/ model.addAttribute("sessionTimeUser", siteManagerVO.getSessionTimeUserCdTxt()); //세션 타이머 종료 시간 받아서 넘겨주기 //model.addAttribute("timer", session.getAttribute("timer")); //문자검색 인기검색어 4개 불러오기 MjonMsgDataVO mjonMsgDataVO = new MjonMsgDataVO(); List resultSearchWordList = mjonMsgDataService.selectMsgSearchWordExpList(mjonMsgDataVO); model.addAttribute("resultSearchWordList", resultSearchWordList); //전용계좌 정보 리스트 불러오기 List myBankList = new ArrayList<>(); if(StringUtil.isNotEmpty(userId)) { //대상 리스트 가져오기 VacsVactVO vacsVactVO = new VacsVactVO(); vacsVactVO.setMberId(loginVO.getId()); myBankList = vacsVactService.selectMyBankAcctList(vacsVactVO); //내가 할당받은 전용계좌 리스트 받아오기 } model.addAttribute("myBankList", myBankList); String prePaymentYn = ""; if(loginVO != null) { String auth = loginVO.getAuthority(); //사용자 권한인 경우만 실행 if(!auth.equals("ROLE_ADMIN")) { //후불회원 여부 조회 UserManageVO userManageVO = new UserManageVO(); if(!userId.equals("")) { userManageVO.setMberId(userId); userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); } if(userManageVO.getPrePaymentYn() != null) { prePaymentYn = userManageVO.getPrePaymentYn(); } } } model.addAttribute("prePaymentYn", prePaymentYn); /* * 선거문자 메뉴 선별적 노출을 위하여 후보자 정보조회 * 비회원, 후부자 정보가 없는 회원은 선거문자가 안보이도록 처리 * 2024.02.08 우영두 추가 * * */ String userCandidateYn = "N"; if(loginVO != null) { //선거 후보자 정보 조회 MjonCandidateVO mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(userId); if(mjonCandidateVO != null) { userCandidateYn = "Y"; } } model.addAttribute("userCandidateYn", userCandidateYn); if(loginVO != null) { MberManageVO mberManageVO = new MberManageVO(); mberManageVO.setMberId(loginVO.getId()); model.addAttribute("mberManageVO", userManageService.selectUserInfo(mberManageVO)); } /* * 회원별 단가, 기본 단가, 이벤트 정보 조회 * 2025.07.25 이지우 추가 * */ MberManageVO mberHeaderInfoVO = new MberManageVO(); if(loginVO != null) { mberHeaderInfoVO = mberManageService.selectMberHeaderInfo(loginVO.getId()); } model.addAttribute("mberHeaderInfoVO", mberHeaderInfoVO); return "web/com/webCommonHeader"; } /** * 사용자 상단 매뉴 */ @RequestMapping(value="/{siteId}/web/com/webThemeCommonHeader.do") public String webThemeCommonHeader(@PathVariable("siteId") String siteId , @RequestParam Map commandMap, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model, HttpServletRequest request) throws Exception { //로그인 권한정보 불러오기 LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; model.addAttribute("userInfo", user); menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); //List menuResultList = menuCreateManageService.selectMenuListJtree(menuManageVO) ; menuManageVO.setSiteId(siteId); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; List menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회 HashSet underMenuEmpty = new HashSet(); //2뎁스의 하위매뉴 없는것 조회 for(MenuManageJTreeVO menuManage : menuResultList){ if(menuManage.getDepth().equals("3")){ menuTwoExist.add(menuManage.getUpperMenuId()) ; } if(menuManage.getDepth().equals("2")){ underMenuEmpty.add(menuManage.getMenuNo()); } } HashSet underMenuExist = new HashSet(menuTwoExist); //하위매뉴가 있는것 underMenuEmpty.removeAll(underMenuExist); //하위매뉴가 없는것 MenuManageJTreeVO menuManageTopVO = new MenuManageJTreeVO(); menuManageTopVO.setUpperMenuId("#"); menuManageTopVO.setMenuNo("0"); model.addAttribute("menuResultList", menuResultList); model.addAttribute("underMenuExist", underMenuExist); model.addAttribute("underMenuEmpty", underMenuEmpty); model.addAttribute("siteId", siteId); String siteFolder = "site/"+siteId ; if("linc".equals(siteId)){ //linc 사업단 //json 형태 만들기 JSONObject jsonObject = new JSONObject(); JSONObject oneDepth = null; JSONArray oneArray = new JSONArray(); JSONObject twoDepth = null; JSONArray twoArray = null; JSONObject threeDepth = new JSONObject(); JSONArray threeArray = new JSONArray(); int onePoint = 1; int twoPoint = 1; for(MenuManageJTreeVO menuManageOne : menuResultList){ if(menuManageOne.getDepth().equals("1")){ oneDepth = new JSONObject(); twoArray = new JSONArray(); oneDepth.put("children", "1-1"); oneDepth.put("name", menuManageOne.getMenuNm()); for(MenuManageJTreeVO menuManageTwo : menuResultList){ if(menuManageTwo.getDepth().equals("2")){ if(menuManageOne.getMenuNo().equals(menuManageTwo.getUpperMenuId())){ twoDepth = new JSONObject(); twoDepth.put("children", ""+onePoint+"-"+twoPoint); twoPoint = twoPoint+1; twoDepth.put("name", menuManageTwo.getMenuNm()); twoDepth.put("link", menuManageTwo.getUrl()); twoArray.add(twoDepth) ; } } } oneArray.add(oneDepth) ; oneDepth.put("children", twoArray); onePoint = onePoint+1; twoPoint =1; } } jsonObject.put("children", oneArray); model.addAttribute("menuJson", jsonObject); } if(siteId.equals("linc") || siteId.equals("klc")){ return "web/"+siteFolder+"/com/webCommonHeader"; }else{ SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO.setSiteId(siteId); setSiteinfo(siteManagerVO, model , request ); //return "web/site/theme_"+siteManagerVO.getTheme()+"/"+siteManagerVO.getIsMobile()+"/com/webCommonHeader"; return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/com/webCommonHeader"; } } @RequestMapping(value="/web/com/webCommonHeader_back.do") public String webCommonHeader_back( @RequestParam Map commandMap, ModelMap model) throws Exception { return "web/com/webCommonHeader"; } /** * 사용자 footer */ @RequestMapping(value="/web/com/webCommonFooter.do") public String siteWebCommonFooter( @RequestParam Map commandMap, HttpServletRequest request, HttpSession session, ModelMap model) throws Exception { LoginLog loginLog = new LoginLog(); if(request.getRequestURI().contains("/web/main/mainPage.do")){ //사용자 메인 loginLog.setProgrmFileNm("mainPage"); loginLog.setMenuNm("사용자메인"); }else if(request.getRequestURI().contains("/web/survey/surveyList")){ //설문조사 loginLog.setProgrmFileNm("surveyList"); loginLog.setMenuNm("설문조사"); }else if(request.getRequestURI().contains("/web/content.do")){ //컨텐츠 if(commandMap.get("proFn")!=null){ MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("proFn"); tempMenuManageVO.setAuthorCode((String)commandMap.get("proFn")); MenuManageVO resultVO = menuManageService.selectMenuManage(tempMenuManageVO) ; loginLog.setProgrmFileNm((String)commandMap.get("proFn")); if(resultVO!=null){ loginLog.setMenuNm(resultVO.getMenuNm()); } } }else if(commandMap.get("bbsId") != null){ //나머지 모든 게시판 MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchKeyword((String)commandMap.get("bbsId")); tempMenuManageVO.setSearchCondition("bbsId"); MenuManageVO resultVO = menuManageService.selectMenuManage(tempMenuManageVO) ; loginLog.setProgrmFileNm((String)commandMap.get("bbsId")); if(resultVO!=null){ loginLog.setMenuNm(resultVO.getMenuNm()); } }else{ loginLog.setProgrmFileNm(null); } //사용자 방문수 insert { if(null == loginLogService.selectLoginUserLog(loginLog)){ //오늘날짜의 IP조회 SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA ); Date currentTime = new Date (); String mTime = mSimpleDateFormat.format ( currentTime ); HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); /* String ip = req.getHeader("X-FORWARDED-FOR"); */ String ip = EgovClntInfo.getClntIP(req); if (ip == null){ ip = req.getRemoteAddr();} loginLog.setLoginIp(ip); loginLog.setCreatDt(mTime); loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O loginLog.setErrOccrrAt("N"); loginLog.setErrorCode(""); loginLog.setUserAt("U"); if(!"anonymousUser".equals(EgovUserDetailsHelper.getAuthenticatedUser() )) { LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); loginLog.setLoginId(loginVO.getId()); }else { loginLog.setLoginId(""); } if(isMobile(request)){ loginLog.setDeviceType("M"); }else{ loginLog.setDeviceType("P"); } if(null != request.getQueryString() && !"".equals(request.getQueryString())){ loginLog.setUrl(request.getRequestURI()+"?"+request.getQueryString()); }else { loginLog.setUrl(request.getRequestURI()); } // JSPark 2023.03.27 => 아이피 길이체크(Data too long for column 오류 방지) /* if (ip != null) { if (ip.length() <= 23) { loginLogService.logInsertLoginLog(loginLog); } } */ try { //IP 컬럼 길이를 늘려서 비교 조건 제거함 2023-04-05 //URL 길이를 체크하여 제한 값에 도달 했는지 확인 후 분기 처리함 if (loginLog.getUrl().length()>200){ //길이문제로 오류가 발생하는 경우도 처리하도록 수정 LoginLog loginLog_tmp = new LoginLog(); loginLog_tmp.setLogId(loginLog.getLogId()); loginLog_tmp.setLoginId(loginLog.getLoginId()); loginLog_tmp.setLoginIp(loginLog.getLoginIp()); loginLog_tmp.setUserAt(loginLog.getUserAt()); loginLog_tmp.setDeviceType(loginLog.getDeviceType()); loginLog_tmp.setErrorCode(loginLog.getErrorCode()); loginLog_tmp.setErrOccrrAt(loginLog.getErrOccrrAt()); loginLog_tmp.setUrl(loginLog.getUrl().substring(0,200)); //IP 컬럼 길이를 늘려서 비교 조건 제거함 2023-04-05 int i_ret = loginLogService.logInsertLoginLog(loginLog_tmp); if (i_ret<=0) { loginLog_tmp.setErrorCode("0000000000"); loginLogService.logInsertLoginLog4Ajax(loginLog_tmp); } }else { //200 이하인 경우 //IP 컬럼 길이를 늘려서 비교 조건 제거함 2023-04-05 int i_ret = loginLogService.logInsertLoginLog(loginLog); if (i_ret<=0) { loginLog.setErrorCode("0000000000"); loginLogService.logInsertLoginLog4Ajax(loginLog); } } }catch(Exception ex) { ex.printStackTrace(); } } // JSPark 2023.02.24 => 사용하는곳이 없어 주석처리 //오늘 접속 / 최종접속 /* LoginLog footerLog = new LoginLog(); footerLog = loginLogService.selectLogCnt(footerLog); model.addAttribute("footerLog", footerLog); */ } //세션타임 설정해줌(사용자) SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO); session.setMaxInactiveInterval(60* Integer.parseInt(siteManagerVO.getSessionTimeUserCdTxt())); //10분 //model.addAttribute("sessionTime", siteManagerVO.getSessionTimeCdText()); model.addAttribute("loginLog", loginLog); return "web/com/webCommonFooter"; } /** * 사용자 만족도 관리/매뉴 담당자 가져오기 */ @RequestMapping(value="/web/com/webSatisCommonFooter.do") public String siteWebSatisCommonFooter(@RequestParam Map commandMap, HttpServletRequest request, ModelMap model, Model model2) throws Exception { MenuManageVO tempMenuManageVO = new MenuManageVO(); String url = request.getRequestURI(); String AuthorCode = "ROLE_ANONYMOUS"; //해당 푸터는 데코레이트에서 */web/*만 타므로 무조건 사용자 메뉴이다. if(request.getRequestURI().contains("/web/content.do")) { tempMenuManageVO.setSearchCondition("proFn"); tempMenuManageVO.setAuthorCode(AuthorCode); tempMenuManageVO.setSearchKeyword((String)commandMap.get("proFn")); url += "?proFn=" + commandMap.get("proFn"); }else if(commandMap.get("bbsId") != null) { tempMenuManageVO.setSearchKeyword((String)commandMap.get("bbsId")); tempMenuManageVO.setSearchCondition("bbsId"); tempMenuManageVO.setAuthorCode(AuthorCode); url += "?" + commandMap.get("bbsId"); }else { String tempUrl = request.getRequestURI() ; ComDefaultVO searchVO = new ComDefaultVO(); searchVO.setSearchKeyword(tempUrl); ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO); if(null != progrmManageVO){ tempMenuManageVO.setSearchCondition("Y"); tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm()); } } MenuManageVO resultVO = menuManageService.selectMenuManage_Satis(tempMenuManageVO) ; model.addAttribute("resultVO", resultVO); model.addAttribute("url", url); return "web/com/webSatisCommonFooter"; } /** * 사용자 footer */ @RequestMapping(value="/{siteId}/web/com/webThemeCommonFooter.do") public String webThemeCommonFooter(@PathVariable("siteId") String siteId , @RequestParam Map commandMap, HttpServletRequest request, ModelMap model) throws Exception { LoginLog loginLog = new LoginLog(); if(request.getRequestURI().contains("/web/main/mainPage.do")){ //사용자 메인 loginLog.setProgrmFileNm("mainPage"); loginLog.setMenuNm("사용자메인"); }else if(request.getRequestURI().contains("/web/survey/surveyList")){ //설문조사 loginLog.setProgrmFileNm("surveyList"); loginLog.setMenuNm("설문조사"); }else if(request.getRequestURI().contains("/web/content.do")){ //컨텐츠 if(commandMap.get("proFn")!=null){ MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("proFn"); tempMenuManageVO.setAuthorCode((String)commandMap.get("proFn")); MenuManageVO resultVO = menuManageService.selectMenuManage(tempMenuManageVO) ; loginLog.setProgrmFileNm((String)commandMap.get("proFn")); if(resultVO!=null){ loginLog.setMenuNm(resultVO.getMenuNm()); } } }else if(commandMap.get("bbsId") != null){ //나머지 모든 게시판 MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchKeyword((String)commandMap.get("bbsId")); tempMenuManageVO.setSearchCondition("bbsId"); /* ComDefaultVO searchVO = new ComDefaultVO(); searchVO.setSearchCondition("bbsId"); searchVO.setSearchKeyword((String)commandMap.get("bbsId")); */ MenuManageVO resultVO = menuManageService.selectMenuManage(tempMenuManageVO) ; loginLog.setProgrmFileNm((String)commandMap.get("bbsId")); if(resultVO!=null){ loginLog.setMenuNm(resultVO.getMenuNm()); } }else{ loginLog.setProgrmFileNm(null); } //사용자 방문수 insert { if(loginLog.getProgrmFileNm()!= null){ //미리보기 경우가 아닌경우 SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA ); Date currentTime = new Date (); String mTime = mSimpleDateFormat.format ( currentTime ); HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); /* String ip = req.getHeader("X-FORWARDED-FOR"); */ String ip = EgovClntInfo.getClntIP(req); if (ip == null){ ip = req.getRemoteAddr();} loginLog.setLoginIp(ip); loginLog.setCreatDt(mTime); loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O loginLog.setErrOccrrAt("N"); loginLog.setErrorCode(""); loginLog.setUserAt("U"); loginLog.setLoginId(""); //connnect_id if(isMobile(request)){ loginLog.setDeviceType("M"); }else{ loginLog.setDeviceType("P"); } loginLogService.logInsertLoginLog(loginLog); } } model.addAttribute("loginLog", loginLog); model.addAttribute("siteId", siteId); String siteFolder = "site/"+siteId ; if(siteId.equals("linc") || siteId.equals("klc")){ return "web/"+siteFolder+"/com/webCommonFooter"; }else{ SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO.setSiteId(siteId); setSiteinfo(siteManagerVO, model , request ); //return "web/site/theme_"+siteManagerVO.getTheme()+"/"+siteManagerVO.getIsMobile()+"/com/webCommonFooter"; return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/com/webCommonFooter"; } } /*모바일접속 유무*/ private boolean isMobile(HttpServletRequest request) { String userAgent = request.getHeader("user-agent"); boolean mobile1 = userAgent.matches(".*(iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson).*"); boolean mobile2 = userAgent.matches(".*(LG|SAMSUNG|Samsung).*"); if(mobile1 || mobile2) { return true; } return false; } /*최초 사이트 체크와 동시에 session 설정, 점검중 페이지 적용 */ @RequestMapping(value="/com/firstSiteCheck.do") public String firstSiteCheck(HttpServletRequest request, @RequestParam Map commandMap, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { // 차단IP 체크 START { int ignoreIpCnt = 0; String ipAddress = request.getHeader("X-Forwarded-For") == null ? request.getHeader("X-Forwarded-For") : request.getHeader("X-Forwarded-For").replaceAll("10.12.107.11", "").replaceAll(",", "").trim(); if (ipAddress == null) { ipAddress = request.getRemoteAddr(); } try { HackIpVO hackIpVO = new HackIpVO(); hackIpVO.setIgnoreIp(ipAddress); ignoreIpCnt = hackIpService.selectIgnoreIpCnt(hackIpVO); if (ignoreIpCnt > 0) { model.addAttribute("ipAddress", ipAddress); return "/block/Block"; } } catch(Exception e) { } } // END //점검중 페이지 체크 SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO); // if("Y".equals(siteManagerVO.getInspFlag() )){ //점검중 // return "web/com/insp"; // } //1. 사이트 점검중 페이지 노출 //2. siteManager 테이블의 SYS_MAINTENANCE, SYS_MAINTENANCE_IP 를 통해 구분 //3. 점검중페이지 노출 방식 // 미사용 : 점검 중 페이지 미노출 // IP로제어 : 등록 IP를 제외하고 모든 페이지에서 '점검중' 레이어 노출 // PATH로제어 : '/web/main/mainPage.do' 메인페이지에 접근했을때만 점검중페이지로 이동 String userIP = this.getClientIP(request); Boolean result = this.inspPagePath(request, userIP, siteManagerVO); if(!result) { return "web/com/insp"; } //자신의 위치 정보 List menuCurrentResultList = new ArrayList(); //자신의 위치 MenuManageVO resultVO = new MenuManageVO(); MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("Y"); setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO ); menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWeb(menuManageVO) ; Collections.reverse(menuCurrentResultList); //타이틀 역순을 위해 model.addAttribute("menuCurrentResultList", menuCurrentResultList); model.addAttribute("siteManagerVO", siteManagerVO); //파라미터를 포함한 URL로 등록된 메타태그 정보가 있는지 조회 String URL = request.getRequestURI(); String queryString = request.getQueryString(); if(queryString != null && !"".equals(queryString)) { URL += "?" + java.net.URLDecoder.decode(request.getQueryString(), "UTF-8"); } MetaTagVO metaTagVo = egovSiteManagerService.selectMetaTagDetailByUrl(URL) ; if(metaTagVo != null) { model.addAttribute("metaTagVo", metaTagVo); } return "web/com/webLayout"; } /*사이트 체크 유무*/ @RequestMapping(value="/{siteId}/web/siteCheck.do") private String siteCheck(@PathVariable("siteId") String siteId , SiteManagerVO siteManagerVO , HttpServletRequest request , RedirectAttributes redirectAttributes) { int totCnt = 0 ; siteManagerVO.setSiteId(siteId); try { totCnt = egovSiteManagerService.selectSiteManagerListTotCnt(siteManagerVO); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } if(totCnt == 0){ return "web/com/alert_site"; /*redirectAttributes.addFlashAttribute("message", "등록된 사이트가 없습니다."); RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/blank"); return redirectUrlMaker.getRedirectUrl();*/ }else{ return "blank"; } //return "web/main/mainPage"; } /** * 사용자 페이지의 테마 네비 상단 매뉴 */ @RequestMapping(value="/web/com/themeNaviWrap.do") public String themeWebCommonNaviWrap( @RequestParam Map commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { //자신의 위치 정보 List menuCurrentResultList = new ArrayList(); //자신의 위치 List menuLeftResultList = new ArrayList(); //자신이 속한 위치 List menuUnderResultList = new ArrayList(); //한단계 하위 위치 MenuManageVO resultVO = new MenuManageVO(); MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("Y"); setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO ); menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWeb(menuManageVO) ; //최상단 매뉴 가져오기 : 상단 그림 변화 //관리자에서 파일가져오기 PopupzoneVO popupzoneVo = new PopupzoneVO(); popupzoneVo.setFirstIndex(0); popupzoneVo.setRecordCountPerPage(10); //10개까지 popupzoneVo.setSeCd("06"); //뉴스레터 popupzoneVo.setUseYn("Y"); List popupzoneList_06 = egovPopupManageService.selectPopupzoneList(popupzoneVo); String topMenuId = "01" ; String subMenuFile = "" ; int subMenuFileSize = popupzoneList_06.size() ; if(menuCurrentResultList.size()!=0){ topMenuId = ((MenuManageJTreeVO)menuCurrentResultList.get(0)).getMenuNo() ; if("9100000".equals(topMenuId)){ topMenuId = "01" ; if(subMenuFileSize > 0 ){ subMenuFile = (String)((EgovMap)popupzoneList_06.get(0)).get("popupzoneImageFile") ; } }else if("9200000".equals(topMenuId)){ topMenuId = "02" ; if(subMenuFileSize > 1 ){ subMenuFile = (String)((EgovMap)popupzoneList_06.get(1)).get("popupzoneImageFile") ; } }else if("9300000".equals(topMenuId)){ topMenuId = "03" ; if(subMenuFileSize > 2 ){ subMenuFile = (String)((EgovMap)popupzoneList_06.get(2)).get("popupzoneImageFile") ; } }else if("9400000".equals(topMenuId)){ topMenuId = "04" ; if(subMenuFileSize > 3 ){ subMenuFile = (String)((EgovMap)popupzoneList_06.get(3)).get("popupzoneImageFile") ; } }else if("9500000".equals(topMenuId)){ topMenuId = "05" ; if(subMenuFileSize > 4 ){ subMenuFile = (String)((EgovMap)popupzoneList_06.get(4)).get("popupzoneImageFile") ; } }else{ topMenuId = "01" ; if(subMenuFileSize > 0 ){ subMenuFile = (String)((EgovMap)popupzoneList_06.get(0)).get("popupzoneImageFile") ; } } } model.addAttribute("topMenuId", topMenuId); model.addAttribute("subMenuFile", subMenuFile); menuLeftResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ; menuUnderResultList = menuCreateManageService.selectMenuUnderListJtreeWeb(menuManageVO) ; List showOneDepthMenu = new ArrayList(); List showTwoDepthMenu = new ArrayList(); List showThreeDepthMenu = new ArrayList(); List showFourDepthMenu = new ArrayList(); for(MenuManageJTreeVO tempLeftMenu : menuLeftResultList){ if(tempLeftMenu.getDepth().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("4")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showFourDepthMenu.add(tempLeftMenu); } } } } menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스 if(tempResultVo.getDepth().equals("1")){ showOneDepthMenu.add(tempResultVo); } } //매뉴구조도 텍스트 String menuText = ""; menuText += "
  •  
  • " ; if(request.getRequestURI().contains("/eng")){ //영문사이트 int i = 0; for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){ if(i !=0){ menuText += "
  •  > "+menuTextVo.getMenuNm()+"
  • " ; } i= i+1; } }else{ for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){ menuText += "
  •  > "+menuTextVo.getMenuNm()+"
  • " ; } } model.addAttribute("menuText", menuText); model.addAttribute("showOneDepthMenu", showOneDepthMenu); model.addAttribute("showTwoDepthMenu", showTwoDepthMenu); model.addAttribute("showThreeDepthMenu", showThreeDepthMenu); model.addAttribute("showFourDepthMenu", showFourDepthMenu); model.addAttribute("menuUnderResultList", menuUnderResultList); //하단매뉴 model.addAttribute("menuCurrentResultList", menuCurrentResultList); model.addAttribute("menuLeftResultList", menuLeftResultList); model.addAttribute("menuResultList", menuResultList); if(request.getRequestURI().contains("/eng/")){ return "web/com/engWebCommonNaviWrap"; } return "web/com/webCommonNaviWrap"; } /** * 사용자 페이지의 네비 상단 매뉴 */ @RequestMapping(value="/web/com/naviWrapAjax.do") public String webCommonNaviWrapAjax( @RequestParam Map commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { //자신의 위치 정보 List menuCurrentResultList = new ArrayList(); //자신의 위치 List menuLeftResultList = new ArrayList(); //자신이 속한 위치 MenuManageVO resultVO = new MenuManageVO(); if(null!=(String)commandMap.get("proFn")){ //컨텐츠 타입이면 매뉴아이디 조회 MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("proFn"); tempMenuManageVO.setSearchKeyword((String)commandMap.get("proFn")); resultVO = menuManageService.selectMenuManage(tempMenuManageVO); menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); menuManageVO.setMenuNo(resultVO.getMenuNo()+""); menuManageVO.setMenuNo("9151200"); //테스트 menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWeb(menuManageVO) ; menuLeftResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ; } List showOneDepthMenu = new ArrayList(); List showTwoDepthMenu = new ArrayList(); List showThreeDepthMenu = new ArrayList(); List showFourDepthMenu = new ArrayList(); for(MenuManageJTreeVO tempLeftMenu : menuLeftResultList){ if(tempLeftMenu.getDepth().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("4")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showFourDepthMenu.add(tempLeftMenu); } } } } menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스 if(tempResultVo.getDepth().equals("1")){ showOneDepthMenu.add(tempResultVo); } } //매뉴구조도 텍스트 String menuText = ""; menuText += "
  •  
  • " ; for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){ menuText += "
  •  > "+menuTextVo.getMenuNm()+"
  • " ; } model.addAttribute("menuText", menuText); model.addAttribute("showOneDepthMenu", showOneDepthMenu); model.addAttribute("showTwoDepthMenu", showTwoDepthMenu); model.addAttribute("showThreeDepthMenu", showThreeDepthMenu); model.addAttribute("showFourDepthMenu", showFourDepthMenu); model.addAttribute("menuCurrentResultList", menuCurrentResultList); model.addAttribute("menuLeftResultList", menuLeftResultList); model.addAttribute("menuResultList", menuResultList); return "web/com/webCommonNaviWrap"; } private void setViewMenu(HttpServletRequest request, Map commandMap , MenuManageVO tempMenuManageVO, MenuManageVO resultVO, MenuManageJTreeVO menuManageVO) throws Exception { if(request.getRequestURI().contains("/web/survey_back")){//설문조사(각 사이트 마다 이름이 달라) survey > survey_back 으로 사용한 tempMenuManageVO.setSearchKeyword("surveyList"); }else if(request.getRequestURI().contains("schdlr")){ //스케줄러 경우(일,월,년 url이 달라 tempMenuManageVO.setSearchKeyword("schdlrManage"); }else if(null!=(String)commandMap.get("proFn") || null!=(String)commandMap.get("bbsId") || null!=(String)commandMap.get("nttId")){ //컨텐츠 타입, 게시판 타입의 경우 if(null!=(String)commandMap.get("proFn")){ //컨텐츠 tempMenuManageVO.setSearchKeyword((String)commandMap.get("proFn")); }else if(null!=(String)commandMap.get("bbsId")) { //게시판 ComDefaultVO searchVO = new ComDefaultVO(); String url = progrmManageService.getBbsUrlByNttId((String)commandMap.get("bbsId")); //String url = "/web/cop/bbsWeb/selectBoardList.do?bbsId="+ (String)commandMap.get("bbsId"); if(null == url) { //사전정보공표 if(null != (String)commandMap.get("pubDetail")) { url = "/web/cop/bbs/PubOperList.do"; } if(null != (String)commandMap.get("tabBbsId")) { url = "/web/cop/bbs/PubOperList.do"; } } searchVO.setSearchKeyword(url); ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO); if(null != progrmManageVO){ tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm()); } }else { // nttId 통합검색시 BoardVO tempBoardVO = new BoardVO(); tempBoardVO.setNttId(Integer.parseInt((String)commandMap.get("nttId"))); BoardMasterVO bmVO = bbsAttrbService.selectBbsIdByNttId(tempBoardVO); ComDefaultVO searchVO = new ComDefaultVO(); String url = progrmManageService.getBbsUrlByNttId( bmVO== null ? "" : bmVO.getBbsId()); searchVO.setSearchKeyword(url); ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO); if(null != progrmManageVO){ tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm()); } } }else{ //ajax 로 검색시 //일반 프로그램시 if(commandMap.get("url") != null){ String menuUrl = request.getRequestURI() ; if(menuUrl.equals("/web/cop/org/selectOrgDetail.do")){ menuUrl = "/web/cop/org/selectOrgList.do" ; } ComDefaultVO searchVO = new ComDefaultVO(); searchVO.setSearchKeyword(menuUrl); ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO); if(null != progrmManageVO){ tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm()); } }else { //조직도 상세 String menuUrl = request.getRequestURI() ; if(menuUrl.equals("/web/cop/org/selectOrgDetail.do")){ menuUrl = "/web/cop/org/selectOrgList.do" ; ComDefaultVO searchVO = new ComDefaultVO(); searchVO.setSearchKeyword(menuUrl); ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO); if(null != progrmManageVO){ tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm()); } } } } if(!"dir".equals(tempMenuManageVO.getSearchKeyword())){ resultVO = menuManageService.selectMenuManage(tempMenuManageVO); } menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); if(resultVO != null){ menuManageVO.setMenuNo(resultVO.getMenuNo()+""); } } /** * 사용자 페이지의 네비 상단 매뉴 */ @RequestMapping(value="/web/com/naviWrap.do") public String siteWebCommonNaviWrap(@RequestParam Map commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { //자신의 위치 정보 List menuCurrentResultList = new ArrayList(); //자신의 위치 List menuLeftResultList = new ArrayList(); //자신이 속한 위치 List menuUnderResultList = new ArrayList(); //한단계 하위 위치 MenuManageVO resultVO = new MenuManageVO(); MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("Y"); setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO ); menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWeb(menuManageVO) ; //최상단 매뉴 가져오기 : 상단 그림 변화 menuLeftResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ; menuUnderResultList = menuCreateManageService.selectMenuUnderListJtreeWeb(menuManageVO) ; List showOneDepthMenu = new ArrayList(); List showTwoDepthMenu = new ArrayList(); List showThreeDepthMenu = new ArrayList(); List showFourDepthMenu = new ArrayList(); for(MenuManageJTreeVO tempLeftMenu : menuLeftResultList){ if(tempLeftMenu.getDepth().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("4")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showFourDepthMenu.add(tempLeftMenu); } } } } menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스 if(tempResultVo.getDepth().equals("1")){ showOneDepthMenu.add(tempResultVo); } } //매뉴구조도 텍스트 String menuText = ""; menuText += "
  •  
  • " ; if(request.getRequestURI().contains("/eng")){ //영문사이트 int i = 0; for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){ if(i !=0){ menuText += "
  •  > "+menuTextVo.getMenuNm()+"
  • " ; } i= i+1; } }else{ for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){ menuText += "
  •  > "+menuTextVo.getMenuNm()+"
  • " ; } } //메뉴별 비주얼 이미지가져오기 PopupzoneVO popupzoneVo = new PopupzoneVO(); popupzoneVo.setFirstIndex(0); popupzoneVo.setRecordCountPerPage(10); //10개까지 popupzoneVo.setSeCd("01"); //메뉴별 비주얼 popupzoneVo.setUseYn("Y"); popupzoneVo.setSearchSortCnd("SORT"); List popupzoneList_01 = egovPopupManageService.selectPopupzoneList(popupzoneVo); String topMenuId = "01" ; String subMenuFile = "" ; String pozNmText = "" ; int subMenuFileSize = popupzoneList_01.size() ; if(menuCurrentResultList.size()!=0){ //1뎁스 매뉴에서 현제 매뉴의 몇번째인지를 가져온다. int tempCurrentSub = 0; for(MenuManageJTreeVO tempMenuManageJTreeVO : showOneDepthMenu){ if(((MenuManageJTreeVO)menuCurrentResultList.get(0)).getMenuNo().equals(tempMenuManageJTreeVO.getMenuNo())){ break; }else { tempCurrentSub = tempCurrentSub+1; } } //메인비주얼 맞는 순서를 가져온다. if(subMenuFileSize > 0 ){ if(tempCurrentSub > 5 ) { //안보이는 매뉴 tempCurrentSub = 0; } try { subMenuFile = (String)((EgovMap)popupzoneList_01.get(tempCurrentSub)).get("popupzoneImageFile") ; pozNmText = (String)((EgovMap)popupzoneList_01.get(tempCurrentSub)).get("pozNm") ; }catch(Exception e) { //이미지 등록 안되 있으면 에러 나서 에러의 경우 subMenuFile = "FILE_000000000000000" ; //임의의 파일 } topMenuId = (tempCurrentSub+1)+""; } } //샘플테마사용시 고정 이미지 가져오기 SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; if( !"".equals(siteManagerVO.getTheme()) && null != siteManagerVO.getTheme()){ model.addAttribute("siteManagerVO", siteManagerVO); } model.addAttribute("topMenuId", topMenuId); model.addAttribute("subMenuFile", subMenuFile); model.addAttribute("pozNmText", pozNmText); model.addAttribute("menuText", menuText); model.addAttribute("showOneDepthMenu", showOneDepthMenu); model.addAttribute("showTwoDepthMenu", showTwoDepthMenu); model.addAttribute("showThreeDepthMenu", showThreeDepthMenu); model.addAttribute("showFourDepthMenu", showFourDepthMenu); model.addAttribute("menuUnderResultList", menuUnderResultList); //하단매뉴 model.addAttribute("menuCurrentResultList", menuCurrentResultList); model.addAttribute("menuLeftResultList", menuLeftResultList); model.addAttribute("menuResultList", menuResultList); if(request.getRequestURI().contains("/eng/")){ return "web/com/engWebCommonNaviWrap"; } return "web/com/webCommonNaviWrap"; } /** * 사용자 좌측 매뉴 */ @RequestMapping(value="/web/com/leftMenu.do") public String webCommonLeftMenu( @RequestParam Map commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { MenuManageVO resultVO = new MenuManageVO(); MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("Y"); setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO ); List menuLeftResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ; model.addAttribute("menuLeftResultList", menuLeftResultList); if(request.getRequestURI().contains("/eng/")){ model.addAttribute("eng", "eng"); } return "web/com/webCommonLeftMenu"; } @RequestMapping(value="/{siteId}/web/com/getDivTop.do") public String getDivTop(@PathVariable("siteId") String siteId , HttpServletRequest request, @RequestParam Map commandMap, ModelMap model) throws Exception { /*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){ SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO.setSiteId(siteId); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; String theme = "01"; String siteFolder = "site/"+siteId ; if( !"".equals(siteManagerVO.getTheme()) && null != siteManagerVO.getTheme()){ theme = siteManagerVO.getTheme() ; siteFolder = "site/theme_"+theme ; } String isMobile = "PC"; WebUtil util = new WebUtil(); if(util.isMobile(request)){ isMobile = "MOBILE"; } return "web/site/theme_"+theme+"/"+isMobile+"/main/mainPage"; }*/ return "blank"; } @RequestMapping("/{siteId}/web/searchTotal.do") public String searchTotal(@PathVariable("siteId") String siteId , HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("searchTotalVO") SearchTotalVO searchTotalVO, ModelMap model ,RedirectAttributes redirectAttributes) throws Exception { BoardMasterVO bmVO = new BoardMasterVO(); searchTotalVO.setPageUnit(propertiesService.getInt("pageUnit")); searchTotalVO.setPageSize(propertiesService.getInt("pageSize")); PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(searchTotalVO.getPageIndex()); paginationInfo.setRecordCountPerPage(searchTotalVO.getPageUnit()); paginationInfo.setPageSize(searchTotalVO.getPageSize()); searchTotalVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); searchTotalVO.setLastIndex(paginationInfo.getLastRecordIndex()); searchTotalVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); //List map = bbsMngService.selectBoardTotalSearch(boardVO); List resultList = new ArrayList(); resultList = bbsMngService.selectBoardTotalSearch(searchTotalVO); int totCnt = bbsMngService.selectBoardTotalSearchCnt(searchTotalVO); //paginationInfo.setTotalRecordCount(resultList[0]); model.addAttribute("resultList", resultList); model.addAttribute("totCnt", totCnt); paginationInfo.setTotalRecordCount(totCnt); model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("siteId", siteId); String siteFolder = "site/"+siteId ; /*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){ SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO.setSiteId(siteId); setSiteinfo(siteManagerVO, model , request ); //return "web/site/theme_"+siteManagerVO.getTheme()+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeList"; return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/main/searchTotal"; }*/ return "web/"+siteFolder+"/main/searchTotal"; } //로그인 세션 연장 @RequestMapping("/web/com/userSessionExpendAjax.do") public ModelAndView userSessionExpendAjax(SiteManagerVO siteManagerVO, HttpSession session ) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); //세션타임 설정(관리자) //SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO); session.setMaxInactiveInterval(60* Integer.parseInt(siteManagerVO.getSessionTimeUserCdTxt())); //10분 //현재 로그인 시간에서 20분 후 시간 받아오기(로그아웃될 시간) //MJUtil mjUtil = new MJUtil(); //String timer = mjUtil.getAfterTimerDate(20); //세션에 로그아웃될 시간 저장해 주기 //session.setAttribute("timer", timer); //modelAndView.addObject("timer", timer); return modelAndView; } @RequestMapping(value="/com/getThemeLayout.do") public String getThemeLayout(HttpServletRequest request, @RequestParam Map commandMap, ModelMap model) throws Exception { if(commandMap.get("url")!=null){ String siteId = ((String)commandMap.get("url")).split("/")[3] ; SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO.setSiteId(siteId); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; String theme = "01"; /*if( !"".equals(siteManagerVO.getTheme()) && null != siteManagerVO.getTheme()){ theme = siteManagerVO.getTheme() ; String isMobile = "pc"; WebUtil util = new WebUtil(); if(util.isMobile(request)){ isMobile = "mobile"; } //return "web/site/theme_"+theme+"/"+isMobile+"/layout"; return "web/site/"+siteId+"/"+isMobile+"/layout"; }*/ String isMobile = "pc"; WebUtil util = new WebUtil(); if(util.isMobile(request)){ isMobile = "mobile"; } return "web/site/"+siteId+"/"+isMobile+"/layout"; } return "blank"; } private void setSiteinfo(SiteManagerVO siteManagerVO , ModelMap model , HttpServletRequest request) throws Exception{ SiteManagerVO tempSiteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; if(tempSiteManagerVO !=null){ siteManagerVO.setIsMobile("pc") ; siteManagerVO.setTheme(tempSiteManagerVO.getTheme()); siteManagerVO.setSiteNm(tempSiteManagerVO.getSiteNm()); }else{ siteManagerVO.setTheme("01"); siteManagerVO.setSiteNm("타이틀"); } WebUtil util = new WebUtil(); if(util.isMobile(request)){ siteManagerVO.setIsMobile("mobile"); } model.addAttribute("siteId", siteManagerVO.getSiteId()); model.addAttribute("siteNm", siteManagerVO.getSiteNm()); //model.addAttribute("site_path" , "/site/theme_"+siteManagerVO.getTheme()+"/"+siteManagerVO.getIsMobile()); model.addAttribute("site_path" , "/site/"+siteManagerVO.getSiteId()+"/"+siteManagerVO.getIsMobile()); } /* @RequestMapping(value="/{siteId}/web/siteMap.do") public String siteMap(@PathVariable("siteId") String siteId, @RequestParam Map commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { model.addAttribute("siteId", siteId); String siteFolder = "site/"+siteId ; model.addAttribute("site_path", "/"+siteFolder); return "web/"+siteFolder+"/member/sitemap"; }*/ // 사이트맵 개발 @RequestMapping(value="/{siteId}/web/siteMap.do") public String siteMap(@PathVariable("siteId") String siteId, @RequestParam Map commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); //List menuResultList = menuCreateManageService.selectMenuListJtree(menuManageVO) ; menuManageVO.setSiteId(siteId); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; List menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회 HashSet underMenuEmpty = new HashSet(); //2뎁스의 하위매뉴 없는것 조회 for(MenuManageJTreeVO menuManage : menuResultList){ if(menuManage.getDepth().equals("3")){ menuTwoExist.add(menuManage.getUpperMenuId()) ; } if(menuManage.getDepth().equals("2")){ underMenuEmpty.add(menuManage.getMenuNo()); } } HashSet underMenuExist = new HashSet(menuTwoExist); //하위매뉴가 있는것 underMenuEmpty.removeAll(underMenuExist); //하위매뉴가 없는것 MenuManageJTreeVO menuManageTopVO = new MenuManageJTreeVO(); menuManageTopVO.setUpperMenuId("#"); menuManageTopVO.setMenuNo("0"); model.addAttribute("menuResultList", menuResultList); model.addAttribute("underMenuExist", underMenuExist); model.addAttribute("underMenuEmpty", underMenuEmpty); model.addAttribute("siteId", siteId); String siteFolder = "site/"+siteId ; model.addAttribute("site_path", "/"+siteFolder); //샘플테마사용시 고정 이미지 가져오기 SiteManagerVO siteManagerVO = new SiteManagerVO(); siteManagerVO.setSiteId(siteId); siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; if( !"".equals(siteManagerVO.getTheme()) && null != siteManagerVO.getTheme()){ model.addAttribute("siteManagerVO", siteManagerVO); } return "web/"+siteFolder+"/member/sitemap"; } /** * 사용자 페이지의 네비 상단 매뉴 */ @RequestMapping(value="/{siteId}/web/com/naviWrapAjax.do") public String ajaxSiteWebCommonNaviWrap(@PathVariable("siteId") String siteId , @RequestParam Map commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception { //자신의 위치 정보 List menuCurrentResultList = new ArrayList(); //자신의 위치 List menuLeftResultList = new ArrayList(); //자신이 속한 위치 List menuUnderResultList = new ArrayList(); //한단계 하위 위치 MenuManageVO resultVO = new MenuManageVO(); MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("Y"); setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO ); menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWeb(menuManageVO) ; //최상단 매뉴 가져오기 : 상단 그림 변화 menuLeftResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ; menuUnderResultList = menuCreateManageService.selectMenuUnderListJtreeWeb(menuManageVO) ; List showOneDepthMenu = new ArrayList(); List showTwoDepthMenu = new ArrayList(); List showThreeDepthMenu = new ArrayList(); List showFourDepthMenu = new ArrayList(); for(MenuManageJTreeVO tempLeftMenu : menuLeftResultList){ if(tempLeftMenu.getDepth().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepth().equals("4")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showFourDepthMenu.add(tempLeftMenu); } } } } menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스 if(tempResultVo.getDepth().equals("1")){ showOneDepthMenu.add(tempResultVo); } } model.addAttribute("showOneDepthMenu", showOneDepthMenu); model.addAttribute("showTwoDepthMenu", showTwoDepthMenu); model.addAttribute("showThreeDepthMenu", showThreeDepthMenu); model.addAttribute("showFourDepthMenu", showFourDepthMenu); model.addAttribute("menuUnderResultList", menuUnderResultList); //하단매뉴 model.addAttribute("menuCurrentResultList", menuCurrentResultList); model.addAttribute("menuLeftResultList", menuLeftResultList); model.addAttribute("menuResultList", menuResultList); model.addAttribute("siteId", siteId); String siteFolder = "site/"+siteId ; model.addAttribute("site_path", "/"+siteFolder); return "web/"+siteFolder+"/com/webCommonNaviWrapAjax"; } /* 메일전송 첨부파일등록/수정 view*/ @RequestMapping(value="/itn/mail/itnSendMailForm.do") public String intSendMailForm(@RequestParam Map commandMap, @ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes , Model model , HttpSession session) throws Exception { List fmsFileList = new ArrayList(); model.addAttribute("fmsFileList", fmsFileList); //fms파일정보 List fileList = new ArrayList<>(); model.addAttribute("fileList", fileList); return "uss/ion/fms/ItnSendMailForm"; } /* 메일전송 process */ @RequestMapping(value="/itn/mail/itnSendMailPro.do") public ModelAndView insertFmsFileOrg(@RequestParam Map commandMap, @ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO, final MultipartHttpServletRequest multiRequest, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); String recipient = Globals_email_toEmail; //받는 사람의 메일주소를 입력해주세요. Properties props = System.getProperties(); // SMTP 서버 정보 설정 props.put("mail.smtp.host", Globals_email_host); props.put("mail.smtp.port", Globals_email_port); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.ssl.trust", Globals_email_host); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { //Session 생성 protected javax.mail.PasswordAuthentication getPasswordAuthentication() { return new javax.mail.PasswordAuthentication(Globals_email_fromUser, Globals_email_fromEmail_password); } }); //테스트용 String revRecipient = (String)commandMap.get("emailAddrRev") ; try { Message message = new MimeMessage(session); //MimeMessage 생성 message.setFrom(new InternetAddress(Globals_email_fromEmail)); //발신자 셋팅 , 보내는 사람의 이메일주소를 한번 더 입력합니다. 이때는 이메일 풀 주소를 다 작성해주세요. message.setRecipient(Message.RecipientType.TO, new InternetAddress(revRecipient)); //수신자셋팅 message.addRecipient(Message.RecipientType.BCC, new InternetAddress(Globals_email_toEmail_BCC)); //숨은참조자 message.setSubject((String)commandMap.get("subject")); //제목셋팅 // 메일 내용을 설정을 위한 클래스를 설정합니다. message.setContent(new MimeMultipart()); // 메일 내용을 위한 Multipart클래스를 받아온다. (위 new MimeMultipart()로 넣은 클래스입니다.) Multipart multipart = (Multipart) message.getContent(); // html 형식으로 본문을 작성해서 바운더리에 넣습니다. StringBuffer contentBf = new StringBuffer(); contentBf.append("<작성자 메일주소 >: " + (String)commandMap.get("emailAddr")) ; contentBf.append("\r\n") ; contentBf.append("\r\n") ; contentBf.append("\r\n") ; contentBf.append("<내용> ") ; contentBf.append("\r\n") ; contentBf.append((String)commandMap.get("content")) ; multipart.addBodyPart(getContents(contentBf.toString())); /*파일등록 */ List result = null; String uploadFolder = ""; final Map files = multiRequest.getFileMap(); FileVO vo = null; String realFileLoc = "" ; if (!files.isEmpty()){ result = fileUtil.parseFileInf(files, "MAIL_", 0, "", uploadFolder, ""); Iterator iter = result.iterator(); while (iter.hasNext()) { vo = iter.next(); realFileLoc = vo.getFileStreCours()+vo.getStreFileNm() ; //addMulitAttachment(multipart , "C:"+realFileLoc , vo.getOrignlFileNm()); addMulitAttachment(multipart , realFileLoc , vo.getOrignlFileNm()); } if (vo == null) { } else { } } Transport.send(message); }catch(Exception e) { } return modelAndView; } // 파일을 로컬로 부터 읽어와서 BodyPart 클래스로 만든다. (바운더리 변환) private BodyPart getFileAttachment(String realFile, String filename) throws MessagingException { // BodyPart 생성 BodyPart mbp = new MimeBodyPart(); // 파일 읽어서 BodyPart에 설정(바운더리 변환) File file = new File(realFile); DataSource source = new FileDataSource(file); mbp.setDataHandler(new DataHandler(source)); mbp.setDisposition(Part.ATTACHMENT); //mbp.setFileName(filename); try { mbp.setFileName(MimeUtility.encodeText(filename, "euc-kr","B")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } //한글깨짐방지 return mbp; } // 다수의 파일 첨부 파일을 로컬로 부터 읽어와서 BodyPart 클래스로 만든다. (바운더리 변환) private void addMulitAttachment(Multipart multipart, String realFileLoc, String filename) throws MessagingException { try { DataSource source = new FileDataSource(realFileLoc); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(MimeUtility.encodeText(filename) ); //한글깨짐방지 multipart.addBodyPart(messageBodyPart); }catch (UnsupportedEncodingException e) { e.printStackTrace(); } } // 메일의 본문 내용 설정 private BodyPart getContents(String html) throws MessagingException { BodyPart mbp = new MimeBodyPart(); mbp.setText(html); // setText를 이용할 경우 일반 텍스트 내용으로 설정된다. // html 형식으로 설정(줄개행 > br로) //mbp.setContent(html.replaceAll("(\r\n|\n)", "
    "), "text/html; charset=utf-8"); //줄바꿈이 필요해서 return mbp; } /** * 복호화 * * @param privateKey * @param securedValue * @return * @throws Exception */ private String decryptRsa(PrivateKey privateKey, String securedValue) throws Exception { Cipher cipher = Cipher.getInstance(MainController.RSA_INSTANCE); byte[] encryptedBytes = hexToByteArray(securedValue); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); String decryptedValue = new String(decryptedBytes, "utf-8"); // 문자 인코딩 주의. return decryptedValue; } /** * 16진 문자열을 byte 배열로 변환한다. * * @param hex * @return */ public static byte[] hexToByteArray(String hex) { if (hex == null || hex.length() % 2 != 0) { return new byte[] {}; } byte[] bytes = new byte[hex.length() / 2]; for (int i = 0; i < hex.length(); i += 2) { byte value = (byte) Integer.parseInt(hex.substring(i, i + 2), 16); bytes[(int) Math.floor(i / 2)] = value; } return bytes; } /** * rsa 공개키, 개인키 생성 * * @param request */ public void initRsa(HttpServletRequest request) { HttpSession session = request.getSession(); KeyPairGenerator generator; try { generator = KeyPairGenerator.getInstance(MainController.RSA_INSTANCE); generator.initialize(1024); KeyPair keyPair = generator.genKeyPair(); KeyFactory keyFactory = KeyFactory.getInstance(MainController.RSA_INSTANCE); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); session.setAttribute(MainController.RSA_WEB_KEY, privateKey); // session에 RSA 개인키를 세션에 저장 RSAPublicKeySpec publicSpec = (RSAPublicKeySpec) keyFactory.getKeySpec(publicKey, RSAPublicKeySpec.class); String publicKeyModulus = publicSpec.getModulus().toString(16); String publicKeyExponent = publicSpec.getPublicExponent().toString(16); request.setAttribute("RSAModulus", publicKeyModulus); // rsa modulus 를 request 에 추가 request.setAttribute("RSAExponent", publicKeyExponent); // rsa exponent 를 request 에 추가 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("======================================================"); System.out.println("= RSA generator is fail ="); System.out.println("= MainController ="); System.out.println("======================================================"); } } /*최초 사이트 체크와 동시에 session 설정, 점검중 페이지 적용 */ @RequestMapping(value="/web/com/insp.do") public String insp(HttpServletRequest request, ModelMap model) throws Exception { return "/web/com/insp"; } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 @RequestMapping(value="/web/main/addrRecvListAjax.do") public ModelAndView addrRecvListAjax(final MultipartHttpServletRequest multiRequest , RedirectAttributes redirectAttributes , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; List addrRecvList = null; try { String userId = ""; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { userId = user.getId(); } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 AddrTransHistVO addrTransHistVO = new AddrTransHistVO(); addrTransHistVO.setRecordCountPerPage(10000); //10000개까지 addrTransHistVO.setFirstIndex(0); addrTransHistVO.setRecvMberId(userId); addrRecvList = addrTransHistService.selectAddrTransWaitList(addrTransHistVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); modelAndView.addObject("addrRecvList", addrRecvList); modelAndView.addObject("addrRecvListSize", addrRecvList.size()); return modelAndView; } // 타인에게 전송받은 주소록 수신대기 목록 저장하기 @RequestMapping(value="/web/main/addrRecvSaveAjax.do") public ModelAndView addrRecvSaveAjax(final MultipartHttpServletRequest multiRequest , @ModelAttribute("addrTransHistVO") AddrTransHistVO addrTransHistVO , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; try { String userId = ""; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { userId = user.getId(); } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 addrTransHistVO.setRecordCountPerPage(10000); //10000개까지 addrTransHistVO.setFirstIndex(0); addrTransHistVO.setRecvMberId(userId); addrTransHistService.updateAddrRecvListAll(addrTransHistVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } // 주소록 수신 거절 @RequestMapping(value="/web/main/addrRecvRejectAjax.do") public ModelAndView addrRecvRejectAjax(final MultipartHttpServletRequest multiRequest , @ModelAttribute("addrTransHistVO") AddrTransHistVO addrTransHistVO , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; try { String userId = ""; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { userId = user.getId(); } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 addrTransHistVO.setRecordCountPerPage(10000); //10000개까지 addrTransHistVO.setFirstIndex(0); addrTransHistVO.setRecvMberId(userId); addrTransHistService.updateAddrRecvListAll(addrTransHistVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 @RequestMapping(value="/web/main/fax/faxAddrRecvListAjax.do") public ModelAndView faxAddrRecvListAjax(final MultipartHttpServletRequest multiRequest , RedirectAttributes redirectAttributes , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; List addrRecvList = null; try { String userId = ""; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { userId = user.getId(); } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 FaxAddrTransHistVO addrTransHistVO = new FaxAddrTransHistVO(); addrTransHistVO.setRecordCountPerPage(10000); //10000개까지 addrTransHistVO.setFirstIndex(0); addrTransHistVO.setRecvMberId(userId); addrRecvList = faxAddrTransHistService.selectFaxAddrTransWaitList(addrTransHistVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); modelAndView.addObject("faxAddrRecvList", addrRecvList); modelAndView.addObject("faxAddrRecvListSize", addrRecvList.size()); return modelAndView; } // 타인에게 전송받은 주소록 수신대기 목록 저장하기 @RequestMapping(value="/web/main/fax/faxAddrRecvSaveAjax.do") public ModelAndView faxAddrRecvSaveAjax(final MultipartHttpServletRequest multiRequest , @ModelAttribute("addrTransHistVO") FaxAddrTransHistVO addrTransHistVO , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; try { String userId = ""; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { userId = user.getId(); } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 addrTransHistVO.setRecordCountPerPage(10000); //10000개까지 addrTransHistVO.setFirstIndex(0); addrTransHistVO.setRecvMberId(userId); faxAddrTransHistService.updateFaxAddrRecvListAll(addrTransHistVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } // 주소록 수신 거절 @RequestMapping(value="/web/main/fax/faxAddrRecvRejectAjax.do") public ModelAndView faxAddrRecvRejectAjax(final MultipartHttpServletRequest multiRequest , @ModelAttribute("addrTransHistVO") FaxAddrTransHistVO addrTransHistVO , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; try { String userId = ""; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(EgovUserDetailsHelper.isAuthenticated() && user!=null) { userId = user.getId(); } // 타인에게 전송받은 주소록 수신대기 목록 조회하기 addrTransHistVO.setRecordCountPerPage(10000); //10000개까지 addrTransHistVO.setFirstIndex(0); addrTransHistVO.setRecvMberId(userId); faxAddrTransHistService.updateFaxAddrRecvListAll(addrTransHistVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } // 해외아이피 체크 @RequestMapping(value="/web/main/selectForienIpCheckAjax.do") public void selectForienIpCheckAjax(HttpServletRequest request) { try { String ipAddress = request.getHeader("X-Forwarded-For") == null ? request.getHeader("X-Forwarded-For") : request.getHeader("X-Forwarded-For").replaceAll("10.12.107.11", "").replaceAll(",", "").trim(); if (ipAddress == null) { ipAddress = request.getRemoteAddr(); System.out.println("+++++++++++++ ipAddress ::: "+ipAddress); } boolean resultSts = MjonForienIpChk.getForienCountryValue(ipAddress); System.out.println("++++++++++++++++ 국내 아이피 여부(국내 : true, 해외 : false) ::: "+resultSts); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 후불제여부(후불 : true, 선불 : false) @RequestMapping(value="/web/main/selectUserAfterPayAjax.do") public ModelAndView selectUserAfterPayAjax(@ModelAttribute UserManageVO userManageVO , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; boolean isAfterPay = false; // 후불여부 String msg = ""; //로그인 권한정보 불러오기 LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); try { int isAfterPayCnt = userManageService.selectUserAfterPayInfo(userId); if (isAfterPayCnt > 0) { isAfterPay = true; } } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("isAfterPay", isAfterPay); modelAndView.addObject("msg", msg); return modelAndView; } // 대시보드 통계 업데이트 @RequestMapping(value="/web/main/dashBoardStatAjax.do") public ModelAndView dashBoardStatAjax(@ModelAttribute StatsVO statsVO , HttpServletRequest request) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; try { // 오늘날짜 Date nowDate = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String strNowDate = simpleDateFormat.format(nowDate); if (null == statsVO.getStatDate() || statsVO.getStatDate().equals("")) { statsVO.setStatDate(strNowDate); } // 대시보드 인서트 Logic conectStatsService.insertDashBoardStatLogic(statsVO); // 대시보드 업데이트 Logic conectStatsService.updateDashBoardStatLogic(statsVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } private String getClientIP(HttpServletRequest request) { String ip = ""; try { ip = request.getHeader("X-Forwarded-For") == null ? request.getHeader("X-Forwarded-For") : request.getHeader("X-Forwarded-For").replaceAll("10.12.107.11", "").replaceAll(",", "").trim(); //logger.info("> X-FORWARDED-FOR : " + ip); //System.out.println("> X-FORWARDED-FOR : " + ip); if (ip == null) { ip = request.getHeader("Proxy-Client-IP"); //System.out.println("> Proxy-Client-IP : " + ip); } if (ip == null) { ip = request.getHeader("WL-Proxy-Client-IP"); //System.out.println("> WL-Proxy-Client-IP : " + ip); } if (ip == null) { ip = request.getHeader("HTTP_CLIENT_IP"); //System.out.println("> HTTP_CLIENT_IP : " + ip); } if (ip == null) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); //System.out.println("> HTTP_X_FORWARDED_FOR : " + ip); } if (ip == null) { ip = request.getRemoteAddr(); //System.out.println("> getRemoteAddr : "+ip); } //System.out.println("> Result : IP Address : "+ip); }catch(Exception ex) { ex.printStackTrace(); } return ip; } private Boolean inspPagePath(HttpServletRequest request, String userIP, SiteManagerVO siteManagerVO) { // if("IP".equals(siteManagerVO.getSysMaintenance())) { // if(!StringUtils.isEmpty(siteManagerVO.getSysMaintenanceIp())) { // if(!Arrays.stream(siteManagerVO.getSysMaintenanceIp().split(",")).anyMatch(userIP::equals)) { // /* 점검중 */ // return false; // } // } else { // /* 점검중 */ // return false; // } // } if("PATH".equals(siteManagerVO.getSysMaintenance())) { if("/web/main/mainPage.do".equals(request.getRequestURI())) { /* 점검중 */ return false; } } return true; } private Boolean inspPageIp(HttpServletRequest request, String userIP, SiteManagerVO siteManagerVO) { if("IP".equals(siteManagerVO.getSysMaintenance())) { if(!StringUtils.isEmpty(siteManagerVO.getSysMaintenanceIp())) { if(!Arrays.stream(siteManagerVO.getSysMaintenanceIp().split(",")).anyMatch(userIP::equals)) { /* 점검중 */ return false; } } else { /* 점검중 */ return false; } } // if("PATH".equals(siteManagerVO.getSysMaintenance())) { // if("/web/main/mainPage.do".equals(request.getRequestURI())) { // /* 점검중 */ // return false; // } // } return true; } }