File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
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;
}
}