koipa_edu_2025-1/src/main/java/kcc/web/MainController.java
2025-11-20 14:35:18 +09:00

2140 lines
91 KiB
Java

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.*;
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
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011.08.31 JJY 최초 생성
*
* </pre>
*/
@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;
/** 구동 환경 */
@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<String, Object> 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<String, Object> map = bbsMngService.selectBoardArticles(boardVO, "BBSA02");
model.addAttribute("notiList", map.get("resultList"));
/*boardVO.setBbsId("BBSMSTR_000000000101"); //입찰공고
Map<String, Object> 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<BannerVO> bannerVOList= (ArrayList<BannerVO>) 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 {
// 문자열을 바이트로 변환하고 Base64로 인코딩합니다.
byte[] encodedBytes = Base64.getEncoder().encode("5a2a72e2-16ce-420c-8816-57b3dda0e231:75f6288bae324cd6bd112e82d693aa01".getBytes());
// 바이트 배열을 다시 문자열로 변환하여 출력합니다.
String encodedString = new String(encodedBytes);
System.out.println("encodedString :: " + encodedString);
/** 메인존 */
model.addAttribute("mainzoneList", mainZone()); //PC
/** 팝업 알림창괸리 */
model.addAttribute("popupList", popupList());
/** 팝업존 알림창괸리 */
model.addAttribute("popupzoneList", popupzoneList());
/** 게시판 조회 - 공지사항 */
Map<String, Object> noticeBbsList = noticeBbsList();
model.addAttribute("noticeBbsList", noticeBbsList.get("noticeBbsList"));
model.addAttribute("noticeBbsUrl", noticeBbsList.get("noticeBbsUrl"));
/** 게시판 조회 - 교육자료실 */
Map<String, Object> atchBbsList = atchBbsList();
model.addAttribute("atchBbsList", atchBbsList.get("atchBbsList"));
model.addAttribute("atchBbsUrl", atchBbsList.get("atchBbsUrl"));
/** 주요 교육일정 */
Map<String, List<VEPrcsDetailVO>> 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<String, Object> 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<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
MenuManageJTreeVO fullMenuVo = new MenuManageJTreeVO();
fullMenuVo.setAuthorCode(menuManageVO.getAuthorCode());
fullMenuVo.setAddMenu("9600000");
List<MenuManageJTreeVO> fullMenuResultList = menuCreateManageService.selectMenuListJtreeWeb(fullMenuVo) ;
// 메인 메뉴 청소년, 성인 글 색상 적용
// for(MenuManageJTreeVO empMenuManageJTreeVO : menuResultList) {
// /*찾아가는 저작권교육 청소년*/
// if("99928000".equals(empMenuManageJTreeVO.getMenuNo())){
// if(empMenuManageJTreeVO.getMenuNm().contains("청소년")) {
// empMenuManageJTreeVO.setMenuNm(empMenuManageJTreeVO.getMenuNm().replace("청소년", "<span class='menu_link_br'>청소년</span>"));
// }
// }
// /*찾아가는 저작권교육 성인*/
// if("99929000".equals(empMenuManageJTreeVO.getMenuNo())){
// if(empMenuManageJTreeVO.getMenuNm().contains("성인")) {
// empMenuManageJTreeVO.setMenuNm(empMenuManageJTreeVO.getMenuNm().replace("성인", "<span class='menu_link_br'>성인</span>"));
// }
// }
// }
List<String> menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회
HashSet<String> underMenuEmpty = new HashSet<String>(); //2뎁스의 하위매뉴 없는것 조회
for(MenuManageJTreeVO menuManage : menuResultList){
if(menuManage.getDepths().equals("3")){
menuTwoExist.add(menuManage.getUpperMenuId()) ;
}
if(menuManage.getDepths().equals("2")){
underMenuEmpty.add(menuManage.getMenuNo());
}
}
HashSet<String> underMenuExist = new HashSet<String>(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<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>(); //자신의 위치
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);
}
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<String, Object> commandMap, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
ModelMap model, HttpServletRequest request)
throws Exception {
menuManageVO.setAuthorCode("ROLE_ANONYMOUS");
menuManageVO.setMenuUserType(menuManageVO.getMenuUserType());
//List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtree(menuManageVO) ;
menuManageVO.setSiteId(siteId);
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
System.out.println("================================");
List<String> menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회
HashSet<String> underMenuEmpty = new HashSet<String>(); //2뎁스의 하위매뉴 없는것 조회
for(MenuManageJTreeVO menuManage : menuResultList){
if(menuManage.getDepths().equals("3")){
menuTwoExist.add(menuManage.getUpperMenuId()) ;
}
if(menuManage.getDepths().equals("2")){
underMenuEmpty.add(menuManage.getMenuNo());
}
}
HashSet<String> underMenuExist = new HashSet<String>(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<String, Object> commandMap,
ModelMap model)
throws Exception {
return "web/com/webCommonHeader";
}
/**
* 사용자 footer
*/
@RequestMapping(value="/web/com/webCommonFooter.do")
public String siteWebCommonFooter(
@RequestParam Map<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ;
String pageUrl = request.getRequestURI().replaceAll(request.getContextPath(), "");
if(menuResultList.size() < 1 && pageUrl.contains("/web/user/login/ssoLogin.do")){
MenuManageJTreeVO tmpMenuManageJTreeVO = new MenuManageJTreeVO();
tmpMenuManageJTreeVO.setDepths("1");
tmpMenuManageJTreeVO.setMenuNo("20251119");
tmpMenuManageJTreeVO.setMenuNm("로그인");
menuResultList.add(tmpMenuManageJTreeVO);
tmpMenuManageJTreeVO = new MenuManageJTreeVO();
tmpMenuManageJTreeVO.setDepths("2");
tmpMenuManageJTreeVO.setUrl("/web/user/login/ssoLogin.do");
tmpMenuManageJTreeVO.setUpperMenuId("20251119");
menuResultList.add(tmpMenuManageJTreeVO);
}
model.addAttribute("menuResultList", menuResultList);
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<String, Object> commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
ModelMap model)
throws Exception {
//자신의 위치 정보
List<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>(); //자신의 위치
List<MenuManageJTreeVO> menuLeftResultList = new ArrayList<MenuManageJTreeVO>(); //자신이 속한 위치
List<MenuManageJTreeVO> menuUnderResultList = new ArrayList<MenuManageJTreeVO>(); //한단계 하위 위치
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<MenuManageJTreeVO> showOneDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showTwoDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showThreeDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showFourDepthMenu = new ArrayList<MenuManageJTreeVO>();
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<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스
if(tempResultVo.getDepths().equals("1")){
showOneDepthMenu.add(tempResultVo);
}
}
//매뉴구조도 텍스트
String menuText = "";
menuText += "<li class='home'>&nbsp;</li>" ;
if(request.getRequestURI().contains("/eng")){ //영문사이트
int i = 0;
for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){
if(i !=0){
menuText += "<li>&nbsp;&gt; "+menuTextVo.getMenuNm()+"</li>" ;
}
i= i+1;
}
}else{
for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){
menuText += "<li>&nbsp;&gt; "+menuTextVo.getMenuNm()+"</li>" ;
}
}
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<String, Object> commandMap, HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
ModelMap model)
throws Exception {
//자신의 위치 정보
List<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>(); //자신의 위치
List<MenuManageJTreeVO> menuLeftResultList = new ArrayList<MenuManageJTreeVO>(); //자신이 속한 위치
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<MenuManageJTreeVO> showOneDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showTwoDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showThreeDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showFourDepthMenu = new ArrayList<MenuManageJTreeVO>();
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<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스
if(tempResultVo.getDepths().equals("1")){
showOneDepthMenu.add(tempResultVo);
}
}
//매뉴구조도 텍스트
String menuText = "";
menuText += "<li class='home'>&nbsp;</li>" ;
for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){
menuText += "<li>&nbsp;&gt; "+menuTextVo.getMenuNm()+"</li>" ;
}
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<String, Object> 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")
&& !menuUrl.contains("/web/my/myQnaMngRegist.do")
) {
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<String, Object> 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<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>(); //자신의 위치
List<MenuManageJTreeVO> menuLeftResultList = new ArrayList<MenuManageJTreeVO>(); //자신이 속한 위치
List<MenuManageJTreeVO> menuUnderResultList = new ArrayList<MenuManageJTreeVO>(); //한단계 하위 위치
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<MenuManageJTreeVO> showOneDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showTwoDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showThreeDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showFourDepthMenu = new ArrayList<MenuManageJTreeVO>();
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<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스
if(tempResultVo.getDepths().equals("1")){
showOneDepthMenu.add(tempResultVo);
}
}
//매뉴구조도 텍스트
String menuText = "";
menuText += "<li class='home'>&nbsp;</li>" ;
for(MenuManageJTreeVO menuTextVo : menuCurrentResultList){
menuText += "<li>&nbsp;&gt; "+menuTextVo.getMenuNm()+"</li>" ;
}
//메뉴별 비주얼 이미지가져오기
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<String, Object> 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<MenuManageJTreeVO> 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<String, Object> 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<String, Object> map = bbsMngService.selectBoardTotalSearch(boardVO);
List<SearchTotalVO> resultList = new ArrayList<SearchTotalVO>();
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<String, Object> 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<String, Object> 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<String, Object> commandMap,
HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
ModelMap model)
throws Exception {
menuManageVO.setAuthorCode("ROLE_ANONYMOUS");
menuManageVO.setMenuUserType(menuManageVO.getMenuUserType());
//List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtree(menuManageVO) ;
menuManageVO.setSiteId(siteId);
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
List<String> menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회
HashSet<String> underMenuEmpty = new HashSet<String>(); //2뎁스의 하위매뉴 없는것 조회
for(MenuManageJTreeVO menuManage : menuResultList){
if(menuManage.getDepths().equals("3")){
menuTwoExist.add(menuManage.getUpperMenuId()) ;
}
if(menuManage.getDepths().equals("2")){
underMenuEmpty.add(menuManage.getMenuNo());
}
}
HashSet<String> underMenuExist = new HashSet<String>(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<String, Object> commandMap,
HttpServletRequest request, @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
ModelMap model)
throws Exception {
//자신의 위치 정보
List<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>(); //자신의 위치
List<MenuManageJTreeVO> menuLeftResultList = new ArrayList<MenuManageJTreeVO>(); //자신이 속한 위치
List<MenuManageJTreeVO> menuUnderResultList = new ArrayList<MenuManageJTreeVO>(); //한단계 하위 위치
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<MenuManageJTreeVO> showOneDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showTwoDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showThreeDepthMenu = new ArrayList<MenuManageJTreeVO>();
List<MenuManageJTreeVO> showFourDepthMenu = new ArrayList<MenuManageJTreeVO>();
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<MenuManageJTreeVO> 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<FmsFileVO> fmsFileList = new ArrayList<FmsFileVO>();
model.addAttribute("fmsFileList", fmsFileList); //fms파일정보
List<FmsFileVO> 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<FileVO> result = null;
String uploadFolder = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
FileVO vo = null;
String realFileLoc = "" ;
if (!files.isEmpty()){
result = fileUtil.parseFileInf(files, "MAIL_", 0, "", uploadFolder, "");
Iterator<FileVO> 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)", "<br />"), "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<String, Object> noticeBbsList() throws Exception{
Map<String, Object> returnMap = new HashMap<String, Object>();
BoardVO boardVO = new BoardVO();
boardVO.setRecordCountPerPage(5); //게시글 수
boardVO.setFirstIndex(0); //
boardVO.setBbsId("BBSMSTR_000000000010");
List<BoardVO> vo = bbsMngService.selectMainBoardRecent(boardVO);
//게시글 내용 html 태그 삭제
for(int i=0; i<vo.size(); i++) {
vo.get(i).setNttCn(vo.get(i).getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0]);
}
returnMap.put("noticeBbsList", vo);
returnMap.put("noticeBbsUrl", boardVO.getBbsId());
return returnMap;
}
private Map<String, Object> atchBbsList() throws Exception{
Map<String, Object> returnMap = new HashMap<String, Object>();
BoardVO boardVO_2 = new BoardVO();
boardVO_2.setRecordCountPerPage(5); //게시글 수
boardVO_2.setFirstIndex(0); //
boardVO_2.setBbsId("BBSMSTR_000000000040");
List<BoardVO> vo_2 = bbsMngService.selectMainBoardRecent(boardVO_2);
//게시글 내용 html 태그 삭제
for(int i=0; i<vo_2.size(); i++) {
vo_2.get(i).setNttCn(vo_2.get(i).getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0]);
}
returnMap.put("atchBbsList", vo_2);
returnMap.put("atchBbsUrl", boardVO_2.getBbsId());
return returnMap;
}
private Map<String, List<VEPrcsDetailVO>> 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<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectMainContent();
Map<String, List<VEPrcsDetailVO>> returnMap = new HashMap<String, List<VEPrcsDetailVO>>();
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;
}
}