File name
Commit message
Commit date
File name
Commit message
Commit date
2024-02-05
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.sts.cst.web;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.let.sts.com.StatsVO;
import itn.let.sts.cst.service.EgovConectStatsService;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 접속 통계 검색 컨트롤러 클래스
* @author 공통서비스 개발팀 박지욱
* @since 2009.03.19
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.19 박지욱 최초 생성
* 2011.06.30 이기하 패키지 분리(sts -> sts.cst)
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
*
* </pre>
*/
@Controller
public class EgovConectStatsController {
/** EgovConectStatsService */
@Resource(name = "conectStatsService")
private EgovConectStatsService conectStatsService;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
/**
* 접속 통계를 조회한다
* @param statsVO StatsVO
* @return String
* @exception Exception
*/
@RequestMapping(value="/sts/cst/selectConectStats.do")
public String selectUserStats(@ModelAttribute("statsVO") StatsVO statsVO, HttpSession session,
ModelMap model) throws Exception {
statsVO.setPageUnit(propertyService.getInt("pageUnit"));
statsVO.setPageSize(propertyService.getInt("pageSize"));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(statsVO.getPageIndex());
paginationInfo.setRecordCountPerPage(statsVO.getPageUnit());
paginationInfo.setPageSize(statsVO.getPageSize());
statsVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
statsVO.setLastIndex(paginationInfo.getLastRecordIndex());
statsVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if (statsVO.getFromDate() == null || statsVO.getToDate() == null){ //최초 접속
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA );
Date currentTime = new Date ();
statsVO.setFromDate(mSimpleDateFormat.format ( currentTime ));
statsVO.setToDate(mSimpleDateFormat.format ( currentTime ));
statsVO.setPdKind("D"); //일별조회
statsVO.setStatsKind("PRSONAL"); //개인별
statsVO.setDetailStatsKind("");
}
if (statsVO.getFromDate() != null && !"".equals(statsVO.getFromDate())) {
List<?> conectStats = conectStatsService.selectConectStats(statsVO);
int totCnt = conectStatsService.selectConectStatsTotCnt(statsVO);
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("paginationInfo", paginationInfo);
// 1. 서비스별
if ("SERVICE".equals(statsVO.getStatsKind())) {
model.addAttribute("conectStats", conectStats);
model.addAttribute("statsInfo", statsVO);
// 2. 개인별
} else {
// 그래프에 표시될 이미지 길이를 결정한다.
float iMaxUnit = 50.0f;
for (int i = 0; i < conectStats.size(); i++) {
StatsVO vo = (StatsVO)conectStats.get(i);
int iCnt = vo.getStatsCo();
if (iCnt > 10 && iCnt <= 100) {
if (iMaxUnit > 5.0f) {
iMaxUnit = 5.0f;
}
} else if (iCnt > 100 && iCnt <= 1000) {
if (iMaxUnit > 0.5f) {
iMaxUnit = 0.5f;
}
} else if (iCnt > 1000) {
if (iMaxUnit > 0.05f) {
iMaxUnit = 0.05f;
}
}
}
statsVO.setMaxUnit(iMaxUnit);
model.addAttribute("conectStats", conectStats);
model.addAttribute("statsInfo", statsVO);
}
}
return "sts/cst/EgovConectStats";
}
/**
* 매뉴별 접속 통계를 조회한다
* @param statsVO StatsVO
* @return String
* @exception Exception
*/
@RequestMapping(value="/sts/cst/selectConectMenuStats.do")
public String selectConectMenuStats(@ModelAttribute("statsVO") StatsVO statsVO,
ModelMap model) throws Exception {
statsVO.setPageUnit(propertyService.getInt("pageUnit"));
statsVO.setPageSize(propertyService.getInt("pageSize"));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(statsVO.getPageIndex());
paginationInfo.setRecordCountPerPage(statsVO.getPageUnit());
paginationInfo.setPageSize(statsVO.getPageSize());
paginationInfo.setRecordCountPerPage(20);//목록 20개
statsVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
statsVO.setLastIndex(paginationInfo.getLastRecordIndex());
statsVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if (statsVO.getFromDate() == null || statsVO.getToDate() == null){ //최초 접속
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA );
Date currentTime = new Date ();
statsVO.setFromDate(mSimpleDateFormat.format ( currentTime ));
statsVO.setToDate(mSimpleDateFormat.format ( currentTime ));
String mTime = mSimpleDateFormat.format ( currentTime );
}
if (statsVO.getFromDate() != null && !"".equals(statsVO.getFromDate())) {
List<?> conectStats = conectStatsService.selectConectMenuStats(statsVO);
int totCnt = conectStatsService.selectConectStatsMenuTotCnt(statsVO);
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("paginationInfo", paginationInfo);
// 1. 서비스별
if ("SERVICE".equals(statsVO.getStatsKind())) {
model.addAttribute("conectStats", conectStats);
model.addAttribute("statsInfo", statsVO);
// 2. 개인별
} else {
// 그래프에 표시될 이미지 길이를 결정한다.
float iMaxUnit = 50.0f;
for (int i = 0; i < conectStats.size(); i++) {
StatsVO vo = (StatsVO)conectStats.get(i);
int iCnt = vo.getStatsCo();
if (iCnt > 10 && iCnt <= 100) {
if (iMaxUnit > 5.0f) {
iMaxUnit = 5.0f;
}
} else if (iCnt > 100 && iCnt <= 1000) {
if (iMaxUnit > 0.5f) {
iMaxUnit = 0.5f;
}
} else if (iCnt > 1000) {
if (iMaxUnit > 0.05f) {
iMaxUnit = 0.05f;
}
}
}
statsVO.setMaxUnit(iMaxUnit);
model.addAttribute("conectStats", conectStats);
model.addAttribute("statsInfo", statsVO);
}
}
return "sts/cst/EgovConectMenuStats";
}
}