/** 
 * LogServiceImpl.java
 * @author 임새미 
 * @since 2016. 11. 10.
 *
 *  	 수정일                     수정자                                       수정내용
 *  -------------	--------	---------------------------
 *  2016. 11. 10. 	    임새미				       최초생성
 * 
 */
package kcg.faics.cmmn.service.impl;

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

import javax.annotation.Resource;

import kcg.faics.admin.vo.LogSearchVO;
import kcg.faics.admin.vo.LogVO;
import kcg.faics.cmmn.service.LogService;

import org.springframework.stereotype.Service;

/** 
 * LogServiceImpl.java
 * @author 임새미 
 * @since 2016. 11. 10.
 *
 *  	 수정일                     수정자                                       수정내용
 *  -------------	--------	---------------------------
 *  2016. 11. 10. 	    임새미				       최초생성
 * 
 */
@Service("logService")
public class LogServiceImpl implements LogService {

	@Resource(name="logMapper")
	LogMapper logMapper;
	
	
	@Override
	public List<LogVO> getUserLogList(LogSearchVO searchVO) throws Exception {
		List<LogVO> result = null;
		if (searchVO.getType() == 1) {
			result = logMapper.selectLoginoutLog(searchVO);
		} else {
			result = logMapper.selectUserLog(searchVO);
			Iterator<LogVO> it = result.iterator();
			while(it.hasNext()) {
				LogVO vo = it.next();
				String url = "";
				List<HashMap<String, Object>> maps = logMapper.selectUrlInfo(vo);
				for (int i = 0; i < maps.size(); i++) {
					String name = (String) maps.get(i).get("NAME");
					if (name != null) {
						url = url + maps.get(i).get("NAME");
						if (maps.size() != i + 1) {
							url = url + " > ";
						}
					}
				}
				vo.setLocation1(url);
			}
		}
		
		return result;
	}

	/**
	 * 사용자 로그를 추가한다.
	 * 
	 * @param paramMap 파라미터 맵
	 * @return 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public int insertUserLog(HashMap<String, Object> paramMap) throws Exception {
		return logMapper.insertUserLog(paramMap);
	}

	/**
	 * 검색 키워드에 따른 총 로그 개수를 조회한다.
	 * 
	 * @param searchVO 검색, 페이지 정보 객체
	 * @return 로그 개수
	 * @exception Exception 기본 예외 처리
	 */
	@Override
	public int selectListCnt(LogSearchVO searchVO) throws Exception {
		return logMapper.selectLogListTotCnt(searchVO);
	}

	/**
	 * 전체 로그 개수를 가져온다.
	 * @param searchVO 
	 * 
	 * @return 로그 개수
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public int selectTotalCnt(LogSearchVO searchVO) throws Exception {
		return logMapper.selectLogTotalCnt(searchVO);
	}

}
