File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.main.web;
import java.io.File;
import java.lang.management.ClassLoadingMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
import java.lang.management.RuntimeMXBean;
import java.lang.management.ThreadMXBean;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
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.servlet.ModelAndView;
import com.sun.management.OperatingSystemMXBean;
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.ComDefaultVO;
import itn.com.cmm.LoginVO;
import itn.com.cmm.util.RedirectUrlMaker;
import itn.com.uss.ion.bnr.service.BannerVO;
import itn.com.uss.ion.bnr.service.EgovBannerService;
import itn.com.uss.ion.cyb.service.CyberAlertManageService;
import itn.com.uss.ion.cyb.service.CyberAlertManageVO;
import itn.com.uss.ion.pwm.service.EgovPopupManageService;
import itn.com.uss.ion.pwm.service.PopupManageVO;
import itn.com.uss.ion.pwm.service.PopupzoneVO;
import itn.let.cop.bbs.service.BoardVO;
import itn.let.cop.bbs.service.EgovBBSManageService;
import itn.let.mjo.msg.service.MjPhoneMemberVO;
import itn.let.mjo.msg.service.MjonMsgService;
import itn.let.mjo.msg.service.MjonMsgStatVO;
import itn.let.mjo.msg.service.MjonMsgVO;
import itn.let.mjo.pay.service.MjonPayService;
import itn.let.mjo.pay.service.MjonPayVO;
import itn.let.mjo.pay.service.RefundService;
import itn.let.sts.com.StatsVO;
import itn.let.sts.cst.service.EgovConectStatsService;
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.site.service.EgovSiteIpService;
import itn.let.sym.site.service.EgovSiteManagerService;
import itn.let.sym.site.service.SiteManagerVO;
import itn.let.uss.olp.qmc.service.EgovQustnrManageService;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.uss.umt.service.MberManageVO;
/**
* 템플릿 메인 페이지 컨트롤러 클래스(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 EgovMainController {
/**
* EgovBBSManageService
*/
@Resource(name = "EgovBBSManageService")
private EgovBBSManageService bbsMngService;
/** userManageService */
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
@Resource(name = "egovQustnrManageService")
private EgovQustnrManageService egovQustnrManageService;
/** 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 = "egovSiteManagerService")
EgovSiteManagerService egovSiteManagerService;
@Resource(name="databaseSecurityMetadataSource")
EgovReloadableFilterInvocationSecurityMetadataSource databaseSecurityMetadataSource;
@Resource(name = "egovSiteIpService")
EgovSiteIpService egovSiteIpService;
/** EgovMenuManageService */
@Resource(name = "meunCreateManageService")
private EgovMenuCreateManageService menuCreateManageService;
@Resource(name = "mjonPayService")
private MjonPayService mjonPayService;
@Resource(name = "mjonMsgService")
private MjonMsgService mjonMsgService;
@Resource(name = "refundService")
private RefundService refundService;
/**
* 메인 페이지에서 각 업무 화면으로 연계하는 기능을 제공한다.
*
* @param request
* @param commandMap
* @exception Exception Exception
*/
@RequestMapping(value = "/cmm/forwardPage.do")
public String forwardPageWithMenuNo(HttpServletRequest request, @RequestParam Map<String, Object> commandMap)
throws Exception{
return "";
}
/**
* 템플릿 메인 페이지 조회
* @return 메인페이지 정보 Map [key : 항목명]
*
* @param request
* @param model
* @exception Exception Exception
*/
@SuppressWarnings("unchecked")
@RequestMapping(value = "/cmm/main/mainPage.do")
public String selectGetMgtMainPage(HttpServletRequest request, ModelMap model, HttpSession session) throws Exception{
// 오늘날짜
Date nowDate = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String strNowDate = simpleDateFormat.format(nowDate);
{//관리자, 사용자 어제/오늘 사용자수
int tdayUcnt = 0; // 오늘 사용자수
int tdayAcnt = 0; // 오늘 관리자수
int ydayUcnt = 0; // 어제 사용자수
int ydayAcnt = 0; // 어제 관리자수
StatsVO statsVO = new StatsVO();
statsVO.setStatDate(strNowDate);
StatsVO rtnStatsVO = conectStatsService.selectDashBoardStatInfo(statsVO);
if (rtnStatsVO != null) {
tdayUcnt = rtnStatsVO.getTdayUcnt();
tdayAcnt = rtnStatsVO.getTdayAcnt();
ydayUcnt = rtnStatsVO.getYdayUcnt();
ydayAcnt = rtnStatsVO.getYdayAcnt();
}
model.addAttribute("userViewCnt", tdayUcnt);
model.addAttribute("adminViewCnt", tdayAcnt);
model.addAttribute("userViewCnt2", ydayUcnt);
model.addAttribute("adminViewCnt2", ydayAcnt);
}
/*
{//관리자 어제 사용자수
StatsVO statsVO = new StatsVO();
statsVO.setStatDate(strNowDate);
List<?> conectStats = conectStatsService.selectMainConectStatsYesterDay(statsVO);
for( Object tempStatsVO : conectStats){
if("A".equals(((StatsVO)tempStatsVO).getUserAt())){//관리자
model.addAttribute("adminViewCnt2", ((StatsVO)tempStatsVO).getCnt());
}
if("U".equals(((StatsVO)tempStatsVO).getUserAt())){//사용자
model.addAttribute("userViewCnt2", ((StatsVO)tempStatsVO).getCnt());
}
}
}
{//관리자 오늘 사용자수
StatsVO statsVO = new StatsVO();
statsVO.setStatDate(strNowDate);
List<?> conectStats = conectStatsService.selectMainConectStats(statsVO);
for( Object tempStatsVO : conectStats){
if("A".equals(((StatsVO)tempStatsVO).getUserAt())){//관리자
model.addAttribute("adminViewCnt", ((StatsVO)tempStatsVO).getCnt());
}
if("U".equals(((StatsVO)tempStatsVO).getUserAt())){//사용자
model.addAttribute("userViewCnt", ((StatsVO)tempStatsVO).getCnt());
}
}
}
*/
LoginVO user = null ;
BoardVO boardVO = new BoardVO();
if(EgovUserDetailsHelper.getAuthorities().contains("ROLE_ADMIN")){ //통계, 접속통계 링크 관리자만 클릭되게
model.addAttribute("ROLE_ADMIN", "ROLE_ADMIN");
}else{ //관리자 아닌경우 자신의 게시판만 조회되게..
try{
user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
boardVO.setEmplyrId(user.getId());
}catch (Exception e) {
return "forward:/uat/uia/actionMain.do";
}
}
// 로그인 정보 확인
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
model.addAttribute("loginVO",loginVO);
/*
PaginationInfo paginationInfo = new PaginationInfo();
{//일일관리자 접속 리스트
LoginLog loginLog = new LoginLog();
paginationInfo.setCurrentPageNo(loginLog.getPageIndex());
paginationInfo.setRecordCountPerPage(loginLog.getPageUnit());
paginationInfo.setPageSize(loginLog.getPageSize());
loginLog.setFirstIndex(paginationInfo.getFirstRecordIndex());
loginLog.setLastIndex(paginationInfo.getLastRecordIndex());
loginLog.setRecordCountPerPage(10); //50개까지 보여주기
//if(null != loginVO){ loginLog.setSiteId(loginVO.getSiteId()); }
List<LoginLog> adminLogList = loginLogService.selectMainAmdinLog(loginLog);
int adminLogListCnt = loginLogService.selectMainAmdinLogTotCnt(loginLog);
paginationInfo.setTotalRecordCount(adminLogListCnt);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("adminLogList", adminLogList);
}
*/
{// 최근 게시물 / 새개시물 카운트
//0번째 부터 6개의 항목만 조회
boardVO.setFirstIndex(0);
boardVO.setRecordCountPerPage(5);
// 최신날짜 우선순위 조회
boardVO.setSearchSortCnd("frstRegisterPnttm");
boardVO.setSearchSortOrd("desc");
List<BoardVO> adminBoardList = bbsMngService.selectAdminMainBoardByDash(boardVO);
model.addAttribute("adminBoardList", adminBoardList);
//오늘
int adminMainNewBoardCnt = bbsMngService.selectAdminMainNewBoardCnt(boardVO);
model.addAttribute("adminMainNewBoardCnt", adminMainNewBoardCnt);
//어젝
int adminMainYdaBoardCnt = bbsMngService.selectAdminMainYdaBoardCnt(boardVO);
model.addAttribute("adminMainYdaBoardCnt", adminMainYdaBoardCnt);
}
{// 관리자 로그관리 리스트
LoginLog loginLog = new LoginLog();
//0번째 부터 6개의 항목만 조회
loginLog.setFirstIndex(0);
loginLog.setRecordCountPerPage(5);
// 최신날짜 우선순위 조회
loginLog.setSearchSortCnd("creatDt");
loginLog.setSearchSortOrd("desc");
List<LoginLog> adminLogList = loginLogService.selectAmdinLog(loginLog);
model.addAttribute("adminLogList", adminLogList);
}
// 2023.01.11 JSPark => 사용안하는 데이터로 판단되어 주석처리
/*
{//신규가입회원 목록
UserDefaultVO userSearchVO = new UserDefaultVO();
//0번째 부터 4개의 항목만 조회
userSearchVO.setFirstIndex(0);
userSearchVO.setRecordCountPerPage(4);
// 가입일시 우선순위 조회
userSearchVO.setSearchSortCnd("sbscrbDe");
userSearchVO.setSearchSortOrd("desc");
userSearchVO.setAdminYn("N");
List<?> userList = userManageService.selectUserList(userSearchVO);
model.addAttribute("userList", userList);
UserDefaultVO userCount = userManageService.selectUserCount();
model.addAttribute("userCount", userCount);
}
*/
{//접속통계 사용자만
// 2023.01.11 JSPark => 사용안하는 데이터로 판단되어 주석처리
/*
StatsVO statsVO = new StatsVO();
statsVO.setRecordCountPerPage(20); //일카운터(20개)
statsVO.setFirstIndex(0);
List<StatsVO> statsDayList = conectStatsService.selectMainStatsDay(statsVO); //일일접속카운터(관리자)
List<StatsVO> statsMonthList = conectStatsService.selectMainStatsMonth(statsVO); //월별접속카운터(관리자)
List<StatsVO> statsYearList = conectStatsService.selectMainStatsYear(statsVO); //연도변접속카운터(관리자)
{//일일통계
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : statsDayList){
cntArray.add(tempStatsVO.getCnt());
dateArray.add(tempStatsVO.getStatsDate().substring(5,tempStatsVO.getStatsDate().length()));
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsDayList", statsObject);
}
{//월통계
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : statsMonthList){
cntArray.add(tempStatsVO.getCnt());
dateArray.add(tempStatsVO.getStatsDate());
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsMonthList", statsObject);
}
{//년통계
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
cntArray.add(0); //데이터가 2018 한건만 조회 되어서 2017년도 0 넣어줌
dateArray.add("2017");
for(StatsVO tempStatsVO : statsYearList){
cntArray.add(tempStatsVO.getCnt());
dateArray.add(tempStatsVO.getStatsDate());
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsYearList", statsObject);
}
*/
{// PC, 모바일 접속통계(주간)
StatsVO statsVO = new StatsVO();
//0번째 부터 7개의 항목만 조회
statsVO.setFirstIndex(0);
statsVO.setRecordCountPerPage(7);
statsVO.setSearchSortCnd("statDate");
statsVO.setSearchSortOrd("ASC");
List<StatsVO> deviceTypeVisitList = conectStatsService.selectDashBoardStatList(statsVO);
model.addAttribute("deviceTypeVisitList", deviceTypeVisitList);
{//PC
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : deviceTypeVisitList){
cntArray.add(tempStatsVO.getClickPcnt());
dateArray.add(tempStatsVO.getStatDate().substring(5,tempStatsVO.getStatDate().length()) );
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsPcDayList", statsObject);
}
{//모바일
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : deviceTypeVisitList){
cntArray.add(tempStatsVO.getClickMcnt());
dateArray.add(tempStatsVO.getStatDate().substring(5,tempStatsVO.getStatDate().length()) );
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsMobileDayList", statsObject);
}
{//전체
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : deviceTypeVisitList){
cntArray.add(tempStatsVO.getClickAcnt());
dateArray.add(tempStatsVO.getStatDate().substring(5,tempStatsVO.getStatDate().length()) );
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsPcMobileDayList", statsObject);
}
}
/*****
//PC, 모바일 접속통계(주간)
StatsVO statsVO = new StatsVO();
statsVO.setRecordCountPerPage(7); //일카운터(7일 : 일주일)
statsVO.setFirstIndex(0);
List<StatsVO> statsPcDayList = conectStatsService.selectPcMainStatsDay(statsVO); //일일접속카운터(사용자)
List<StatsVO> statsMobileDayList = conectStatsService.selectMobileMainStatsDay(statsVO); //일일접속카운터(사용자)
List<StatsVO> statsAllDayList = conectStatsService.selectPcMobileMainStatsDay(statsVO); //모바일+PC(사용자)
{//PC
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : statsPcDayList){
cntArray.add(tempStatsVO.getCnt());
dateArray.add(tempStatsVO.getStatsDate().substring(5,tempStatsVO.getStatsDate().length()) );
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsPcDayList", statsObject);
}
{//모바일
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : statsMobileDayList){
cntArray.add(tempStatsVO.getCnt());
dateArray.add(tempStatsVO.getStatsDate().substring(5,tempStatsVO.getStatsDate().length()) );
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsMobileDayList", statsObject);
}
{//전체
JSONObject statsObject = new JSONObject();
JSONArray cntArray = new JSONArray();
JSONArray dateArray = new JSONArray();
for(StatsVO tempStatsVO : statsAllDayList){
cntArray.add(tempStatsVO.getCnt());
dateArray.add(tempStatsVO.getStatsDate().substring(5,tempStatsVO.getStatsDate().length()) );
}
statsObject.put("cnt" , cntArray);
statsObject.put("date" , dateArray);
model.addAttribute("statsPcMobileDayList", statsObject);
}
*****/
}
{//기업회원 신청, 반려 , 완료 건 통계
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setHstSttus("01"); //기업회원 신청 상태 셋팅
List<MberManageVO> cmpHstStats01 = conectStatsService.selectMberCmpHstStatsDashboard(mberManageVO); //기업회원 신청 건수
mberManageVO.setHstSttus("02"); //기업회원 승인 상태 셋팅
List<MberManageVO> cmpHstStats02 = conectStatsService.selectMberCmpHstStatsDashboard(mberManageVO); //기업회원 승인 건수
mberManageVO.setHstSttus("03"); //기업회원 반려 상태 셋팅
List<MberManageVO> cmpHstStats03 = conectStatsService.selectMberCmpHstStatsDashboard(mberManageVO); //기업회원 반려 건수
int totCmpHstSts01 = 0;
int totCmpHstSts02 = 0;
int totCmpHstSts03 = 0;
if(cmpHstStats01.size() > 0) {
totCmpHstSts01 = cmpHstStats01.get(0).getTotCnt();
}
if(cmpHstStats02.size() > 0) {
totCmpHstSts02 = cmpHstStats02.get(0).getTotCnt();
}
if(cmpHstStats03.size() > 0) {
totCmpHstSts03 = cmpHstStats03.get(0).getTotCnt();
}
model.addAttribute("totCmpHstSts01", totCmpHstSts01);
model.addAttribute("totCmpHstSts02", totCmpHstSts02);
model.addAttribute("totCmpHstSts03", totCmpHstSts03);
}
{//개인 및 기업회원 전체 가입자 수 조회
MberManageVO mberManageTotStatsVO = new MberManageVO();
//개인회원 건수
mberManageTotStatsVO.setDept("P");
List<MberManageVO> mberTotStaStatsPrivate = conectStatsService.selectMberTotStats(mberManageTotStatsVO); //개인회원 반려 건수
model.addAttribute("mberTotStaStatsPrivate", mberTotStaStatsPrivate);
//기업회원 건수
mberManageTotStatsVO.setDept("C");
List<MberManageVO> mberTotStaStatsCompany = conectStatsService.selectMberTotStats(mberManageTotStatsVO); //기업회원 반려 건수
model.addAttribute("mberTotStaStatsCompany", mberTotStaStatsCompany);
int userNorCnt = 0; // 개인회원수
int userComCnt = 0; // 기업회원수
//일반회원 총계(개인 + 기업)
int mberNorTot = 0;
//이용정지 회원 총계
int mberBlockTot = 0;
//회원 탈퇴 총계
int mberSecessTot = 0;
//개인회원 합계 구하기
for(int i=0; i < mberTotStaStatsPrivate.size(); i++) {
String type = mberTotStaStatsPrivate.get(i).getMberSttus();
if(type.equals("Y")) {//일반 회원수
userNorCnt = mberTotStaStatsPrivate.get(i).getTotCnt(); // 개인회원수
mberNorTot = mberNorTot + mberTotStaStatsPrivate.get(i).getTotCnt();
}else if(type.equals("B")) {//이용정지 회원수
mberBlockTot = mberBlockTot + mberTotStaStatsPrivate.get(i).getTotCnt();
}else if(type.equals("N")) {//탈퇴 회원수
mberSecessTot = mberSecessTot + mberTotStaStatsPrivate.get(i).getTotCnt();
}
}
//기업회원 합계 구하기
for(int i=0; i < mberTotStaStatsCompany.size(); i++) {
String type = mberTotStaStatsCompany.get(i).getMberSttus();
if(type.equals("Y")) {//일반 회원수
userComCnt = mberTotStaStatsCompany.get(i).getTotCnt(); // 기업회원수
mberNorTot = mberNorTot + mberTotStaStatsCompany.get(i).getTotCnt();
}else if(type.equals("B")) {//이용정지 회원수
mberBlockTot = mberBlockTot + mberTotStaStatsCompany.get(i).getTotCnt();
}else if(type.equals("N")) {//탈퇴 회원수
mberSecessTot = mberSecessTot + mberTotStaStatsCompany.get(i).getTotCnt();
}
}
model.addAttribute("userNorCnt", userNorCnt); // 개인회원수
model.addAttribute("userComCnt", userComCnt); // 기업회원수
model.addAttribute("mberNorTot", mberNorTot);
model.addAttribute("mberBlockTot", mberBlockTot);
model.addAttribute("mberSecessTot", mberSecessTot);
// 금일 탈퇴회원 수 X 금일 이용정지회원 수 X 환불 취소 수
String s_sttString = conectStatsService.selectTodaySttCountString(mberManageTotStatsVO);
String[] a_s_sttString = s_sttString.split("_");
if (a_s_sttString.length==3) {
// 금일 탈퇴회원 수
model.addAttribute("todayExpireCnt", a_s_sttString[0]);
// 금일 이용정지회원 수
model.addAttribute("todayStopCnt", a_s_sttString[1]);
//환불/결제 신청수
model.addAttribute("refundRequestCnt", a_s_sttString[2]);
}
/*
// 금일 탈퇴회원 수
int todayExpireCnt = conectStatsService.selectTodayExpireMberCount(mberManageTotStatsVO);
model.addAttribute("todayExpireCnt", todayExpireCnt);
// 금일 이용정지회원 수
int todayStopCnt = conectStatsService.selectTodayStopMberCount(mberManageTotStatsVO);
model.addAttribute("todayStopCnt", todayStopCnt);
//환불/취소 수
int refundRequestCnt = 0;
//환불/결제 신청수
RefundVO refundVO = new RefundVO();
refundRequestCnt = refundService.selectRefundRequestCount(refundVO);
model.addAttribute("refundRequestCnt", refundRequestCnt);
*/
}
{//발신번호 통계
MjPhoneMemberVO mjPhoneMemberVO = new MjPhoneMemberVO();
//발신번호 타입이 "발신" 통계
mjPhoneMemberVO.setPhmType("01"); //발신번호 타입 셋팅
List<MjPhoneMemberVO> mberPhoneTotStatsNor = conectStatsService.selectMberPhoneTotStats(mjPhoneMemberVO); //발신번호 심사, 반려 건수
//발신번호 타입이 "차단" 통계
mjPhoneMemberVO.setPhmType("03"); //발신번호 타입 셋팅
List<MjPhoneMemberVO> mberPhoneTotStatsBlock = conectStatsService.selectMberPhoneTotStats(mjPhoneMemberVO); //발신번호 차단 건수
int phoneNorConfirm = 0;
int phoneNorReject = 0;
int phoneNorComplete = 0;
int phoneBlock = 0;
int phoneTotCnt = 0;
for(int i=0; i < mberPhoneTotStatsNor.size(); i++) {
String authYn = mberPhoneTotStatsNor.get(i).getAuthYn();
if(authYn.equals("C")) {//반려건 건수
phoneNorReject = phoneNorReject + mberPhoneTotStatsNor.get(i).getTotCnt();
}else if(authYn.equals("H")) {//심사중 건수
phoneNorConfirm = phoneNorConfirm + mberPhoneTotStatsNor.get(i).getTotCnt();
}else if(authYn.equals("Y")) {//승인완료 건수
phoneNorComplete = phoneNorComplete + mberPhoneTotStatsNor.get(i).getTotCnt();
}
//전체 건수
phoneTotCnt = mberPhoneTotStatsNor.get(i).getSumTotCnt();
}
//발신번호 차단 전체 건수
if(mberPhoneTotStatsBlock.size() > 0) {
phoneBlock = mberPhoneTotStatsBlock.get(0).getSumTotCnt();
}
model.addAttribute("phoneNorConfirm", phoneNorConfirm);
model.addAttribute("phoneNorReject", phoneNorReject);
model.addAttribute("phoneNorComplete", phoneNorComplete);
model.addAttribute("phoneBlock", phoneBlock);
model.addAttribute("phoneTotCnt", phoneTotCnt);
model.addAttribute("phoneTotSumCnt", phoneTotCnt + phoneBlock); //진행중 건수 + 발신차단된 건수
}
// 일별 매출통계
{
//0번째 부터 6개의 항목만 조회
MjonPayVO mjonPayVO = new MjonPayVO();
mjonPayVO.setFirstIndex(0);
mjonPayVO.setRecordCountPerPage(4);
// 최신날짜 우선순위 조회
mjonPayVO.setSearchSortCnd("regDate");
mjonPayVO.setSearchSortOrd("desc");
List<MjonPayVO> adminPayDayChart = mjonPayService.selectPayDayChartDashboard(mjonPayVO);
for(MjonPayVO item : adminPayDayChart){
String strNewDtFormat = item.getRegDate().substring(5, 10);
item.setRegDate(strNewDtFormat);
}
model.addAttribute("adminPayDayChart", adminPayDayChart);
}
// 월별 매출통계
{
//0번째 부터 6개의 항목만 조회
MjonPayVO mjonPayVO = new MjonPayVO();
mjonPayVO.setFirstIndex(0);
mjonPayVO.setRecordCountPerPage(4);
// 최신날짜 우선순위 조회
mjonPayVO.setSearchSortCnd("regDate");
mjonPayVO.setSearchSortOrd("desc");
List<MjonPayVO> adminPayMonthChart = mjonPayService.selectPayMonthChartDashboard(mjonPayVO);
for(MjonPayVO item : adminPayMonthChart){
String strNewDtFormat = Integer.parseInt(item.getRegDate().substring(5, 7)) + " 월";
item.setRegDate(strNewDtFormat);
}
model.addAttribute("adminPayMonthChart", adminPayMonthChart);
}
// 연간 매출통계
{
MjonPayVO mjonPayVO = new MjonPayVO();
MjonPayVO adminPayYearInfo = mjonPayService.selectPayYearChart(mjonPayVO);
model.addAttribute("regYear", adminPayYearInfo.getRegYear());
model.addAttribute("amtYearSum", adminPayYearInfo.getAmtYearSum());
}
// 일별 회원통계
{
//0번째 부터 6개의 항목만 조회
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setFirstIndex(0);
mjonMsgVO.setRecordCountPerPage(4);
// 최신날짜 우선순위 조회
mjonMsgVO.setSearchSortCnd("regDate");
mjonMsgVO.setSearchSortOrd("desc");
List<MjonMsgVO> adminMemDayChart = mjonMsgService.selectMemDayChartDashboard(mjonMsgVO);
model.addAttribute("adminMemDayChart", adminMemDayChart);
}
// 월별 회원통계
{
//0번째 부터 6개의 항목만 조회
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setFirstIndex(0);
mjonMsgVO.setRecordCountPerPage(4);
// 최신날짜 우선순위 조회
mjonMsgVO.setSearchSortCnd("regDate");
mjonMsgVO.setSearchSortOrd("desc");
List<MjonMsgVO> adminMemMonthChart = mjonMsgService.selectMemMonthChartDashboard(mjonMsgVO);
model.addAttribute("adminMemMonthChart", adminMemMonthChart);
}
// 연간 누적 결제율(회원통계)
{
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy");
Date now = new Date();
String thisYear = sdf1.format(now);
model.addAttribute("thisYear", thisYear);
//0번째 부터 6개의 항목만 조회
MjonMsgVO mjonMsgVO = new MjonMsgVO();
MjonMsgVO adminMemYearPayChart = mjonMsgService.selectMemYearPayDashboard(mjonMsgVO);
String payPctByYear = "0";
if (adminMemYearPayChart != null) {
payPctByYear = adminMemYearPayChart.getPayPct();
}
model.addAttribute("payPctByYear", payPctByYear);
}
// 전송사 발송 통계
{
MjonMsgStatVO mjonMsgStatVO = new MjonMsgStatVO();
mjonMsgStatVO.setFirstIndex(0);
mjonMsgStatVO.setRecordCountPerPage(3);
List<MjonMsgStatVO> agentCntList = mjonMsgService.selectAgentSmsCountStatMainList(mjonMsgStatVO);
model.addAttribute("agentCntList", agentCntList);
}
// 회원 전환률 통계
/*
{
//0번째 부터 6개의 항목만 조회
MjonMsgVO mjonMsgVO = new MjonMsgVO();
List<MjonMsgVO> adminMemLoginDayChart = mjonMsgService.selectMemLoginDayChartDashboard(mjonMsgVO);
model.addAttribute("adminMemLoginDayChart", adminMemLoginDayChart);
}
*/
{// 회원 전환률 통계
StatsVO statsVO = new StatsVO();
//0번째 부터 4개의 항목만 조회
statsVO.setFirstIndex(0);
statsVO.setRecordCountPerPage(4);
statsVO.setSearchSortCnd("statDate");
statsVO.setSearchSortOrd("DESC");
List<StatsVO> adminMemLoginDayChart = conectStatsService.selectDashBoardStatList(statsVO);
model.addAttribute("adminMemLoginDayChart", adminMemLoginDayChart);
}
//CPU정보등 조회
/*showOSBean();
showThreadBean();
showClassLoading();
showMemory();
showDisk();
showCPU();*/
return "main/EgovMainView";
}
// 대시보드 회원통계 Info
@RequestMapping(value = "/cmm/main/selectDashBoardMemStatInfoAjax.do")
public ModelAndView DashBoardMemStatInfoAjax(
@ModelAttribute("statsVO") StatsVO statsVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
StatsVO memPayStatInfo = new StatsVO();
try {
memPayStatInfo = conectStatsService.selectDashBoardMemStatInfo(statsVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("memPayStatInfo", memPayStatInfo);
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 당월 회원전환률
@RequestMapping(value = "/cmm/main/selectMemLiginThisMonthAjax.do")
public ModelAndView viewMainTagAjax(
@ModelAttribute("mjonMsgVO") MjonMsgVO searchVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
MjonMsgVO adminMemLoginThisMonth = null;
try {
//0번째 부터 6개의 항목만 조회
MjonMsgVO mjonMsgVO = new MjonMsgVO();
adminMemLoginThisMonth = mjonMsgService.selectMemLoginThisMonth(mjonMsgVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("adminMemLoginThisMonth", adminMemLoginThisMonth);
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/**
* Head메뉴를 조회한다.
* @param menuManageVO MenuManageVO
* @return 출력페이지정보 "main_headG", "main_head"
* @exception Exception
*/
@RequestMapping(value="/sym/mms/EgovMainMenuHead.do")
public String selectMainMenuHead(
@ModelAttribute("menuManageVO") MenuManageVO menuManageVO,
@RequestParam Map<String, Object> commandMap ,ModelMap model ,HttpServletRequest req , HttpSession session)
throws Exception {
LoginVO user =
EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
if(EgovUserDetailsHelper.isAuthenticated() && user!=null){
menuManageVO.setTmp_Id(user.getId());
menuManageVO.setTmp_Password(user.getPassword());
menuManageVO.setTmp_UserSe(user.getUserSe());
menuManageVO.setTmp_Name(user.getName());
menuManageVO.setTmp_Email(user.getEmail());
menuManageVO.setTmp_OrgnztId(user.getOrgnztId());
menuManageVO.setTmp_UniqId(user.getUniqId());
//menuManageVO.setMenuUserType("A"); //관리자만 조회
// /sym/mms/EgovMainMenuLeft.do 에서 조회함으로 주석
// List<?> list_headmenu = menuManageService.selectMainMenuHead(menuManageVO) ;
// model.addAttribute("list_headmenu", list_headmenu);
// List<?> list_menulist = menuManageService.selectMainMenuLeft(menuManageVO);
// model.addAttribute("list_menulist", list_menulist);
model.addAttribute("adminUserName", user.getName());
model.addAttribute("uniqId", user.getUniqId());
//이전접속정보
LoginLog loginLog = new LoginLog();
loginLog.setConectId(user.getUniqId());
loginLog = loginLogService.selectBeforeAmdinLog(loginLog); //이전접속 시간
if(loginLog !=null) {
model.addAttribute("beforeLoginDate", loginLog.getCreatDt());
}else {
model.addAttribute("beforeLoginDate", "");
}
}else{
//model.addAttribute("list_headmenu", menuManageService.selectMainMenuHeadAnonymous(menuManageVO));
//model.addAttribute("list_menulist", menuManageService.selectMainMenuLeftAnonymous(menuManageVO));
}
if(commandMap.get("before") !=null ){
return "main/inc/EgovIncTopnav1"; // 내부업무의 상단메뉴 이전 화면
}
//세션타임 설정(관리자)
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO);
session.setMaxInactiveInterval(60* Integer.parseInt(siteManagerVO.getSessionTimeCdText())); //10분
model.addAttribute("sessionTime", siteManagerVO.getSessionTimeCdText());
//즐겨찾기매뉴
if(null != user){
MenuManageJTreeVO menuManageJTreeVO = new MenuManageJTreeVO();
menuManageJTreeVO.setSiteId(user.getSiteId());
menuManageJTreeVO.setAuthorCode("ROLE_ADMIN") ; //관리자 페이지
menuManageJTreeVO.setUserId(user.getId());
List<MenuManageJTreeVO> quickList = menuCreateManageService.selectQuickListIncTop(menuManageJTreeVO) ;
model.addAttribute("quickList", quickList);
}
return "main/inc/EgovIncTopnav"; // 내부업무의 상단메뉴 화면
}
/**
* 좌측메뉴를 조회한다.
* @param menuManageVO MenuManageVO
* @param vStartP String
* @return 출력페이지정보 "main_left"
* @exception Exception
*/
@RequestMapping(value="/sym/mms/EgovMainMenuLeft.do")
public String selectMainMenuLeft(
@RequestParam Map<String, Object> commandMap,
@ModelAttribute("menuManageVO") MenuManageVO menuManageVO,
ModelMap model)
throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
if(EgovUserDetailsHelper.isAuthenticated() && user!=null){ //최상단 매뉴
//select문에서 사용자보안설정 조회를 위한 set
menuManageVO.setTmp_Id(user.getId());
menuManageVO.setTmp_Password(user.getPassword());
menuManageVO.setTmp_UserSe(user.getUserSe());
menuManageVO.setTmp_Name(user.getName());
menuManageVO.setTmp_Email(user.getEmail());
menuManageVO.setTmp_OrgnztId(user.getOrgnztId());
menuManageVO.setTmp_UniqId(user.getUniqId());
//menuManageVO.setMenuUserType("A"); //관리자만 조회
//menuManageVO.setSiteId(user.getSiteId());
List<?> list_headmenu = menuManageService.selectMainMenuHead(menuManageVO);
model.addAttribute("list_headmenu", list_headmenu);
List<?> list_menulist = menuManageService.selectMainMenuLeft(menuManageVO);
model.addAttribute("list_menulist", list_menulist);
model.addAttribute("user", user);
}
return "main/inc/EgovIncLeftmenu";
}
/**
* 템플릿 메인 USER 페이지 조회
* @return 메인페이지 정보 Map [key : 항목명]
*
* @param request
* @param model
* @exception Exception Exception
*/
@RequestMapping(value = "/cmm/main/mainUserPage.do")
public String mainUserPage(HttpServletRequest request, ModelMap model) throws Exception{
// 공지사항 메인 컨텐츠 조회 시작 ---------------------------------
BoardVO boardVO = new BoardVO();
boardVO.setPageUnit(5);
boardVO.setPageSize(10);
boardVO.setBbsId("BBSMSTR_000000000100"); //공지사항
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
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"));
// 공지사항 메인컨텐츠 조회 끝 -----------------------------------
/* 페이스북 */
FacebookAPI facebookAPI = FacebookAPI.getInstance();
String posts = facebookAPI.getPosts() ;
String photo = facebookAPI.getPhoto() ;
/*model.addAttribute("posts", facebookAPI.getPosts());
model.addAttribute("photo", facebookAPI.getPhoto());*/
model.addAttribute("posts", posts);
model.addAttribute("photo", photo);
List facebookList = new ArrayList();
JSONParser parser = new JSONParser();
JSONObject photoJObj = (JSONObject)parser.parse(photo);
String profileImgUrl = "";
if(photoJObj.get("data") != null && ((JSONObject)photoJObj.get("data")).get("url") !=null){
profileImgUrl = ((JSONObject)photoJObj.get("data")).get("url").toString() ;
}
model.addAttribute("facebookImg", profileImgUrl);
JSONObject postJObj = (JSONObject)parser.parse(posts);
JSONArray postJArr = (JSONArray)postJObj.get("data") ;
for(int i=0;i<3;i++){
JSONObject tempObjcet = (JSONObject)postJArr.get(i);
if(!"status".equals(tempObjcet.get("type"))){
if(tempObjcet.get("picture") !=null){
tempObjcet.put("imgUrl", tempObjcet.get("picture"));
}else{
tempObjcet.put("imgUrl", profileImgUrl);
}
}
String line2 = "";
if(tempObjcet.get("caption") !=null)
line2 = tempObjcet.get("caption").toString() ;
else if(tempObjcet.get("message") !=null)
line2 = tempObjcet.get("message").toString();
else if(tempObjcet.get("description")!=null)
line2 = tempObjcet.get("description").toString();
else if(tempObjcet.get("story")!=null)
line2 = tempObjcet.get("story").toString();
else
line2 = tempObjcet.get("name").toString();
tempObjcet.put("line2", line2);
facebookList.add(tempObjcet);
}
model.addAttribute("facebookList", facebookList);
/* 페이스북 */
// 자유게시판 메인 컨텐츠 조회 시작 ---------------------------------
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"));
// 자유게시판 메인컨텐츠 조회 끝 -----------------------------------
// FAQ 메인 컨텐츠 조회 시작 ---------------------------------
/** EgovPropertyService.SiteList */
/*FaqManageDefaultVO searchVO = new FaqManageDefaultVO();
searchVO.setPageUnit(3);
searchVO.setPageSize(10);
*//** pageing *//*
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setPageSize(searchVO.getPageSize());
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
model.addAttribute("faqList", faqManageService.selectFaqList(searchVO));*/
// FAQ 메인 컨텐츠 조회 끝 -----------------------------------
// 설문참여 메인 컨텐츠 조회 시작 -----------------------------------
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.setReflctAt("Y"); //반영이 Y 만
bannerVO.setBannerList(egovBannerService.selectBannerList(bannerVO));
model.addAttribute("bannerList", bannerVO.getBannerList());
//팝업리스트 조회
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);
/** 사이버경고관리 */
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("qriList", egovQustnrRespondInfoService.selectQustnrRespondInfoManageList(qVO));
// 설문참여 메인 컨텐츠 조회 끝 -----------------------------------
//사용자 방문수 insert
{
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA );
Date currentTime = new Date ();
String mTime = mSimpleDateFormat.format ( currentTime );
HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
String ip = req.getHeader("X-FORWARDED-FOR");
if (ip == null){ ip = req.getRemoteAddr();}
LoginLog loginLog = new LoginLog();
loginLog.setLoginIp(ip);
loginLog.setCreatDt(mTime);
if(null == loginLogService.selectLoginUserLog(loginLog)){ //오늘날짜의 IP조회
loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O
loginLog.setErrOccrrAt("N");
loginLog.setErrorCode("");
loginLog.setUserAt("U");
loginLog.setLoginId(""); //connnect_id
loginLog.setProgrmFileNm(null);
if(isMobile(request)){
loginLog.setDeviceType("M");
}else{
loginLog.setDeviceType("P");
}
loginLogService.logInsertLoginLog(loginLog);
}
}
return "main/mainUserPage";
}
@RequestMapping("/sym/mms/EgovPopup.do")
public String EgovPopup( @ModelAttribute("popupManageVO") PopupManageVO popupManageVO , ModelMap model ) throws Exception {
String popupUrl ="/uss/ion/pwm/sample/EgovPopupSample" ; //임시샘플
try {
popupManageVO = egovPopupManageService.selectPopup(popupManageVO) ; //(Integer.parseInt(seq));
model.addAttribute("popupManageVO", popupManageVO);
}
catch(Exception exception) {
//System.out.println("ERROR: "+exception.toString());
}
return popupUrl;
}
/* 페이스북 */
@RequestMapping(value="/community/facebook.do")
public @ResponseBody Map<?, ?> facebookGetPosts(ModelMap model) throws Exception {
try {
FacebookAPI facebookAPI = FacebookAPI.getInstance();
model.put("posts", facebookAPI.getPosts());
model.put("photo", facebookAPI.getPhoto());
}
catch(Exception exception) {
System.out.println("ERROR: "+exception.toString());
}
return model;
}
@RequestMapping(value="/sym/mms/EgovMainFooter.do")
public String EgovMainFooter(
@RequestParam Map<String, Object> commandMap ,ModelMap model)
throws Exception {
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA );
Date currentTime = new Date ();
String mTime = mSimpleDateFormat.format ( currentTime );
HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
String ip = req.getHeader("X-FORWARDED-FOR");
if (ip == null){ ip = req.getRemoteAddr();}
LoginLog loginLog = new LoginLog();
loginLog.setLoginIp(ip);
loginLog.setCreatDt(mTime);
loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O
loginLog.setErrOccrrAt("N");
loginLog.setErrorCode("");
loginLog.setUserAt("A"); //관리자
loginLog.setLoginId(""); //connnect_id
loginLog.setUrl(req.getRequestURI());
if(EgovUserDetailsHelper.isAuthenticated()){
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
loginLog.setLoginId(user.getUniqId());
}
//loginLogService.logInsertAdminLoginLog(loginLog);
return "main/inc/EgovIncFooter"; // 내부업무의 상단메뉴 화면
}
@RequestMapping("/web/main/EgovPopup.do")
public String EgovMainPopup( @ModelAttribute("popupManageVO") PopupManageVO popupManageVO , ModelMap model ) throws Exception {
String popupUrl ="/uss/ion/pwm/sample/EgovPopupSample" ; //임시샘플
try {
popupManageVO = egovPopupManageService.selectPopup(popupManageVO) ; //(Integer.parseInt(seq));
model.addAttribute("popupManageVO", popupManageVO);
}
catch(Exception exception) {
//System.out.println("ERROR: "+exception.toString());
}
return popupUrl;
}
/*메인에서 바로가기시 상단, 좌측의 메뉴 설정*/
@RequestMapping(value="/sym/mms/goSubsession.do")
public String goSubsession(
@RequestParam Map<String, Object> commandMap ,HttpSession session, ModelMap model)
throws Exception {
String subUrl = (String)commandMap.get("conUrl");
String menuNo = (String)commandMap.get("menuNo");
session.setAttribute("baseMenuNo", menuNo);
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker(subUrl);
return redirectUrlMaker.getRedirectUrl();
}
/*모바일접속 유무*/
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;
}
/**
* OS 정보
*/
public void showOSBean()
{
final long MEGABYTE = 1024L * 1024L;
OperatingSystemMXBean osbean = ( OperatingSystemMXBean ) ManagementFactory.getOperatingSystemMXBean( );
System.out.println( "OS Name: " + osbean.getName() );
System.out.println( "OS Arch: " + osbean.getArch() );
System.out.println( "Available Processors: " + osbean.getAvailableProcessors() );
System.out.println( "TotalPhysicalMemorySize: " + osbean.getTotalPhysicalMemorySize() / MEGABYTE + " MB");
System.out.println( "FreePhysicalMemorySize: " + osbean.getFreePhysicalMemorySize() / MEGABYTE +" MB");
System.out.println( "TotalSwapSpaceSize: " + osbean.getTotalSwapSpaceSize() / MEGABYTE +" MB");
System.out.println( "FreeSwapSpaceSize: " + osbean.getFreeSwapSpaceSize() / MEGABYTE+" MB");
System.out.println( "CommittedVirtualMemorySize: " + osbean.getCommittedVirtualMemorySize() / MEGABYTE+" MB");
System.out.println( "SystemLoadAverage: " + osbean.getSystemLoadAverage() / MEGABYTE+" MB");
}
public void showThreadBean( )
{
ThreadMXBean tbean = ManagementFactory.getThreadMXBean( );
long[] ids = tbean.getAllThreadIds( );
System.out.println( "Thread Count: " + tbean.getThreadCount( ) );
for ( long id : ids )
{
System.out.println( "Thread CPU Time(" + id + ")" + tbean.getThreadCpuTime( id ) );
System.out.println( "Thread User Time(" + id + ")" + tbean.getThreadCpuTime( id ) );
}
}
public void showClassLoading( )
{
ClassLoadingMXBean classbean = ManagementFactory.getClassLoadingMXBean( );
System.out.println( "TotalLoadedClassCount: " + classbean.getTotalLoadedClassCount( ) );
System.out.println( "LoadedClassCount: " + classbean.getLoadedClassCount( ) );
System.out.println( "UnloadedClassCount: " + classbean.getUnloadedClassCount( ) );
}
/*
* 메모리 사용량
*/
public void showMemory( )
{
MemoryMXBean membean = ManagementFactory.getMemoryMXBean( );
MemoryUsage heap = membean.getHeapMemoryUsage( );
System.out.println( "Heap Memory: " + heap.toString( ) );
MemoryUsage nonheap = membean.getNonHeapMemoryUsage( );
System.out.println( "NonHeap Memory: " + nonheap.toString( ) );
}
/*
* 디스크용량
*/
public static void showDisk( )
{
File root = null;
try
{
root = new File( "C:/" );
System.out.println( "Total Space: " + root.getTotalSpace( ) );
System.out.println( "Usable Space: " + root.getUsableSpace( ) );
}
catch ( Exception e )
{
e.printStackTrace( );
}
}
/*
* cpu 사용량
*/
public static void showCPU( )
{
OperatingSystemMXBean osbean = ( OperatingSystemMXBean ) ManagementFactory.getOperatingSystemMXBean( );
RuntimeMXBean runbean = ManagementFactory.getRuntimeMXBean( );
long bfprocesstime = osbean.getProcessCpuTime( );
long bfuptime = runbean.getUptime( );
long ncpus = osbean.getAvailableProcessors( );
for ( int i = 0 ; i < 1000000 ; ++i )
{
ncpus = osbean.getAvailableProcessors( );
}
long afprocesstime = osbean.getProcessCpuTime( );
long afuptime = runbean.getUptime( );
float cal = ( afprocesstime - bfprocesstime ) / ( ( afuptime - bfuptime ) * 10000f );
float usage = Math.min( 99f , cal );
System.out.println( "Calculation: " + cal );
System.out.println( "CPU Usage: " + usage );
}
}