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