2022-11-08 15:05 검사기준서 확인 및 소스 수정

This commit is contained in:
myname 2022-11-08 15:05:38 +09:00
parent 448f1b5c6c
commit 5b10c1c8bf
8 changed files with 190 additions and 122 deletions

View File

@ -78,6 +78,8 @@ public interface EgovLoginLogService {
public List<LoginLog> selectUserMenuList(LoginLog loginLog) throws Exception;
public List<LoginLog> selectUserMenuList20221108(LoginLog loginLog) throws Exception;
public LoginLog selectLogCnt(LoginLog footerLog) throws Exception;
public void logInsertUsrLoginLog(LoginLog loginLog) throws Exception;

View File

@ -177,6 +177,10 @@ public class EgovLoginLogServiceImpl extends EgovAbstractServiceImpl implements
public List<LoginLog> selectUserMenuList(LoginLog loginLog) throws Exception {
return loginLogDAO.selectUserMenuList(loginLog);
}
@Override
public List<LoginLog> selectUserMenuList20221108(LoginLog loginLog) throws Exception {
return loginLogDAO.selectUserMenuList20221108(loginLog);
}
@Override
public LoginLog selectLogCnt(LoginLog loginLog) throws Exception {

View File

@ -155,6 +155,11 @@ public class LoginLogDAO extends EgovAbstractDAO {
return (List<LoginLog>)list("LoginLogDAO.selectUserMenuList", loginLog);
}
@SuppressWarnings("unchecked")
public List<LoginLog> selectUserMenuList20221108(LoginLog loginLog) throws Exception{
return (List<LoginLog>)list("LoginLogDAO.selectUserMenuList20221108", loginLog);
}
public LoginLog selectLogCnt(LoginLog loginLog) throws Exception{
return (LoginLog)select("LoginLogDAO.selectLogCnt", loginLog);
}

View File

@ -3,7 +3,6 @@ package kcc.let.sym.log.clg.web;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
@ -440,6 +439,8 @@ public class EgovLoginLogController {
public String selectWebLogList(@ModelAttribute("searchVO") LoginLog loginLog,
@RequestParam Map<String, Object> commandMap ,
ModelMap model) throws Exception {
/*
if(loginLog.getPageUnit() != 10) {
loginLog.setPageUnit(loginLog.getPageUnit());
}
@ -456,7 +457,9 @@ public class EgovLoginLogController {
String beforeMonth = new java.text.SimpleDateFormat("yyyy-MM-dd").format(mon.getTime());
loginLog.setSearchBgnDe(beforeMonth);
}
*/
/*
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(loginLog.getPageIndex());
paginationInfo.setRecordCountPerPage(loginLog.getPageUnit());
@ -466,14 +469,17 @@ public class EgovLoginLogController {
loginLog.setLastIndex(paginationInfo.getLastRecordIndex());
loginLog.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(loginLog.getSearchSortCnd())){ //최초조회시 최신것 조회List
loginLog.setSearchSortCnd("logId");
loginLog.setSearchSortOrd("asc");
}
*/
List<LoginLog> webMenuLogList = loginLogService.selectWebMenuLogList(loginLog); //사용자 매뉴 리스트
List<LoginLog> userMenuList = loginLogService.selectUserMenuList(loginLog); //사용자 매뉴(전체)
//List<LoginLog> webMenuLogList = loginLogService.selectWebMenuLogList(loginLog); //사용자 매뉴 리스트
List<LoginLog> userMenuList = loginLogService.selectUserMenuList20221108(loginLog); //사용자 매뉴(전체)
/*
for(LoginLog userMenuVO :userMenuList){
List<LoginLog> tempDataList = new ArrayList<LoginLog>();
for(LoginLog logVO : webMenuLogList) {
@ -499,13 +505,14 @@ public class EgovLoginLogController {
tempLog.setMenuCnt(totalCnt);
logVO.getLogDataList().add(tempLog);
}
*/
model.addAttribute("userMenuList", userMenuList);
/* paginationInfo.setTotalRecordCount( webLogList.size()> 0 ? ((LoginLog)webLogList.get(0)).getTotCnt() : 0);
model.addAttribute("webLogList", webLogList);*/
paginationInfo.setTotalRecordCount(userMenuList.size());
model.addAttribute("paginationInfo", paginationInfo);
//paginationInfo.setTotalRecordCount(userMenuList.size());
//model.addAttribute("paginationInfo", paginationInfo);
return "sym/log/clg/SelectWebLogList";
}

View File

@ -637,6 +637,29 @@
ORDER BY menuNo , creatDt DESC
</select>
<!-- 사용자 메뉴별 접속 로그 리스트 -->
<select id="LoginLogDAO.selectUserMenuList20221108" parameterClass="loginLog" resultClass="loginLog">
SELECT a.menu_nm AS menuNm
, COUNT(*) AS totalLogCnt
, MIN(a.creat_dt) AS searchStartDt
, Max(a.creat_dt) AS searchEndDt
FROM LETTNLOGINLOG A
WHERE 1=1
<isNotEmpty prepend="AND" property="searchKeyword">
a.menu_nm LIKE CONCAT('%',#searchKeyword#,'%')
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchStartDt">
a.creat_dt >= TO_DATETIME(CONCAT (#searchStartDt#,' 00:00:00'),'YYYY-MM-DD HH24:MI:SS')
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchEndDt">
TO_DATETIME(CONCAT (#searchEndDt#,' 23:59:59'),'YYYY-MM-DD HH24:MI:SS') >= a.creat_dt
</isNotEmpty>
GROUP BY menu_nm
</select>
<!-- 사용자 메뉴별 접속 로그 리스트 (접속일자(조회))-->
<select id="LoginLogDAO.selectDateLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */

View File

@ -0,0 +1 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><img alt="" src="/utl/wed/imageSrc.do?path=20221108&amp;physical=5A6CB8B26D3444068DC1CF9166E6116C&amp;contentType=image/jpeg" style="width: 1338px; height: 1004px;" />ddd

View File

@ -70,7 +70,7 @@
var form = $('<form id="payform"></form>');
form.append($('<input/>', {type: 'hidden', name: 'mltApprSeq', value: 'test'}));
form.appendTo('body');
commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do" , "850", "700", "AppReqPopup", form);
commonPopWindowopenForm("/kccadr/advcSttst/popup/adjReqMgrOffAppReqPop.do" , "850", "700", "AppReqPopup", form);
form.remove();
}
</script>
@ -200,7 +200,7 @@
<!-- //list -->
<div class="btn_wrap btn_layout02">
<button type="button" class="btnType02" onclick="AppReq();">결재 요청 팝업 임시버튼</button>
<!-- <button type="button" class="btnType02" onclick="AppReq();">결재 요청 팝업 임시버튼</button> -->
<button class="btnType02" onclick="fncCreate(); return false;" >등록</button>
</div>

View File

@ -62,7 +62,8 @@ function fn_select(pageNo){
function fn_select_menu(progrmFileNm){
var frm = document.frm;
frm.progrmFileNm.value=progrmFileNm;
frm.action = "<c:url value='/sym/log/clg/SelectWebMenuLogList.do'/>";
frm.action = "<c:url value='/sym/log/clg/SelectWebLogList.do'/>";
//sym/log/clg/SelectWebLogList.do
frm.submit();
}
@ -153,132 +154,157 @@ function webLogListExcelDownload(){
</head>
<body>
<noscript>자바스크립트를 지원하지 않는 브라우저에서는 일부 기능을 사용하실 수 없습니다.</noscript>
<form name="frm" id="frm" action ="<c:url value='/sym/log/clg/SelectLoginLogList.do'/>" method="post">
<form name="frm" id="frm" action ="<c:url value='/sym/log/clg/SelectWebLogList.do'/>" method="post">
<input type="hidden" name="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" />
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
<input type="hidden" name="searchBgnDe" value="<c:out value="${searchVO.searchBgnDe}" />" />
<input type="hidden" name="searchEndDe" value="<c:out value="${searchVO.searchEndDe}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
<input type="hidden" name="progrmFileNm" value="" />
<div class="contWrap">
<div class="pageTitle">
<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
<h2 class="titType1 c_222222 fwBold">사용자메뉴별접속통계</h2>
<p class="tType6 c_999999">사용자메뉴별접속통계 파악할 수 있습니다.</p>
</div>
<div class="pageCont">
<div class="listSerch">
<select name="searchCondition" id="searchCondition" class="select" title="검색조건선택">
<option value='' <c:if test="${searchVO.searchCondition == ''}">selected</c:if> >전체</option>
<option value='1' <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>메뉴명</option>
</select>
<select name="dateType" id="dateType" class="select" title="검색조건선택">
<option value='D' <c:if test="${searchVO.dateType == 'D'}">selected</c:if>>일별</option>
<option value='M' <c:if test="${searchVO.dateType == 'M'}">selected</c:if>>월별</option>
<option value='Y' <c:if test="${searchVO.dateType == 'Y'}">selected</c:if>>년별</option>
</select>
<div class="cont_wrap">
<div class="box">
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<input type="button" class="btnType1" value="검색" onclick="fn_select('1'); return false;">
<!-- cont_tit -->
<div class="cont_tit">
<h2>사용자메뉴별접속통계</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>운영관리</p>
</li>
<li>
<p>로그관리</p>
</li>
<li><span class="cur_nav">사용자메뉴별접속통계</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="listTop">
<p class="tType5">리스트 수 : <span class="tType4 c_456ded fwBold"><c:out value="${paginationInfo.totalRecordCount}"/></span>건</p>
<div class="cont">
<td colspan="3">
<input type="hidden" name="cal_url" id="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" >
<input type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="10" maxlength="10" class="readOnlyClass" value="<c:out value="${searchVO.searchBgnDe}"/>" readonly >
<a href="#" onClick="javascript:fn_egov_NormalCalendar(document.forms.frm, document.forms.frm.ntceBgndeYYYMMDD);">
<input type="button" class="calBtn">
</a>
&nbsp;&nbsp;~&nbsp;&nbsp;
<input type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="10" maxlength="10" class="readOnlyClass" value="<c:out value="${searchVO.searchEndDe}"/>" readonly >
<a href="#" onClick="javascript:fn_egov_NormalCalendar(document.forms.frm, document.forms.frm.ntceEnddeYYYMMDD);">
<input type="button" class="calBtn">
</a>
</td>
<!-- list_top -->
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<!--
<li>
<p class="tit_text">구분</p>
<select name="searchCondition" id="searchCondition">
<option value='' <c:if test="${searchVO.searchCondition == ''}">selected</c:if> >전체</option>
<option value='1' <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>메뉴명</option>
<option value='2' <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>URL</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<button class="btn_search" onclick="fn_select('1'); return false;">검색</button>
</li>
-->
<!--
<li>
<p class="tType5">리스트 수 : <span class="tType4 c_456ded fwBold"><c:out value="${paginationInfo.totalRecordCount}"/></span>건</p>
</li>
-->
<li>
<div id="sel_date" class="sel_date">
<input type="text" class="startDate inp" title="검색시작일" id="startDate01" name="searchStartDt" onclick="return calendarOpen('startDate01-lry','',this)" value="${searchVO.searchStartDt}" data-datecontrol="true" readonly>
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('startDate01-lry','',this)" class="btn_cal"></button>
<div id="startDate01-lry" class="calendarPop" style="display: none;">
<iframe id="startDate01-ifrm" name="startDate01-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
</div>
</div> ~
<input type="text" class="endDate inp" title="검색시작일" id="endDate" name="searchEndDt" onclick="return calendarOpen('endDate-lry','',this)" value="${searchVO.searchEndDt}" data-datecontrol="true" readonly>
<div class="calendar_in" id="calendarName_endDate" style="z-index: 9;">
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('endDate-lry','',this)" class="btn_cal" ></button>
<div id="endDate-lry" class="calendarPop" style="display: none;">
<iframe id="endDate-ifrm" name="endDate-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html"title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
</div>
</div>
</div>
<div class="rightWrap">
<input type="button" class="excelBtn" onclick="javascript:webLogListExcelDownload();">
<input type="button" class="printBtn" >
<%-- <select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
<option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${searchVO.pageUnit == '30'}">selected</c:if>>30줄</option>
</select> --%>
<!--
<input type="hidden" name="cal_url" id="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" >
<input type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="10" maxlength="10" class="readOnlyClass" value="<c:out value="${searchVO.searchBgnDe}"/>" readonly >
<a href="#" onClick="javascript:fn_egov_NormalCalendar(document.forms.frm, document.forms.frm.ntceBgndeYYYMMDD);">
<input type="button" class="calBtn">
</a>
&nbsp;&nbsp;~&nbsp;&nbsp;
<input type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="10" maxlength="10" class="readOnlyClass" value="<c:out value="${searchVO.searchEndDe}"/>" readonly >
<a href="#" onClick="javascript:fn_egov_NormalCalendar(document.forms.frm, document.forms.frm.ntceEnddeYYYMMDD);">
<input type="button" class="calBtn">
</a>
-->
</li>
<li>
<select name="searchCondition" id="searchCondition" class="select" title="검색조건선택">
<option value='' <c:if test="${searchVO.searchCondition == ''}">selected</c:if> >전체</option>
<option value='1' <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>메뉴명</option>
</select>
<!--
<select name="dateType" id="dateType" class="select" title="검색조건선택">
<option value='D' <c:if test="${searchVO.dateType == 'D'}">selected</c:if>>일별</option>
<option value='M' <c:if test="${searchVO.dateType == 'M'}">selected</c:if>>월별</option>
<option value='Y' <c:if test="${searchVO.dateType == 'Y'}">selected</c:if>>년별</option>
</select>
-->
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<button class="btn_search" onclick="fn_select('1'); return false;">검색</button>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="tableWrap">
<table class="tbType1">
<colgroup>
<col style="width: 5%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- //list_top -->
<!-- list -->
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 8%">
<col style="width: 12%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
</colgroup>
<thead>
<tr>
<c:if test="${not empty userMenuList}">
<th>번호</th>
<th>메뉴명</th>
<c:forEach var="result" items="${userMenuList[0].logDataList}"
end="${fn:length(userMenuList[0].logDataList)-2}" varStatus="status">
<th>
<c:if test="${searchVO.dateType == 'D'}"><!--일별 -->
${fn:substring(result.creatDt,5,7)}<br>
${fn:substring(result.creatDt,8,10)}
</c:if>
<c:if test="${searchVO.dateType == 'M'}"><!--월별 -->
${fn:substring(result.creatDt,0,4)}<br>
${fn:substring(result.creatDt,5,8)}
</c:if>
<c:if test="${searchVO.dateType == 'Y'}"><!--년별 -->
${fn:substring(result.creatDt,0,4)}
</c:if>
</th>
</c:forEach>
<th>합계</th>
</c:if>
<th>번호 <button type="button" class="sortBtn sort" id="sort_logId"></button></th>
<th>메뉴명 <button type="button" class="sortBtn sort" id="sort_menuNm"></button></th>
<th>접속수 <button type="button" class="sortBtn sort" id="sort_approNm"></button></th>
<th>최초접속일자 <button type="button" class="sortBtn sort" id="sort_creatDt"></button></th>
<th>최종접속일자 <button type="button" class="sortBtn sort" id="sort_creatDt"></button></th>
</tr>
</thead>
<tbody>
</thead>
<tbody>
<c:forEach var="result" items="${userMenuList}" varStatus="status">
<tr>
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</td>
<td>
<a herf="#" style="cursor: pointer" onclick="fn_select_menu('${result.progrmFileNm}'); return false;"><c:out value="${result.menuNm}"/></a>
</td>
<c:forEach var="resultLogData" items="${result.logDataList}" varStatus="status">
<td>${resultLogData.menuCnt}</td>
</c:forEach>
</tr>
<tr>
<td><c:out value="${status.count}"/></td>
<td><c:out value="${result.menuNm}"/></td>
<td><c:out value="${result.totalLogCnt}"/></td>
<td><c:out value="${result.searchStartDt}"/></td>
<td><c:out value="${result.searchEndDt}"/></td>
</tr>
</c:forEach>
<c:if test="${empty userMenuList}">
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="btnWrap">
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<!-- <div class="page"> -->
<%-- <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> --%>
<!-- </div> -->
<!-- //page -->
</div>
<c:if test="${!empty adminLogList}">
<div class="page">
<!-- 페이지 네비게이션 시작 -->
<ul class="inline">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul>
<!-- //페이지 네비게이션 끝 -->
</div>
</c:if>
</div>
</div>
</form>
@ -288,6 +314,6 @@ function webLogListExcelDownload(){
<input name="searchKeyword" type="hidden" />
<input name="searchConditionSite" type="hidden" />
</form>
<c:import url="/uss/umt/IncInfoProtect.do" />
</body>
</html>