package kcg.imis.member.mapper;

import java.util.List;

import kcg.imis.member.vo.MemberSearchVO;
import kcg.imis.member.vo.MemberVO;
import kcg.imis.sec.LoginUserVO;

import org.springframework.stereotype.Repository;

import egovframework.rte.psl.dataaccess.EgovAbstractMapper;

/**
 * @FileName : MemberMapper.java
 * @Project : 국제해양프로젝트
 * @Date : 2018. 4. 9.
 * @작성자 : Moon
 * @변경이력 :
 * @프로그램 설명 :
 */
@Repository("memberMapper")
public class MemberMapper extends EgovAbstractMapper {

	/**
	 * 회원 목록(no paging)을 반환한다.
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public List<MemberVO> getMemberListAll(final MemberSearchVO searchVO) throws Exception {
		return selectList("Member.getMemberListAll", searchVO);
	}
	
	/**
	 * 회원 정보 상세 조회
	 * @param userid
	 * @return
	 * @throws Exception
	 */
	public MemberVO getMemberInfo(String userid) throws Exception {
		return selectOne("Member.getMemberInfo", userid);
	}
	
	/**
	 * 담당관 정보 조회
	 * @param userid
	 * @return
	 * @throws Exception
	 */
	public MemberVO getHeadMember() throws Exception {
		return selectOne("Member.getHeadMember");
	}
	
	/**
	 * 팀장 정보조회
	 * @param userid
	 * @return
	 * @throws Exception
	 */
	public MemberVO getSectionMember() throws Exception {
		return selectOne("Member.getSectionMember");
	}
	
	/**
	 * 회원 목록 을 반환한다.
	 * @param searchVO 검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public List<MemberVO> getMemberList(final MemberSearchVO searchVO) throws Exception {
		return selectList("Member.getMemberList", searchVO);
	}
	
	/**
	 * 엑셀용 회원 목록 을 반환한다.
	 * @param searchVO
	 * @return
	 * @throws Exception
	 */
	public List<MemberVO> getMemberListForExel(final MemberSearchVO searchVO) throws Exception {
		return selectList("Member.getMemberListForExel", searchVO);
	}
	
	/**
	 * 회원 목록 조회
	 * @param searchVO
	 * @return
	 */
	public List<LoginUserVO> getMemberListUserVO(MemberSearchVO searchVO) throws Exception {
		return selectList("Member.getMemberListUserVO", searchVO);
	}
	
	/**
	 * 회원목록 갯수
	 * @param searchVO
	 * @return
	 */
	public int getMemberListCnt(MemberSearchVO searchVO) throws Exception {
		return (Integer) selectOne("Member.getMemberListCnt", searchVO);
	}
	
	/**
	 * 회원목록 전체 갯수
	 * @param searchVO
	 * @return
	 */
	public int getMemberListAllCnt(MemberSearchVO searchVO) throws Exception {
		return (Integer) selectOne("Member.getMemberListAllCnt", searchVO);
	}
	
	/**
	 * 회원 등급 설정
	 * @param vo
	 * @return
	 */
	public int updateUsrLv(MemberVO vo) throws Exception {
		return update("Member.updateUsrLv", vo);
	}
	
	/**
	 * 회원 견문권한 설정
	 * @param vo
	 * @return
	 */
	public int updateRtpAuth(MemberVO vo) throws Exception {
		return update("Member.updateRtpAuth", vo);
	}
	
	/**
	 * 회원가입
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public int insertUserInfo(MemberVO vo) throws Exception {
		return update("Member.insertUserInfo", vo);
	}
	
	/**
	 *  회원정보 수정
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public int updateUserInfo(MemberVO vo) throws Exception {
		return update("Member.updateUserInfo", vo);
	}
	
	/**
	 * 회원아이다 중복체크
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public int selectCheckId(String userid) throws Exception {
		return selectOne("Member.selectCheckId", userid);
	}
	
	
}
