package kcg.faics.cmmn.service.impl;

import java.util.HashMap;
import java.util.List;

import kcg.faics.admin.vo.LogSearchVO;
import kcg.faics.admin.vo.LogVO;
import kcg.faics.sec.LoginUserVO;

import org.springframework.stereotype.Repository;

import egovframework.rte.psl.dataaccess.EgovAbstractMapper;

/** 
 * LogMapper.java
 * @author 임새미 
 * @since 2016. 11. 10.
 *
 *  	 수정일                     수정자                                       수정내용
 *  -------------	--------	---------------------------
 *  2016. 11. 10. 	    임새미				       최초생성
 * 
 */
@Repository
public class LogMapper extends EgovAbstractMapper {

	
	public List<LogVO> selectUserLog(LogSearchVO searchVO) throws Exception {
		return selectList("Log.selectUserLog", searchVO);
	}
	public List<LogVO> selectLoginoutLog(LogSearchVO searchVO) throws Exception {
		return selectList("Log.selectLoginoutLog", searchVO);
	}
	
	public List<HashMap<String, Object>> selectUrlInfo(LogVO logVO) throws Exception {
		return selectList("Log.selectUrlInfo", logVO);
	}
	
	/**
	 * 사용자 로그를 추가한다.
	 * 
	 * @param paramMap 파라미터 맵
	 * @return 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	public int insertUserLog(HashMap<String, Object> paramMap) {
		return insert("Log.insertUserLog", paramMap);
	}

	/**
	 * 검색 키워드에 따른 총 로그 개수를 조회한다.
	 * 
	 * @param searchVO 검색, 페이지 정보 객체
	 * @return 로그 개수
	 * @exception Exception 기본 예외 처리
	 */
    public int selectLogListTotCnt(final LogSearchVO searchVO) throws Exception {
    	return (Integer) selectOne("Log.selectLogListTotCnt", searchVO);
    }
	
	/**
	 * 전체 로그 개수를 가져온다.
	 * @param searchVO 
	 * 
	 * @return 로그 개수
	 * @throws Exception 기본 예외 처리
	 */
    public int selectLogTotalCnt(final LogSearchVO searchVO) throws Exception {
        return (Integer) selectOne("Log.selectLogTotalCnt", searchVO);
    }
	/**
	 * 설명
	 * 
	 * @param 파라미터 파라미터설명
	 * @return 리턴값 설명
	 * @throws Exception 기본 예외 처리
	 */
	public int insertLoginoutLog(LoginUserVO user, int type) {
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put("user", user);
		paramMap.put("type", type);
		return (Integer) insert("Log.insertLoginoutLog", paramMap);
	}

}
