package kcc.web; import java.io.File; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; 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 java.util.stream.Collectors; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.annotation.Resource; 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 kcc.com.cmm.util.StringUtil; 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.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 kcc.com.cmm.ComDefaultCodeVO; import kcc.com.cmm.ComDefaultVO; import kcc.com.cmm.LoginVO; import kcc.com.cmm.service.CmmnDetailCode; import kcc.com.cmm.service.EgovCmmUseService; import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.FileVO; import kcc.com.cmm.util.WebUtil; import kcc.com.uss.ion.bnr.service.BannerVO; import kcc.com.uss.ion.bnr.service.EgovBannerService; import kcc.com.uss.ion.cnf.service.MetaTagManageService; import kcc.com.uss.ion.cyb.service.CyberAlertManageService; import kcc.com.uss.ion.cyb.service.CyberAlertManageVO; import kcc.com.uss.ion.fms.service.FmsFileVO; import kcc.com.uss.ion.pwm.service.EgovPopupManageService; import kcc.com.uss.ion.pwm.service.MainzoneVO; import kcc.com.uss.ion.pwm.service.PopupManageVO; import kcc.com.uss.ion.pwm.service.PopupzoneVO; import kcc.com.utl.fcc.service.EgovStringUtil; import kcc.let.cop.bbs.service.BoardMasterVO; import kcc.let.cop.bbs.service.BoardVO; import kcc.let.cop.bbs.service.EgovBBSAttributeManageService; import kcc.let.cop.bbs.service.EgovBBSManageService; import kcc.let.cop.bbs.service.SearchTotalVO; import kcc.let.solr.sys.service.ResearchService; import kcc.let.sts.cst.service.EgovConectStatsService; import kcc.let.sym.log.clg.service.EgovLoginLogService; import kcc.let.sym.log.clg.service.LoginLog; import kcc.let.sym.mnu.mcm.service.EgovMenuCreateManageService; import kcc.let.sym.mnu.mpm.service.EgovMenuManageService; import kcc.let.sym.mnu.mpm.service.MenuManageJTreeVO; import kcc.let.sym.mnu.mpm.service.MenuManageVO; import kcc.let.sym.prm.service.EgovProgrmManageService; import kcc.let.sym.prm.service.ProgrmManageVO; import kcc.let.sym.site.service.EgovSiteManagerService; import kcc.let.sym.site.service.SiteManagerVO; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uss.notify.service.NotifyManageService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; /** * 템플릿 메인 페이지 컨트롤러 클래스(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 { /** EgovProgrmManageService */ @Resource(name = "progrmManageService") private EgovProgrmManageService progrmManageService; /** EgovPropertyService */ @Resource(name = "propertiesService") protected EgovPropertyService propertiesService; /** * 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; //알림 서비스 @Resource(name = "NotifyManageService") private NotifyManageService notifyManageService; //강사 정보 @Resource(name="vEInstrService") private VEInstrService vEInstrService; @Resource(name = "vEPrcsAplctPrdService") private VEPrcsAplctPrdService vEPrcsAplctPrdService; @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; /** SSO return URL */ @Value("#{globalSettings['Globals.sso.returnSiteUrl']}") private String returnSiteUrlGlobal; @Value("#{globalSettings['Globals.sso.returnSiteCode']}") private String returnSiteCodeGlobal; /** SSO 회원관련 URL */ @Value("#{globalSettings['Globals.sso.joinUrl']}") private String joinUrl_Global; @Value("#{globalSettings['Globals.sso.modifyUrl']}") private String modifyUrl_Global; @Value("#{globalSettings['Globals.sso.idFindUrl']}") private String idFindUrl_Global; @Value("#{globalSettings['Globals.sso.pwFindUrl']}") private String pwFindUrl_Global; /** 구동 환경 */ @Value("#{property['Globals.prod.islocal']}") private String environment; @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) throws Exception{ //메인이미지 try { /** 메인존 */ model.addAttribute("mainzoneList", mainZone()); //PC /** 팝업 알림창괸리 */ model.addAttribute("popupList", popupList()); /** 팝업존 알림창괸리 */ model.addAttribute("popupzoneList", popupzoneList()); /** 게시판 조회 - 공지사항 */ Map noticeBbsList = noticeBbsList(); model.addAttribute("noticeBbsList", noticeBbsList.get("noticeBbsList")); model.addAttribute("noticeBbsUrl", noticeBbsList.get("noticeBbsUrl")); /** 게시판 조회 - 교육자료실 */ Map atchBbsList = atchBbsList(); model.addAttribute("atchBbsList", atchBbsList.get("atchBbsList")); model.addAttribute("atchBbsUrl", atchBbsList.get("atchBbsUrl")); /** 주요 교육일정 */ Map> eduAplctList = eduAplctList(); model.addAttribute("eduAplctList", eduAplctList.get("eduAplctList")); model.addAttribute("sspnIdtmtList", eduAplctList.get("sspnIdtmtList")); model.addAttribute("cmdTrgtList", eduAplctList.get("cmdTrgtList")); model.addAttribute("preventList", eduAplctList.get("preventList")); }catch(Exception ex) { ex.printStackTrace(); System.out.println(ex.getMessage()); } return "web/main/mainPage"; } /** * 사용자 상단 매뉴 */ @RequestMapping(value="/web/com/webCommonHeader.do") public String siteWebCommonHeader( @RequestParam Map commandMap, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model, HttpServletRequest request, HttpSession session) throws Exception { //로그인 권한정보 불러오기 LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; model.addAttribute("LoginVO", loginVO); String userAuthority = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority()); //권한별 메뉴표시 if(!userAuthority.equals("ROLE_ADMIN") && userAuthority != "") { menuManageVO.setAuthorCode(userAuthority); }else if(userAuthority.equals("ROLE_ADMIN")) { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); } else { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); } //대국민, 담당자일 경우 원뎁스 메뉴에 대시보드 링크를 걸기위해 권한 넘겨줌 model.addAttribute("auth", menuManageVO.getAuthorCode()); if("ROLE_USER_MANAGER".equals(menuManageVO.getAuthorCode())) { VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO(); vEInstrDetailVO.setUserId(loginVO.getUniqId()); vEInstrDetailVO = vEInstrService.selectDetail(vEInstrDetailVO); String instrDiv = ""; if("Y".equals(vEInstrDetailVO.getTngrInstrYn())){ instrDiv = "tngrInstrDiv"; } if("Y".equals(vEInstrDetailVO.getAdultInstrYn())) { instrDiv = "adultInstrDiv"; } if("Y".equals(vEInstrDetailVO.getTngrInstrYn()) && "Y".equals(vEInstrDetailVO.getAdultInstrYn())){ instrDiv = "doubleInstrDiv"; } model.addAttribute("instrDiv", instrDiv); } menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); //헤더 전체메뉴에 알림마당을 추가하기 위한 작업 //select문 selectMenuListJtreeWeb에 addmenu 변수를 이용하여 조건절에 알림마당 메뉴번호 추가 List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; MenuManageJTreeVO fullMenuVo = new MenuManageJTreeVO(); fullMenuVo.setAuthorCode(menuManageVO.getAuthorCode()); fullMenuVo.setAddMenu("9600000"); List fullMenuResultList = menuCreateManageService.selectMenuListJtreeWeb(fullMenuVo) ; // 메인 메뉴 청소년, 성인 글 색상 적용 // for(MenuManageJTreeVO empMenuManageJTreeVO : menuResultList) { // /*찾아가는 저작권교육 청소년*/ // if("99928000".equals(empMenuManageJTreeVO.getMenuNo())){ // if(empMenuManageJTreeVO.getMenuNm().contains("청소년")) { // empMenuManageJTreeVO.setMenuNm(empMenuManageJTreeVO.getMenuNm().replace("청소년", "청소년")); // } // } // /*찾아가는 저작권교육 성인*/ // if("99929000".equals(empMenuManageJTreeVO.getMenuNo())){ // if(empMenuManageJTreeVO.getMenuNm().contains("성인")) { // empMenuManageJTreeVO.setMenuNm(empMenuManageJTreeVO.getMenuNm().replace("성인", "성인")); // } // } // } List menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회 HashSet underMenuEmpty = new HashSet(); //2뎁스의 하위매뉴 없는것 조회 for(MenuManageJTreeVO menuManage : menuResultList){ if(menuManage.getDepths().equals("3")){ menuTwoExist.add(menuManage.getUpperMenuId()) ; } if(menuManage.getDepths().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("fullMenuResultList", fullMenuResultList); model.addAttribute("underMenuExist", underMenuExist); model.addAttribute("underMenuEmpty", underMenuEmpty); //자신의 위치 정보 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); //팝업존 > 원자력 탑메뉴 위 팝업존 /* 팝업 가져오기 */ /*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); }*/ //샘플테마사용시 고정 이미지 가져오기 SsoLoginVO ssoLoginVO = (SsoLoginVO)session.getAttribute("SSOLoginVO"); if(ssoLoginVO != null) { model.addAttribute("ssoLoginVO", ssoLoginVO); } String returnSiteUrl = returnSiteUrlGlobal; String returnSiteCode = returnSiteCodeGlobal; String joinUrl = joinUrl_Global; String modifyUrl = modifyUrl_Global; model.addAttribute("returnSiteUrl", (URLEncoder.encode(returnSiteUrl))); model.addAttribute("returnSiteCode", returnSiteCode); model.addAttribute("joinUrl", joinUrl); model.addAttribute("modifyUrl", modifyUrl); model.addAttribute("environment", environment); //로그인, 회원가입 URL 환경에 따른 구분 ex) local, dev, svr if(loginVO != null) { int cnt = notifyManageService.selectNotifyCnt(loginVO.getUniqId()); System.out.println("cnt : "+ cnt); model.addAttribute("notifyCnt", cnt); //로그인, 회원가입 URL 환경에 따른 구분 ex) local, dev, svr } 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 { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); //List menuResultList = menuCreateManageService.selectMenuListJtree(menuManageVO) ; menuManageVO.setSiteId(siteId); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; System.out.println("================================"); List menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회 HashSet underMenuEmpty = new HashSet(); //2뎁스의 하위매뉴 없는것 조회 for(MenuManageJTreeVO menuManage : menuResultList){ if(menuManage.getDepths().equals("3")){ menuTwoExist.add(menuManage.getUpperMenuId()) ; } if(menuManage.getDepths().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.getDepths().equals("1")){ oneDepth = new JSONObject(); twoArray = new JSONArray(); oneDepth.put("children", "1-1"); oneDepth.put("name", menuManageOne.getMenuNm()); for(MenuManageJTreeVO menuManageTwo : menuResultList){ if(menuManageTwo.getDepths().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, 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"); 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()); } //loginLogService.logInsertLoginLog(loginLog); loginLogService.logInsertLoginLogNewStep1(loginLog); } //오늘 접속 / 최종접속 LoginLog footerLog = new LoginLog(); footerLog = loginLogService.selectLogCnt(footerLog); model.addAttribute("footerLog", footerLog); } 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"); 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, ModelMap model, MenuManageJTreeVO menuManageVO) throws Exception { try { SiteManagerVO siteManagerVO = new SiteManagerVO(); //점검중 페이지 체크 siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO); if("Y".equals(siteManagerVO.getInspFlag() )){ //점검중 return "web/com/insp"; } model.addAttribute("siteManagerVO", siteManagerVO); //로그인 권한 정보 불러오기 LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String auth = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority()); //권한별 메뉴표시 if(!auth.equals("ROLE_ADMIN") && auth != "") { menuManageVO.setAuthorCode(auth); }else if(auth.equals("ROLE_ADMIN")) { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); } else { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); } MenuManageVO resultVO = new MenuManageVO(); MenuManageVO tempMenuManageVO = new MenuManageVO(); tempMenuManageVO.setSearchCondition("Y"); setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO ); List menuResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ; model.addAttribute("menuResultList", menuResultList); String pageUrl = request.getRequestURI().replaceAll(request.getContextPath(), ""); String pageUri = pageUrl.substring(0, pageUrl.lastIndexOf("/")); model.addAttribute("pageUri", pageUri); }catch(Exception ex) { ex.printStackTrace(); } 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) { System.out.println("Exception Occured!!!"); } 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.getDepths().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().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.getDepths().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.getDepths().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().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.getDepths().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()); System.out.println("url"); System.out.println(url); 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().replaceAll(request.getContextPath(), ""); System.out.println("===============menuUrlmenuUrlmenuUrl============"); System.out.println("menuUrl-1"); System.out.println(menuUrl); if(menuUrl.equals("/web/cop/org/selectOrgDetail.do")){ menuUrl = "/web/cop/org/selectOrgList.do" ; }else if(menuUrl.equals("/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflReg.do")){ //청소년 강사등록화면 메뉴명 전환 menuUrl = "/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do" ; }else if(menuUrl.equals("/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflRegRgstr.do")){ //청소년 강사 등록 요청 후 화면 menuUrl = "/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.do" ; }else if( menuUrl.equals("/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflRegMdfy.do") || menuUrl.equals("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy.do") ){ //청소년 강사등록화면 메뉴명 전환 menuUrl = "/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do" ; }else if(menuUrl.equals("/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndRslt.do")){ //청소년 강사등록화면 메뉴명 전환 menuUrl = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndList.do" ; }else if(menuUrl.equals("/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.do")){ //저작권체험교실 등록화면 메뉴명 전환 menuUrl = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide.do" ; } else if(menuUrl.equals("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do")){ //강사정보 상세화면 대시보드로 메뉴명 전환 menuUrl = "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do" ; }else if(menuUrl.equals("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy.do")){ //강사정보 수정화면 대시보드로 메뉴명 전환 menuUrl = "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do" ; }else if(menuUrl.equals("/web/ve/instr/adultVisitEdu/lctrInfo/lctrStngDetail.do")){ //강사정보 수정화면 대시보드로 메뉴명 전환 menuUrl = "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do" ; } else if(menuUrl.equals("/web/ve/instr/adultVisitEdu/lctrInfo/lctrStngDetailView.do")){ //강사정보 수정화면 대시보드로 메뉴명 전환 menuUrl = "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do" ; } else if(menuUrl.equals("/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.do")){ //강사정보 상세화면 대시보드로 메뉴명 전환 menuUrl = "/web/ve/instr/tngrVisitEdu/instrInfo/instrDashboard.do" ; }else if(menuUrl.equals("/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflMdfy.do")){ //강사정보 수정화면 대시보드로 메뉴명 전환 menuUrl = "/web/ve/instr/tngrVisitEdu/instrInfo/instrDashboard.do" ; }else if(menuUrl.equals("/web/ve/instr/tngrVisitEdu/lctrInfo/lctrStngReg.do")){ //강사정보 수정화면 대시보드로 메뉴명 전환 menuUrl = "/web/ve/instr/tngrVisitEdu/instrInfo/instrDashboard.do" ; } System.out.println("menuUrl-2"); System.out.println(menuUrl); // 상세화면 URL로 메뉴화면 매핑이 안되어, 문자열 치환으로 매핑... // 대국민 메뉴 Reg들은 메뉴를 등록했기때문에 예외 if (!menuUrl.equals("/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctReg.do") && !menuUrl.equals("/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg.do") && !menuUrl.equals("/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide.do") && !menuUrl.equals("/web/ve/aplct/otsdCprtnPrcs/lctrAplct/lctrAplctReg.do") //2023-0426 추가 내용 && !menuUrl.contains("/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctReg") && !menuUrl.contains("/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg") && !menuUrl.contains("/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide") && !menuUrl.contains("/web/ve/aplct/otsdCprtnPrcs/lctrAplct/lctrAplctReg") ) { String strUrl = menuUrl/*.replace("Info", "List")*/ .replace("CmpltDetail", "List") .replace("Detail", "List") .replace("Mdfy", "List") .replace("CmpltReg", "List") .replace("Reg", "List") .replace("Guide", "List") /*.replace("Regist", "List")*/ .replace("Article", "List") .replace("Inqire", "List") .replace("addFcltMgr", "fcltMgrList") .replace("mainzoneModify", "mainzoneList"); menuUrl = strUrl; System.out.println("strUrl :: "+ strUrl); } //2023-0426 추가 내용 //청소년 강사 상세 보기 화면 if(menuUrl.contains("/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflList.jsp")){ //강사정보 상세화면 대시보드로 메뉴명 전환 menuUrl = menuUrl.replaceAll("instrPrflList", "instrDashboard"); //성인 강사 상세 보기 화면 }else if(menuUrl.contains("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflList.jsp")){ //강사정보 상세화면 대시보드로 메뉴명 전환 menuUrl = menuUrl.replaceAll("instrPrflList", "instrDashboard"); }else if(menuUrl.contains("/web/ve/instr/adultVisitEdu/lctrInfo/lctrStngList.jsp")){ //강사정보 상세화면 대시보드로 메뉴명 전환 menuUrl = menuUrl.replaceAll("lctrInfo/lctrStngList", "instrInfo/instrDashboard"); }else if(menuUrl.contains("/web/ve/instr/adultVisitEdu/lctrInfo/lctrStngListView.jsp")){ //강사정보 상세화면 대시보드로 메뉴명 전환 menuUrl = menuUrl.replaceAll("lctrInfo/lctrStngListView", "instrInfo/instrDashboard"); } System.out.println("menuUrl-3"); System.out.println(menuUrl); String s_menuUrl = ""; if(menuUrl.contains("jsp")) { try { s_menuUrl = menuUrl.split("jsp")[1]; menuUrl = s_menuUrl.substring(1); }catch(Exception ex) { ex.printStackTrace(); } } ComDefaultVO searchVO = new ComDefaultVO(); searchVO.setSearchKeyword(menuUrl); ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl4JSP(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, HttpSession session, ModelMap model) throws Exception { //로그인 권한 정보 불러오기 LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String auth = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority()); //권한별 메뉴표시 if(!auth.equals("ROLE_ADMIN") && auth != "") { menuManageVO.setAuthorCode(auth); }else if(auth.equals("ROLE_ADMIN")) { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); } else { menuManageVO.setAuthorCode("ROLE_ANONYMOUS"); } //자신의 위치 정보 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 ); String pageUrl = request.getRequestURI().replaceAll(request.getContextPath(), ""); String pageUri = pageUrl.substring(0, pageUrl.lastIndexOf("/")); model.addAttribute("pageUri", pageUri); String pageUriLast = pageUrl.substring(pageUrl.lastIndexOf("/"), pageUrl.length()); model.addAttribute("pageUriLast", pageUriLast); String queryString = request.getQueryString(); model.addAttribute("queryString", queryString); //메뉴번호 넘겨주기 model.addAttribute("menuNo", menuManageVO.getMenuNo()); //메뉴 번호 세션에 담아주기 -- noti 저장용으로 사용 20220223 우영두 추가 session.setAttribute("menuNo", menuManageVO.getMenuNo()); //현재 선택 메뉴 1뎁스 2뎁스 menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWeb(menuManageVO) ; //현재 선택 메뉴 1뎁스와 하위 2뎁 메뉴들 전부 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.getDepths().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().equals("4")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showFourDepthMenu.add(tempLeftMenu); } } } } menuManageVO.setMenuUserType(menuManageVO.getMenuUserType()); List menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ; for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스 if(tempResultVo.getDepths().equals("1")){ showOneDepthMenu.add(tempResultVo); } } //매뉴구조도 텍스트 String menuText = ""; menuText += "
  •  
  • " ; 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" ; //임의의 파일 System.out.println("Exception Occured!!!"); } 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); for(MenuManageJTreeVO treeVO : menuResultList) { if(!"1".equals(treeVO.getDepths())) { continue; } for(MenuManageJTreeVO treeLowVO : menuResultList) { if(treeVO.getMenuNo().equals(treeLowVO.getUpperMenuId())) { treeVO.setUrl(treeLowVO.getUrl()); break; } } } model.addAttribute("menuResultList", menuResultList); 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(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.getDepths().equals("3")){ menuTwoExist.add(menuManage.getUpperMenuId()) ; } if(menuManage.getDepths().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.getDepths().equals("2")){ for(MenuManageJTreeVO tempCurrentTwoMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentTwoMenu.getMenuNo())){ showTwoDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().equals("3")){ for(MenuManageJTreeVO tempCurrentThreeMenu : menuCurrentResultList){ if(tempLeftMenu.getUpperMenuId().equals(tempCurrentThreeMenu.getMenuNo())){ showThreeDepthMenu.add(tempLeftMenu); } } } if(tempLeftMenu.getDepths().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.getDepths().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="/kcc/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="/kcc/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) { System.out.println("file Exception Error"); } 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) { System.out.println("UnsupportedEncodingException Occured!!!"); } //한글깨짐방지 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) { System.out.println("UnsupportedEncodingException Occured!!!"); } } // 메일의 본문 내용 설정 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; } private List mainZone() 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.setUseYn("Y"); //사용하는것만 mainzoneVO.setDeviceType("P"); //PC //디자인이 슬라이드가 아닌 한개의 메인화면으로 변경되어 수정 mainzoneVO.setRecordCountPerPage(1); List mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지 return mainzoneList; } private List popupList() throws Exception{ PopupManageVO popupManageVO = new PopupManageVO(); popupManageVO.setRecordCountPerPage(10); //10개만 popupManageVO.setNtceAt("Y"); //사용만 popupManageVO.setMainPageFlag("Y") ; //메인화면의 용도(시작일 종료일 사이 조회) List popupList = egovPopupManageService.selectPopupMainList(popupManageVO); return popupList; } private List popupzoneList() throws Exception{ PopupzoneVO popupzoneVo = new PopupzoneVO(); popupzoneVo.setFirstIndex(0); popupzoneVo.setSeCd("02"); //좌측팝업 popupzoneVo.setUseYn("Y"); List popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo); return popupzoneList; } private Map noticeBbsList() throws Exception{ Map returnMap = new HashMap(); BoardVO boardVO = new BoardVO(); boardVO.setRecordCountPerPage(5); //게시글 수 boardVO.setFirstIndex(0); // boardVO.setBbsId("BBSMSTR_000000000010"); List vo = bbsMngService.selectMainBoardRecent(boardVO); //게시글 내용 html 태그 삭제 for(int i=0; i]*)?(\\s)*(/)?>", "").split("<")[0]); } returnMap.put("noticeBbsList", vo); returnMap.put("noticeBbsUrl", boardVO.getBbsId()); return returnMap; } private Map atchBbsList() throws Exception{ Map returnMap = new HashMap(); BoardVO boardVO_2 = new BoardVO(); boardVO_2.setRecordCountPerPage(5); //게시글 수 boardVO_2.setFirstIndex(0); // boardVO_2.setBbsId("BBSMSTR_000000000040"); List vo_2 = bbsMngService.selectMainBoardRecent(boardVO_2); //게시글 내용 html 태그 삭제 for(int i=0; i]*)?(\\s)*(/)?>", "").split("<")[0]); } returnMap.put("atchBbsList", vo_2); returnMap.put("atchBbsUrl", boardVO_2.getBbsId()); return returnMap; } private Map> eduAplctList() throws Exception{ VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); //1.pageing step1 PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(1); paginationInfo.setRecordCountPerPage(12); paginationInfo.setPageSize(12); //로그인 처리==================================== //1.pageing step1 //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 //paginationInfo.setRecordCountPerPage(10000); //2. pageing step2 vEPrcsDetailVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); vEPrcsDetailVO.setLastIndex(paginationInfo.getLastRecordIndex()); vEPrcsDetailVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); vEPrcsDetailVO.setSearchSortCnd("prcs_ord"); vEPrcsDetailVO.setSearchSortOrd("desc"); //기반강화 조회 // vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd); vEPrcsDetailVO.setUseYn("Y"); //공개 여부만 조회 List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectMainContent(); Map> returnMap = new HashMap>(); returnMap.put("eduAplctList", vEPrcsDetailVOList.stream().limit(Math.min(vEPrcsDetailVOList.size(), 4)).collect(Collectors.toList())); returnMap.put("sspnIdtmtList", vEPrcsDetailVOList.stream().filter(t -> "60".equals(t.getLctrDivCd())).collect(Collectors.toList())); returnMap.put("cmdTrgtList", vEPrcsDetailVOList.stream().filter(t -> "70".equals(t.getLctrDivCd())).collect(Collectors.toList())); returnMap.put("preventList", vEPrcsDetailVOList.stream().filter(t -> "80".equals(t.getLctrDivCd())).collect(Collectors.toList())); return returnMap; } }