package kcg.imis.cmmn.mapper;

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

import kcg.imis.cmmn.vo.MenuVO;

import org.springframework.stereotype.Repository;

import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
import egovframework.rte.psl.dataaccess.util.EgovMap;

@Repository("menuMapper")
public class MenuMapper extends EgovAbstractMapper {

	/**
	 * 현재 메뉴와 상위메뉴 목록을 반환한다.
	 * 
	 * @param menuVO
	 *            검색조건 VO
	 * @return 현재 메뉴를 포함한 상위메뉴 목록
	 */
	public List<MenuVO> selectMemuList(final MenuVO menuVO) {
		return selectList("Menu.selectMemuList", menuVO);
	}

	/**
	 * 게시판 메뉴에 대한 정보를 가져온다.
	 * 
	 * @return 데이터 맵
	 */
	public EgovMap getMenuInfo(final HashMap<String, Object> menu) {
		return selectOne("Menu.getMenuInfo", menu);
	}
	
	/**
	 * 설명
	 * 
	 * @param 파라미터 파라미터설명
	 * @return 리턴값 설명
	 * @throws Exception 기본 예외 처리
	 */
	public EgovMap getMenuInfoById(String menuId) {
		return selectOne("Menu.getMenuInfoById", menuId);
	}

	/**
	 * 설명
	 * 
	 * @param 파라미터 파라미터설명
	 * @return 리턴값 설명
	 * @throws Exception 기본 예외 처리
	 */
	public EgovMap getMenuInfoByParentId(Map<String, Object> paramMap) {
		return selectOne("Menu.getMenuInfoByParentId", paramMap);
	}
	/**
	 * 서브 메뉴 (3depth) 조회
	 * @param 파라미터 파라미터설명
	 * @return 리턴값 설명
	 * @throws Exception 기본 예외 처리
	 */
	public List<MenuVO> getSubMenu(EgovMap map) {
		return selectList("Menu.getSubMenu", map);
	}
	
	/**
	 * 탑 메뉴를 조회한다.
	 * @param 파라미터 파라미터설명
	 * @return 리턴값 설명
	 * @throws Exception 기본 예외 처리
	 */
	public List<MenuVO> getTopMenu(EgovMap map) {
		return selectList("Menu.getTopMenu", map);
	}
	
}
