1444 lines
57 KiB
Java
1444 lines
57 KiB
Java
package kcc.web;
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.math.BigDecimal;
|
|
import java.sql.Timestamp;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.LocalDate;
|
|
import java.time.ZoneId;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
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.Session;
|
|
import javax.mail.Transport;
|
|
import javax.mail.internet.InternetAddress;
|
|
import javax.mail.internet.MimeBodyPart;
|
|
import javax.mail.internet.MimeMessage;
|
|
import javax.mail.internet.MimeMultipart;
|
|
import javax.mail.internet.MimeUtility;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
import org.apache.ibatis.annotations.Case;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
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 kcc.com.cmm.CmmUtil;
|
|
import kcc.com.cmm.ComDefaultVO;
|
|
import kcc.com.cmm.LoginVO;
|
|
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.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.sts.cst.service.EgovConectStatsService;
|
|
import kcc.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService;
|
|
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 seed.com.gtm.board.CaseBoardService;
|
|
import seed.com.gtm.exam.ExamBoardService;
|
|
import seed.com.gtm.faqbbs.faqBpardService;
|
|
import seed.utils.SeedConstants;
|
|
|
|
/**
|
|
* 템플릿 메인 페이지 컨트롤러 클래스(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;
|
|
|
|
/** 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;
|
|
|
|
@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;
|
|
|
|
@Resource(name = "CmmnDetailCodeManageService")
|
|
private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService;
|
|
|
|
@Autowired
|
|
private CaseBoardService caseBoardService;
|
|
|
|
@Autowired
|
|
private faqBpardService faqBoardservice;
|
|
|
|
@Autowired
|
|
private ExamBoardService examBoardService;
|
|
|
|
@RequestMapping(value = "/web/main/mainPage.do")
|
|
public String siteMainPage(HttpServletRequest request, ModelMap model, HttpSession session) throws Exception {
|
|
|
|
/** 메인비주얼 */
|
|
model.addAttribute("mainzoneImg", this.mainzone()); // PC
|
|
|
|
/** 팝업 괸리 */
|
|
model.addAttribute("popupList", this.Popup());
|
|
|
|
/** 알림창괸리 */
|
|
model.addAttribute("popupzoneImg", this.popupzone());
|
|
|
|
/** 배너괸리 */
|
|
model.addAttribute("bannerList", this.banner());
|
|
|
|
/** 공지사항 */
|
|
model.addAttribute("noticeList", this.bbsList("notice", 0, 5));
|
|
|
|
/** 뉴스레터 */
|
|
model.addAttribute("newsLetterList", this.bbsList("news", 0, 2));
|
|
|
|
/** 뉴스레터 */
|
|
model.addAttribute("faqList", this.faqList());
|
|
|
|
model.addAttribute("examList", this.examList());
|
|
|
|
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;
|
|
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");
|
|
}
|
|
|
|
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO);
|
|
menuDepth2ChildCnt(menuResultList);
|
|
|
|
model.addAttribute("menuResultList", menuResultList);
|
|
|
|
|
|
|
|
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");
|
|
|
|
Object obj = EgovUserDetailsHelper.getAuthenticatedUser();
|
|
|
|
if (obj != null && !"anonymousUser".equals(obj)) {
|
|
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(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
|
|
HttpServletRequest request, @RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception {
|
|
|
|
// 로그인 권한정보 불러오기
|
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()
|
|
? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser()
|
|
: null;
|
|
String userAuthority = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority());
|
|
|
|
// 권한별 메뉴표시
|
|
if (!userAuthority.equals("ROLE_ADMIN")
|
|
/* && !userAuthority.equals("ROLE_ADR_ADMIN") */
|
|
&& userAuthority != "") {
|
|
menuManageVO.setAuthorCode(userAuthority);
|
|
} else if (userAuthority.equals("ROLE_ADMIN") || userAuthority.equals("ROLE_ADR_ADMIN")) {
|
|
menuManageVO.setAuthorCode("ROLE_ANONYMOUS");
|
|
} else {
|
|
menuManageVO.setAuthorCode("ROLE_ANONYMOUS");
|
|
}
|
|
// 대국민, 조정위원일 경우 원뎁스 메뉴에 대시보드 링크를 걸기위해 권한 넘겨줌
|
|
model.addAttribute("auth", menuManageVO.getAuthorCode());
|
|
|
|
menuManageVO.setMenuUserType(menuManageVO.getMenuUserType());
|
|
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);
|
|
|
|
// 자신의 위치 정보
|
|
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);
|
|
|
|
// SiteManagerVO siteManagerVO = new SiteManagerVO();
|
|
// 점검중 페이지 체크
|
|
// siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO);
|
|
// if("Y".equals(siteManagerVO.getInspFlag() )){ //점검중
|
|
// return "web/com/insp";
|
|
// }
|
|
// SSO 토큰 유효시간 timeout 시 메인페이지로 이동
|
|
// if(!"".equals(request.getSession().getAttribute("SsoLogout"))) {
|
|
// if(request.getSession().getAttribute("SsoLogout") != null) {
|
|
// request.removeAttribute("SsoLogout");
|
|
// return "redirect:/";
|
|
// }
|
|
// }
|
|
// model.addAttribute("siteManagerVO", siteManagerVO);
|
|
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";
|
|
}
|
|
|
|
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"));
|
|
|
|
searchVO.setSearchKeyword(url);
|
|
ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO);
|
|
if (null != progrmManageVO) {
|
|
tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm());
|
|
}
|
|
} else { // nttId 통합검색시
|
|
|
|
BoardVO tempBoardVO = new BoardVO();
|
|
tempBoardVO.setNttId(Integer.parseInt((String) commandMap.get("nttId")));
|
|
BoardMasterVO bmVO = bbsAttrbService.selectBbsIdByNttId(tempBoardVO);
|
|
ComDefaultVO searchVO = new ComDefaultVO();
|
|
String url = progrmManageService.getBbsUrlByNttId(bmVO == null ? "" : bmVO.getBbsId());
|
|
|
|
searchVO.setSearchKeyword(url);
|
|
ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO);
|
|
if (null != progrmManageVO) {
|
|
tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm());
|
|
}
|
|
|
|
}
|
|
} else { // ajax 로 검색시
|
|
// 일반 프로그램시
|
|
if (commandMap.get("url") != null) {
|
|
String menuUrl = request.getRequestURI();
|
|
if (menuUrl.equals("/web/cop/org/selectOrgDetail.do")) {
|
|
menuUrl = "/web/cop/org/selectOrgList.do";
|
|
}
|
|
/* 메뉴에 표시되는 방법 */
|
|
else if (menuUrl.equals("/web/kccadr/adjstExpDetail/adjstReqStatusDetail.do") // 체험하기
|
|
|| menuUrl.equals("/web/kccadr/adjstExp/adjstIncidentList.do")
|
|
|| menuUrl.equals("/web/kccadr/adjstExpDetail/adjstIncidentEndDetail.do")) { // 체험하기
|
|
menuUrl = "/web/kccadr/adjstExp/adjstExpMainPage.do";
|
|
}
|
|
/* 분쟁조정 상담 > 무료법률 상담 */
|
|
else if(menuUrl.contains("/web/user/lawCounsel/case/02/159/step")) {
|
|
menuUrl = "/web/user/lawCounsel/case/02/159/step01.do";
|
|
}
|
|
|
|
|
|
// 상세화면 URL로 메뉴화면 매핑이 안되어, 문자열 치환으로 매핑...
|
|
String strUrl = menuUrl/* .replace("Info", "List") */
|
|
.replace("Detail", "List")
|
|
/* .replace("Regist", "List") */
|
|
.replace("Article", "List").replace("Inqire", "List").replace("addFcltMgr", "fcltMgrList")
|
|
.replace("mainzoneModify", "mainzoneList");
|
|
menuUrl = strUrl;
|
|
|
|
ComDefaultVO searchVO = new ComDefaultVO();
|
|
searchVO.setSearchKeyword(menuUrl);
|
|
ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO);
|
|
if (null != progrmManageVO) {
|
|
tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm());
|
|
}
|
|
} else { // 조직도 상세
|
|
String menuUrl = request.getRequestURI();
|
|
if (menuUrl.equals("/web/cop/org/selectOrgDetail.do")) {
|
|
menuUrl = "/web/cop/org/selectOrgList.do";
|
|
ComDefaultVO searchVO = new ComDefaultVO();
|
|
searchVO.setSearchKeyword(menuUrl);
|
|
ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO);
|
|
if (null != progrmManageVO) {
|
|
tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!"dir".equals(tempMenuManageVO.getSearchKeyword())) {
|
|
resultVO = menuManageService.selectMenuManage(tempMenuManageVO);
|
|
}
|
|
|
|
// menuManageVO.setAuthorCode("ROLE_ANONYMOUS");
|
|
if (resultVO != null) {
|
|
menuManageVO.setMenuNo(resultVO.getMenuNo() + "");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 사용자 페이지의 네비 상단 매뉴
|
|
*/
|
|
@RequestMapping(value = "/web/com/naviWrap.do")
|
|
public String siteWebCommonNaviWrap(@RequestParam Map<String, Object> commandMap, HttpServletRequest request,
|
|
@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model) throws Exception {
|
|
|
|
// 전자조정 시작
|
|
// 아래 처리중 중간네비 메뉴 조회를 위해 with recurseive 중첩절을 쓰는 쿼리가 있음으로, 큐브리드 쿼리화 필요
|
|
|
|
// 로그인 권한 정보 불러오기
|
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()
|
|
? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser()
|
|
: null;
|
|
String auth = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority());
|
|
|
|
if (auth.equals("")) {
|
|
|
|
auth = "ROLE_ANONYMOUS";
|
|
|
|
}
|
|
|
|
// 현재 로그인한 권한으로 셋팅해준다.
|
|
menuManageVO.setAuthorCode(auth);
|
|
|
|
// 자신의 위치 정보
|
|
List<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>(); // 자신의 위치
|
|
List<MenuManageJTreeVO> menuLeftResultList = 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);
|
|
|
|
List<MenuManageJTreeVO> showOneDepthMenu = new ArrayList<MenuManageJTreeVO>();
|
|
List<MenuManageJTreeVO> showTwoDepthMenu = 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);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
menuManageVO.setAuthorCode(auth);
|
|
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("topMenuId", topMenuId);
|
|
// model.addAttribute("subMenuFile", subMenuFile);
|
|
// model.addAttribute("pozNmText", pozNmText);
|
|
//
|
|
// model.addAttribute("menuText", menuText);
|
|
|
|
model.addAttribute("showOneDepthMenu", showOneDepthMenu);
|
|
model.addAttribute("showTwoDepthMenu", showTwoDepthMenu);
|
|
|
|
// model.addAttribute("showThreeDepthMenu", showThreeDepthMenu);
|
|
// model.addAttribute("showFourDepthMenu", showFourDepthMenu);
|
|
// model.addAttribute("menuUnderResultList", menuUnderResultList); //하단매뉴
|
|
|
|
model.addAttribute("menuCurrentResultList", menuCurrentResultList);
|
|
model.addAttribute("menuLeftResultList", menuLeftResultList);
|
|
|
|
// model.addAttribute("menuResultList", menuResultList);
|
|
|
|
// 아래 처리중 중간네비 메뉴 조회를 위해 with recurseive 중첩절을 쓰는 쿼리가 있음으로, 큐브리드 쿼리화 필요
|
|
// 전자조정 종료
|
|
|
|
return "web/com/webCommonNaviWrap";
|
|
|
|
}
|
|
|
|
/**
|
|
* 사용자 좌측 매뉴
|
|
*/
|
|
@RequestMapping(value = "/web/com/leftMenu.do")
|
|
public String webCommonLeftMenu(HttpServletRequest request,
|
|
@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model,
|
|
@RequestParam Map<String, Object> commandMap) throws Exception {
|
|
|
|
// 로그인 권한정보 불러오기
|
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()
|
|
? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser()
|
|
: null;
|
|
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");
|
|
}
|
|
|
|
// 자신의 위치 정보
|
|
List<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>();
|
|
List<MenuManageJTreeVO> whereAmIList = new ArrayList<MenuManageJTreeVO>();
|
|
MenuManageVO resultVO = new MenuManageVO();
|
|
MenuManageVO tempMenuManageVO = new MenuManageVO();
|
|
tempMenuManageVO.setSearchCondition("Y");
|
|
setViewMenu(request, commandMap, tempMenuManageVO, resultVO, menuManageVO);
|
|
menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWebCustom(menuManageVO);
|
|
MenuManageJTreeVO whereAmIVO = new MenuManageJTreeVO();
|
|
if (menuCurrentResultList != null && menuCurrentResultList.size() > 0) {
|
|
whereAmIVO = menuCurrentResultList.get(0);
|
|
whereAmIVO.setAuthorCode(menuManageVO.getAuthorCode());
|
|
whereAmIList = menuCreateManageService.selectMenuListJtreeWebCustom(whereAmIVO);
|
|
}
|
|
|
|
List<Map<String, Object>> depth2CntList = new ArrayList<Map<String, Object>>();
|
|
for(MenuManageJTreeVO tmpVO : whereAmIList.stream().filter(t -> "2".equals(t.getDepth())).collect(Collectors.toList())) {
|
|
Map<String, Object> depth2Cnt = new HashMap<String, Object>();
|
|
Integer tmpInt = 0;
|
|
tmpInt = (int) whereAmIList.stream().filter(t ->
|
|
t.getDepth().equals("3")
|
|
&& tmpVO.getMenuNo().equals(t.getUpperMenuId())
|
|
).count();
|
|
depth2Cnt.put("menuNo", tmpVO.getMenuNo());
|
|
depth2Cnt.put("cnt", tmpInt);
|
|
|
|
depth2CntList.add(depth2Cnt);
|
|
}
|
|
|
|
model.addAttribute("depth2CntList", depth2CntList);
|
|
|
|
model.addAttribute("whereAmIVO", whereAmIVO);
|
|
MenuManageJTreeVO whereAmIVO_dep2 = new MenuManageJTreeVO();
|
|
if (whereAmIList != null && whereAmIList.size() > 0) {
|
|
whereAmIVO_dep2 = whereAmIList.stream().filter(t ->
|
|
menuManageVO.getMenuNo().equals(t.getMenuNo())
|
|
).findFirst().get();
|
|
|
|
if("2".equals(whereAmIVO_dep2.getDepth())) {
|
|
model.addAttribute("whereAmIVO_dep2", whereAmIVO_dep2.getMenuNo());
|
|
}else {
|
|
model.addAttribute("whereAmIVO_dep2", whereAmIVO_dep2.getUpperMenuId());
|
|
}
|
|
}
|
|
model.addAttribute("whereAmIList", whereAmIList);
|
|
|
|
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO);
|
|
|
|
model.addAttribute("menuResultList", menuResultList);
|
|
|
|
return "web/com/webCommonLeftMenu";
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
@RequestMapping(value = "/web/kccadr/kccadrCom/kccadrConstantsJsp.do")
|
|
public String kccadrConstantsJsp() throws Exception {
|
|
|
|
return "web/kccadr/kccadrCom/kccadrConstantsJsp";
|
|
}
|
|
|
|
/**
|
|
* 사용자 퀵 매뉴
|
|
*/
|
|
@RequestMapping(value = "/web/com/quickWrap.do")
|
|
public String webCommonQuickMenu(ModelMap model) throws Exception {
|
|
|
|
return "web/com/webCommonQuickMenu";
|
|
}
|
|
|
|
/**
|
|
* 사용자 좌측 매뉴
|
|
*/
|
|
@RequestMapping(value = "/web/com/subVisual.do")
|
|
public String webCommonSubVisual(HttpServletRequest request,
|
|
@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model,
|
|
@RequestParam Map<String, Object> commandMap) throws Exception {
|
|
|
|
// 로그인 권한정보 불러오기
|
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()
|
|
? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser()
|
|
: null;
|
|
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");
|
|
}
|
|
|
|
// 자신의 위치 정보
|
|
List<MenuManageJTreeVO> menuCurrentResultList = new ArrayList<MenuManageJTreeVO>();
|
|
List<MenuManageJTreeVO> whereAmIList = new ArrayList<MenuManageJTreeVO>();
|
|
MenuManageVO resultVO = new MenuManageVO();
|
|
MenuManageVO tempMenuManageVO = new MenuManageVO();
|
|
tempMenuManageVO.setSearchCondition("Y");
|
|
setViewMenu(request, commandMap, tempMenuManageVO, resultVO, menuManageVO);
|
|
menuCurrentResultList = menuCreateManageService.selectMenuListCurrentJtreeWebCustom(menuManageVO);
|
|
MenuManageJTreeVO whereAmIVO = new MenuManageJTreeVO();
|
|
if (menuCurrentResultList != null && menuCurrentResultList.size() > 0) {
|
|
whereAmIVO = menuCurrentResultList.get(0);
|
|
whereAmIVO.setAuthorCode(menuManageVO.getAuthorCode());
|
|
whereAmIList = menuCreateManageService.selectMenuListJtreeWebCustom(whereAmIVO);
|
|
}
|
|
model.addAttribute("whereAmIVO", whereAmIVO);
|
|
|
|
return "web/com/webCommonSubVisual";
|
|
}
|
|
|
|
// 다수의 파일 첨부 파일을 로컬로 부터 읽어와서 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 void menuDepth2ChildCnt(List<MenuManageJTreeVO> menuResultList) {
|
|
List<MenuManageJTreeVO> list = new ArrayList<MenuManageJTreeVO>(menuResultList.stream().filter(t -> "2".equals(t.getDepths())).collect(Collectors.toList()));
|
|
for(MenuManageJTreeVO tmpVO : list) {
|
|
tmpVO.setChildMenuCnt(
|
|
new Long(menuResultList.stream()
|
|
.filter( t ->
|
|
tmpVO.getMenuNo().equals(t.getUpperMenuId())
|
|
)
|
|
.count()
|
|
).intValue()
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @methodName : mainzone
|
|
* @author : JunHo Lee
|
|
* @date : 2024.10.10
|
|
* @description :
|
|
* @return
|
|
*/
|
|
private EgovMap mainzone(){
|
|
/** EgovPropertyService.sample */
|
|
MainzoneVO mainzoneVO = new MainzoneVO();
|
|
mainzoneVO.setPageUnit(propertiesService.getInt("pageUnit"));
|
|
mainzoneVO.setPageSize(propertiesService.getInt("pageSize"));
|
|
|
|
CmmUtil.getPageing(mainzoneVO, 10);
|
|
/** pageing */
|
|
mainzoneVO.setUseYn("Y"); // 사용하는것만
|
|
mainzoneVO.setDeviceType("P"); // PC
|
|
List<EgovMap> mainzoneList = new ArrayList<>();
|
|
try {
|
|
mainzoneList = (List<EgovMap>)egovPopupManageService.selectMainzoneList(mainzoneVO);
|
|
} catch (Exception e) {
|
|
} // 상단메인 이미지
|
|
if(mainzoneList.size() > 0) {
|
|
mainzoneList.sort(Comparator.comparing((EgovMap map) -> Integer.valueOf(((BigDecimal) map.get("sort")).intValue())));
|
|
}
|
|
return mainzoneList.stream().findFirst().orElse(null);
|
|
}
|
|
|
|
/**
|
|
* @methodName : Popup
|
|
* @author : JunHo Lee
|
|
* @date : 2024.10.10
|
|
* @description :
|
|
* @return
|
|
*/
|
|
private List<?> Popup(){
|
|
PopupManageVO popupManageVO = new PopupManageVO();
|
|
popupManageVO.setRecordCountPerPage(10); // 10개만
|
|
popupManageVO.setNtceAt("Y"); // 사용만
|
|
popupManageVO.setMainPageFlag("Y"); // 메인화면의 용도(시작일 종료일 사이 조회)
|
|
List<?> popupList = new ArrayList<>();
|
|
try {
|
|
popupList = egovPopupManageService.selectPopupMainList(popupManageVO);
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
return popupList;
|
|
}
|
|
|
|
/**
|
|
* @methodName : popupzone
|
|
* @author : JunHo Lee
|
|
* @date : 2024.10.10
|
|
* @description :
|
|
* @return
|
|
*/
|
|
private EgovMap popupzone(){
|
|
/** 알림창괸리 */
|
|
PopupzoneVO popupzoneVo = new PopupzoneVO();
|
|
popupzoneVo.setFirstIndex(0);
|
|
popupzoneVo.setSeCd("02"); // 좌측팝업
|
|
popupzoneVo.setUseYn("Y");
|
|
popupzoneVo.setSearchSortCnd("MB.sort");
|
|
popupzoneVo.setSearchSortOrd("ASC");
|
|
|
|
List<EgovMap> popupzoneList = new ArrayList<>();
|
|
try {
|
|
popupzoneList = (List<EgovMap>)egovPopupManageService.selectPopupzoneList(popupzoneVo);
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
|
|
if(popupzoneList.size() > 0) {
|
|
popupzoneList.sort(Comparator.comparing((EgovMap map) -> Integer.valueOf(((BigDecimal) map.get("sort")).intValue())));
|
|
}
|
|
return popupzoneList.stream().findFirst().orElse(null);
|
|
}
|
|
|
|
/**
|
|
* @methodName : banner
|
|
* @author : JunHo Lee
|
|
* @date : 2024.10.10
|
|
* @description :
|
|
* @return
|
|
*/
|
|
private List<?> banner(){
|
|
BannerVO bannerVO = new BannerVO();
|
|
bannerVO.setFirstIndex(0);
|
|
bannerVO.setRecordCountPerPage(999);
|
|
|
|
List<BannerVO> bannerList = new ArrayList<>();
|
|
try {
|
|
bannerList = egovBannerService.selectBannerList(bannerVO);
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
return bannerList;
|
|
}
|
|
|
|
/**
|
|
* @methodName : bbsNoticeNews
|
|
* @author : JunHo Lee
|
|
* @date : 2024.10.10
|
|
* @description :
|
|
* @param boardIdx
|
|
* @param pageStart
|
|
* @param perPageNum
|
|
* @return
|
|
*/
|
|
private List<Map<String,Object>> bbsList(String boardIdx, int pageStart, int perPageNum){
|
|
Map<String,Object> paramMap = new HashMap<String, Object>();
|
|
//페이징 관련
|
|
paramMap.put("pageStart", pageStart);
|
|
paramMap.put("perPageNum", perPageNum);
|
|
paramMap.put("boardIdx", boardIdx);
|
|
|
|
List<Map<String,Object>> bbsList = caseBoardService.boardList(paramMap);
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
// 공지로 등록된 항목 맨 위로
|
|
// 시간 변환
|
|
bbsList = bbsList.stream()
|
|
.sorted((map1, map2) -> {
|
|
String noticeYn1 = (String) map1.get("noticeYn");
|
|
String noticeYn2 = (String) map2.get("noticeYn");
|
|
|
|
if (noticeYn1 == null && noticeYn2 == null) return 0; // 둘 다 null인 경우
|
|
if (noticeYn1 == null) return 1; // noticeYn1이 null이면 뒤로 보냄
|
|
if (noticeYn2 == null) return -1; // noticeYn2가 null이면 뒤로 보냄
|
|
|
|
return noticeYn2.compareTo(noticeYn1);
|
|
})
|
|
.peek(map -> {
|
|
Timestamp regTimestamp = (Timestamp) map.get("BBS_REG_DATE");
|
|
if (regTimestamp != null) {
|
|
LocalDate date = regTimestamp.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
map.put("BBS_REG_DATE", date.format(formatter));
|
|
}
|
|
})
|
|
.collect(Collectors.toList());
|
|
|
|
return bbsList;
|
|
}
|
|
|
|
|
|
private List<Map<String,Object>> faqList(){
|
|
Map<String,Object> paramMap = new HashMap<String, Object>();
|
|
|
|
paramMap.put("PAGESTART", 0);
|
|
paramMap.put("PERPAGENUM", 5);
|
|
|
|
List<Map<String,Object>> bbsList = faqBoardservice.boardListAllFaq(paramMap);
|
|
|
|
|
|
bbsList.stream()
|
|
.forEach(t -> {
|
|
String faqSetIdx = t.get("FAQ_SETIDX").toString();
|
|
//조정신청
|
|
if(SeedConstants.FAQ_JOJUNGSINCHUNG.equals(faqSetIdx)) {
|
|
t.put("bbsTypeNm", "조정신청");
|
|
t.put("bbsTypeUrl", "/web/user/faqBbs/case/101/147/faq101Detail.do?faqSeq="+ t.get("FAQ_SEQ_NUMBER").toString() +"&page=1&searchType=title&searchTilte=");
|
|
}
|
|
//절차진행
|
|
else if(SeedConstants.FAQ_JULCHAJINHENG.equals(faqSetIdx)) {
|
|
t.put("bbsTypeNm", "절차진행");
|
|
t.put("bbsTypeUrl", "/web/user/faqBbs/case/102/148/faq102Detail.do?faqSeq="+ t.get("FAQ_SEQ_NUMBER").toString() +"&page=1&searchType=title&searchTilte=");
|
|
}
|
|
//절차종료
|
|
else if(SeedConstants.FAQ_JULCHAJONGRYO.equals(faqSetIdx)) {
|
|
t.put("bbsTypeNm", "절차종료");
|
|
t.put("bbsTypeUrl", "/web/user/faqBbs/case/103/149/faq103Detail.do?faqSeq="+ t.get("FAQ_SEQ_NUMBER").toString() +"&page=1&searchType=title&searchTilte=");
|
|
}
|
|
});
|
|
|
|
return bbsList;
|
|
}
|
|
|
|
|
|
|
|
private List<Map<String,Object>> examList(){
|
|
List<Map<String,Object>> bbsList = new ArrayList<>();
|
|
for(
|
|
int i = Integer.valueOf(SeedConstants.EXAM_GONGJUNG) ;
|
|
i < Integer.valueOf(SeedConstants.EXAM_DAERIJUM)+1 ;
|
|
i ++
|
|
) {
|
|
Map<String,Object> paramMap = new HashMap<String, Object>();
|
|
|
|
paramMap.put("pageStart", 0);
|
|
paramMap.put("perPageNum", 1);
|
|
paramMap.put("boardIdx", String.valueOf(i));
|
|
|
|
List<Map<String,Object>> tmpList = new ArrayList<>(examBoardService.boardList(paramMap));
|
|
if(tmpList.size() > 0) {
|
|
bbsList.add(tmpList.get(0));
|
|
}
|
|
}
|
|
|
|
bbsList.stream().forEach(t -> {
|
|
String examId = t.get("EXAM_ID").toString();
|
|
if(SeedConstants.EXAM_GONGJUNG.equals(examId)){
|
|
t.put("menuNm", "공정거래");
|
|
t.put("titleColor", "orange");
|
|
t.put("url", "/web/user/exam/case/402/162/exam402Detail.do?examNo="+ t.get("EXAM_NO") +"&page=1&titleName=&fileFuncType=exam&searchMenu=ALL&searchType=title&searchTilte=");
|
|
} else if(SeedConstants.EXAM_GAMENG.equals(examId)){
|
|
t.put("menuNm", "가맹사업거래");
|
|
t.put("titleColor", "red");
|
|
t.put("url", "/web/user/exam/case/403/163/exam403Detail.do?examNo="+ t.get("EXAM_NO") +"&page=1&titleName=&fileFuncType=exam&searchMenu=ALL&searchType=title&searchTilte=");
|
|
} else if(SeedConstants.EXAM_HADO.equals(examId)){
|
|
t.put("menuNm", "하도급거래");
|
|
t.put("titleColor", "yellow");
|
|
t.put("url", "/web/user/exam/case/404/164/exam404Detail.do?examNo="+ t.get("EXAM_NO") +"&page=1&titleName=&fileFuncType=exam&searchMenu=ALL&searchType=title&searchTilte=");
|
|
} else if(SeedConstants.EXAM_DAEGYUMO.equals(examId)){
|
|
t.put("menuNm", "대규모유통업거래");
|
|
t.put("titleColor", "darkorange");
|
|
t.put("url", "/web/user/exam/case/405/165/exam405Detail.do?examNo="+ t.get("EXAM_NO") +"&page=1&titleName=&fileFuncType=exam&searchMenu=ALL&searchType=title&searchTilte=");
|
|
} else if(SeedConstants.EXAM_BULGONGJUNG.equals(examId)){
|
|
t.put("menuNm", "불공정약관");
|
|
t.put("titleColor", "darkred");
|
|
t.put("url", "/web/user/exam/case/406/166/exam406Detail.do?examNo="+ t.get("EXAM_NO") +"&page=1&titleName=&fileFuncType=exam&searchMenu=ALL&searchType=title&searchTilte=");
|
|
} else if(SeedConstants.EXAM_DAERIJUM.equals(examId)){
|
|
t.put("menuNm", "대리점거래");
|
|
t.put("titleColor", "darkyellow");
|
|
t.put("url", "/web/user/exam/case/407/282/exam407Detail.do?examNo="+ t.get("EXAM_NO") +"&page=1&titleName=&fileFuncType=exam&searchMenu=ALL&searchType=title&searchTilte=");
|
|
}else {
|
|
t.put("menuNm", "공정거래");
|
|
t.put("titleColor", "orange");
|
|
t.put("url", "/web/user/exam/case/402/162/exam402List.do");
|
|
}
|
|
});
|
|
return bbsList;
|
|
}
|
|
|
|
}
|