mjon_git/src/main/java/itn/web/MainController.java

3190 lines
125 KiB
Java

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