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
File name
Commit message
Commit date
package itn.let.main.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
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.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
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.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.ComDefaultVO;
import itn.com.cmm.LoginVO;
import itn.com.cmm.util.RedirectUrlMaker;
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.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.EgovSiteManagerService;
import itn.let.sym.site.service.SiteManagerVO;
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;
/** EgovMenuManageService */
@Resource(name = "meunManageService")
private EgovMenuManageService menuManageService;
@Resource(name="EgovLoginLogService")
private EgovLoginLogService loginLogService;
@Resource(name = "conectStatsService")
private EgovConectStatsService conectStatsService;
@Resource(name = "egovSiteManagerService")
EgovSiteManagerService egovSiteManagerService;
/** EgovMenuManageService */
@Resource(name = "meunCreateManageService")
private EgovMenuCreateManageService menuCreateManageService;
@Resource(name = "mjonPayService")
private MjonPayService mjonPayService;
@Resource(name = "mjonMsgService")
private MjonMsgService mjonMsgService;
/**
* 템플릿 메인 페이지 조회
* @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);
// }
// BoardVO boardVO = new BoardVO();
//
// // 로그인 정보 확인
// LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
// model.addAttribute("loginVO",loginVO);
//
// {// 최근 게시물 / 새개시물 카운트
// //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);
// }
// {//접속통계 사용자만
// {// 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);
// }
// }
// }
// {//기업회원 신청, 반려 , 완료 건 통계
//
// 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]);
// }
// }
// {//발신번호 통계
//
// 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("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);
// }
// {// 회원 전환률 통계
// 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);
// }
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;
}
// 관리자 로그관리 리스트
@RequestMapping(value = "/cmm/main/selectDashBoardAdminLogAjax.do")
public ModelAndView DashBoardAdminLogAjax(
@ModelAttribute("statsVO") StatsVO statsVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
List<LoginLog> adminLogList = null;
try {
LoginLog loginLog = new LoginLog();
//0번째 부터 6개의 항목만 조회
loginLog.setFirstIndex(0);
loginLog.setRecordCountPerPage(5);
// 최신날짜 우선순위 조회
loginLog.setSearchSortCnd("creatDt");
loginLog.setSearchSortOrd("desc");
adminLogList = loginLogService.selectAmdinLogDashboard(loginLog);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("adminLogList", adminLogList);
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());
model.addAttribute("adminUserName", user.getName());
model.addAttribute("uniqId", user.getUniqId());
}else{
}
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());
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());
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";
}
@RequestMapping(value="/sym/mms/EgovMainFooter.do")
public String EgovMainFooter(
@RequestParam Map<String, Object> commandMap ,ModelMap model)
throws Exception {
LoginVO user =
EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//즐겨찾기매뉴
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/EgovIncFooter"; // 내부업무의 상단메뉴 화면
}
/*메인에서 바로가기시 상단, 좌측의 메뉴 설정*/
@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();
}
//어제/오늘 접속현황
@RequestMapping(value = "/cmm/main/selectVisitStatInfoAjax.do", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> selectVisitStatInfoAjax(@RequestBody(required = false) Map<String, Object> paramMap) throws Exception {
Map<String, Object> resultMap = new HashMap<>();
Date nowDate = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String strNowDate = simpleDateFormat.format(nowDate);
int tdayUcnt = 0, tdayAcnt = 0, ydayUcnt = 0, 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();
}
BoardVO boardVO = new BoardVO();
boardVO.setFirstIndex(0);
boardVO.setRecordCountPerPage(5);
boardVO.setSearchSortCnd("frstRegisterPnttm");
boardVO.setSearchSortOrd("desc");
//오늘
int adminMainNewBoardCnt = bbsMngService.selectAdminMainNewBoardCnt(boardVO);
resultMap.put("adminMainNewBoardCnt", adminMainNewBoardCnt);
//어젝
int adminMainYdaBoardCnt = bbsMngService.selectAdminMainYdaBoardCnt(boardVO);
resultMap.put("adminMainYdaBoardCnt", adminMainYdaBoardCnt);
resultMap.put("isSuccess", true);
resultMap.put("userViewCnt", tdayUcnt);
resultMap.put("adminViewCnt", tdayAcnt);
resultMap.put("userViewCnt2", ydayUcnt);
resultMap.put("adminViewCnt2", ydayAcnt);
return resultMap;
}
//최근 게시물
@RequestMapping("/cmm/main/recentBoardAjax.do")
public String recentBoardAjax(Model model) {
BoardVO boardVO = new BoardVO();
boardVO.setFirstIndex(0);
boardVO.setRecordCountPerPage(5);
boardVO.setSearchSortCnd("frstRegisterPnttm");
boardVO.setSearchSortOrd("desc");
List<BoardVO> adminBoardList = new ArrayList<BoardVO>();;
try {
adminBoardList = bbsMngService.selectAdminMainBoardByDash(boardVO);
} catch (Exception e) {
e.printStackTrace();
}
model.addAttribute("adminBoardList", adminBoardList);
return "main/recentBoard"; // View 이름만 반환
}
//접속 통계
@RequestMapping("/cmm/main/visitStatsAjax.do")
public String selectVisitStatsAjax(Model model) throws Exception {
StatsVO statsVO = new StatsVO();
statsVO.setFirstIndex(0);
statsVO.setRecordCountPerPage(7);
statsVO.setSearchSortCnd("statDate");
statsVO.setSearchSortOrd("ASC");
List<StatsVO> deviceTypeVisitList = conectStatsService.selectDashBoardStatList(statsVO);
model.addAttribute("deviceTypeVisitList", deviceTypeVisitList);
// PC
JSONObject pcStats = new JSONObject();
JSONArray pcCnt = new JSONArray();
JSONArray pcDate = new JSONArray();
for (StatsVO vo : deviceTypeVisitList) {
pcCnt.add(vo.getClickPcnt());
pcDate.add(vo.getStatDate().substring(5));
}
pcStats.put("cnt", pcCnt);
pcStats.put("date", pcDate);
model.addAttribute("statsPcDayList", pcStats);
// 모바일
JSONObject mobileStats = new JSONObject();
JSONArray mobCnt = new JSONArray();
JSONArray mobDate = new JSONArray();
for (StatsVO vo : deviceTypeVisitList) {
mobCnt.add(vo.getClickMcnt());
mobDate.add(vo.getStatDate().substring(5));
}
mobileStats.put("cnt", mobCnt);
mobileStats.put("date", mobDate);
model.addAttribute("statsMobileDayList", mobileStats);
// 전체
JSONObject totalStats = new JSONObject();
JSONArray totCnt = new JSONArray();
JSONArray totDate = new JSONArray();
for (StatsVO vo : deviceTypeVisitList) {
totCnt.add(vo.getClickAcnt());
totDate.add(vo.getStatDate().substring(5));
}
totalStats.put("cnt", totCnt);
totalStats.put("date", totDate);
model.addAttribute("statsPcMobileDayList", totalStats);
return "main/visitStats"; // JSP 경로 (tiles 제외)
}
//회원 통계
@RequestMapping("/cmm/main/memberStatsAjax.do")
public String selectMemberStatsAjax(Model model) throws Exception {
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 = cmpHstStats01.isEmpty() ? 0 : cmpHstStats01.get(0).getTotCnt();
int totCmpHstSts02 = cmpHstStats02.isEmpty() ? 0 : cmpHstStats02.get(0).getTotCnt();
int totCmpHstSts03 = cmpHstStats03.isEmpty() ? 0 : 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);
// 기업
mberManageTotStatsVO.setDept("C");
List<MberManageVO> mberTotStaStatsCompany = conectStatsService.selectMberTotStats(mberManageTotStatsVO);
int userNorCnt = 0, userComCnt = 0, mberNorTot = 0, mberBlockTot = 0, mberSecessTot = 0;
for (MberManageVO vo : mberTotStaStatsPrivate) {
switch (vo.getMberSttus()) {
case "Y": userNorCnt = vo.getTotCnt(); mberNorTot += vo.getTotCnt(); break;
case "B": mberBlockTot += vo.getTotCnt(); break;
case "N": mberSecessTot += vo.getTotCnt(); break;
}
}
for (MberManageVO vo : mberTotStaStatsCompany) {
switch (vo.getMberSttus()) {
case "Y": userComCnt = vo.getTotCnt(); mberNorTot += vo.getTotCnt(); break;
case "B": mberBlockTot += vo.getTotCnt(); break;
case "N": mberSecessTot += vo.getTotCnt(); break;
}
}
model.addAttribute("userNorCnt", userNorCnt);
model.addAttribute("userComCnt", userComCnt);
model.addAttribute("mberNorTot", mberNorTot);
model.addAttribute("mberBlockTot", mberBlockTot);
model.addAttribute("mberSecessTot", mberSecessTot);
String statStr = conectStatsService.selectTodaySttCountString(mberManageTotStatsVO);
String[] split = statStr.split("_");
if (split.length == 3) {
model.addAttribute("todayExpireCnt", split[0]);
model.addAttribute("todayStopCnt", split[1]);
model.addAttribute("refundRequestCnt", split[2]);
}
return "main/memberStats";
}
//발신번호 통계
@RequestMapping("/cmm/main/sendNumberStatsAjax.do")
public String selectSendNumberStatsAjax(Model model) throws Exception {
MjPhoneMemberVO vo = new MjPhoneMemberVO();
vo.setPhmType("01"); // 발신
List<MjPhoneMemberVO> sendList = conectStatsService.selectMberPhoneTotStats(vo);
vo.setPhmType("03"); // 차단
List<MjPhoneMemberVO> blockList = conectStatsService.selectMberPhoneTotStats(vo);
int phoneNorConfirm = 0, phoneNorReject = 0, phoneNorComplete = 0, phoneTotCnt = 0, phoneBlock = 0;
for (MjPhoneMemberVO item : sendList) {
String authYn = item.getAuthYn();
int cnt = item.getTotCnt();
if ("C".equals(authYn)) phoneNorReject += cnt;
else if ("H".equals(authYn)) phoneNorConfirm += cnt;
else if ("Y".equals(authYn)) phoneNorComplete += cnt;
phoneTotCnt = item.getSumTotCnt(); // 총합은 동일값 반복됨
}
if (!blockList.isEmpty()) {
phoneBlock = blockList.get(0).getSumTotCnt();
}
model.addAttribute("phoneNorConfirm", phoneNorConfirm);
model.addAttribute("phoneNorReject", phoneNorReject);
model.addAttribute("phoneNorComplete", phoneNorComplete);
model.addAttribute("phoneTotCnt", phoneTotCnt);
model.addAttribute("phoneBlock", phoneBlock);
model.addAttribute("phoneTotSumCnt", phoneTotCnt + phoneBlock);
return "main/sendNumberStats";
}
//일매출액(VAT 포함)
@RequestMapping("/cmm/main/payDayChartStatsAjax.do")
public String selectPayDayChartStatsAjax(Model model) throws Exception {
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) {
if (item.getRegDate() != null && item.getRegDate().length() >= 10) {
item.setRegDate(item.getRegDate().substring(5, 10)); // MM-DD 형식
}
}
model.addAttribute("adminPayDayChart", adminPayDayChart);
MberManageVO mberManageTotStatsVO = new MberManageVO();
String statStr = conectStatsService.selectTodaySttCountString(mberManageTotStatsVO);
String[] split = statStr.split("_");
if (split.length == 3) {
model.addAttribute("todayExpireCnt", split[0]);
model.addAttribute("todayStopCnt", split[1]);
model.addAttribute("refundRequestCnt", split[2]);
}
return "main/payDayChartStats";
}
//월매출액(VAT 포함)
@RequestMapping("/cmm/main/payMonthChartStatsAjax.do")
public String selectPayMonthChartStatsAjax(Model model) throws Exception {
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) {
if (item.getRegDate() != null && item.getRegDate().length() >= 7) {
String month = item.getRegDate().substring(5, 7);
item.setRegDate(Integer.parseInt(month) + "월");
}
}
model.addAttribute("adminPayMonthChart", adminPayMonthChart);
MjonPayVO mjonPayVO2 = new MjonPayVO();
MjonPayVO adminPayYearInfo = mjonPayService.selectPayYearChart(mjonPayVO2);
model.addAttribute("amtYearSum", adminPayYearInfo.getAmtYearSum());
return "main/payMonthChartStats";
}
//일회원가입자수
@RequestMapping("/cmm/main/memDayChartStatsAjax.do")
public String selectMemDayChartStatsAjax(Model model) throws Exception {
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);
return "main/memDayChartStats";
}
//월회원가입자수
@RequestMapping("/cmm/main/memMonthChartStatsAjax.do")
public String selectMemMonthChartStatsAjax(Model model) throws Exception {
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 mjonMsgVO2 = new MjonMsgVO();
MjonMsgVO adminMemYearPayChart = mjonMsgService.selectMemYearPayDashboard(mjonMsgVO2);
String payPctByYear = "0";
if (adminMemYearPayChart != null) {
payPctByYear = adminMemYearPayChart.getPayPct();
}
model.addAttribute("payPctByYear", payPctByYear);
return "main/memMonthChartStats";
}
//전송사별 문자발송통계
@RequestMapping("/cmm/main/agentSmsStatsAjax.do")
public String selectAgentSmsStatsAjax(Model model) throws Exception {
MjonMsgStatVO mjonMsgStatVO = new MjonMsgStatVO();
mjonMsgStatVO.setFirstIndex(0);
mjonMsgStatVO.setRecordCountPerPage(3);
List<MjonMsgStatVO> agentCntList = mjonMsgService.selectAgentSmsCountStatMainList(mjonMsgStatVO);
model.addAttribute("agentCntList", agentCntList);
return "main/agentSmsStats";
}
//회원 전환률 통계
@RequestMapping("/cmm/main/memLoginDayChartStatsAjax.do")
public String selectMemLoginDayChartStatsAjax(Model model) throws Exception {
StatsVO statsVO = new StatsVO();
statsVO.setFirstIndex(0);
statsVO.setRecordCountPerPage(4);
statsVO.setSearchSortCnd("statDate");
statsVO.setSearchSortOrd("DESC");
List<StatsVO> adminMemLoginDayChart = conectStatsService.selectDashBoardStatList(statsVO);
model.addAttribute("adminMemLoginDayChart", adminMemLoginDayChart);
return "main/memLoginDayChartStats";
}
}