package kcg.imis.member.service;

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

import kcg.imis.cmmn.bbs.BaseBbsService;
import kcg.imis.member.vo.MemberSearchVO;
import kcg.imis.member.vo.MemberVO;

/**
 * @FileName : MemberService.java
 * @Project : 국제해양프로젝트
 * @Date : 2018. 4. 9.
 * @작성자 : Moon
 * @변경이력 :
 * @프로그램 설명 :
 */
public interface MemberService {

	/**
	 * 회워 목록(no paging)읇 반환한다.
	 * 
	 * @param searchVO
	 *            검색조건 VO
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	List<MemberVO> getMemberListAll(MemberSearchVO searchVO) throws Exception;
	
	/**
	 * 회원 상세 정보 조회
	 * @param searchVO
	 * @return
	 * @throws Exception
	 */
	MemberVO getMemberInfo(String userid) throws Exception;

	/**
	 * 팀장 정보 조회
	 * @param userid
	 * @return
	 * @throws Exception
	 */
	MemberVO getHeadMember() throws Exception;
	
	/**
	 * 담당관 정보 조회
	 * @param userid
	 * @return
	 * @throws Exception
	 */
	MemberVO getSectionMember() throws Exception;
	
	/**
	 * 회원 목록 조회
	 * @param searchVO
	 * @return
	 * @throws Exception
	 */
	List<MemberVO> getMemberList(MemberSearchVO searchVO) throws Exception;
	

	/**
	 * 엑셀용 회원 목록 조회
	 * @param searchVO
	 * @return
	 * @throws Exception
	 */
	List<MemberVO> getMemberListForExel(final MemberSearchVO searchVO) throws Exception;
	
	/**
	 * 회원 목록 갯수
	 * @param searchVO
	 * @return
	 * @throws Exception
	 */
	 int getMemberListCnt(final MemberSearchVO searchVO) throws Exception;
	
	/**
	 * 회원 목록 전체 갯수
	 * @param searchVO
	 * @return
	 * @throws Exception
	 */
	 int getMemberListAllCnt(final MemberSearchVO searchVO) throws Exception;
	
		 
	
	/**
	 * 회원 권한을 설정한다.
	 * 
	 * @param memberVO userid, usegrade 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	 int updateMemberAuth(final MemberVO memberVO) throws Exception;
	
	/**
	 * 회원 견문권한을 설정한다.
	 * 
	 * @param memberVO userid, usegrade 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	 int updateMemberRpt(final MemberVO memberVO) throws Exception;
	/**
	 * 회원 팀장 권한을 설정한다.
	 * 
	 * @param memberVO userid 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	 int updateSection(final MemberVO memberVO) throws Exception ;
	
	/**
	 * 회원 담당관 권한을 설정한다.
	 * 
	 * @param memberVO userid 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	 int updateHead(final MemberVO memberVO) throws Exception;
	 
	 
	 /**
	 * 회원가입
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	 int insertUserInfo(MemberVO vo) throws Exception;
	 
	 /**
	  *회원정보수정
	  * @param vo
	  * @return
	  * @throws Exception
	  */
	 int updateUserInfo(MemberVO vo) throws Exception;
	 
	 /**
	 * 회원아이다 중복체크
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	int selectCheckId(String userid) throws Exception;

	HashMap<String, Object> getMemberListUserVo(final MemberSearchVO searchVO) throws Exception;
}
