package com.takensoft.cms.mber.dao; import com.takensoft.cms.mber.dto.JoinDTO; import com.takensoft.cms.mber.dto.PasswordDTO; import com.takensoft.cms.mber.vo.MberAuthorVO; import com.takensoft.cms.mber.vo.MberVO; import com.takensoft.common.Pagination; import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import java.util.*; /** * @author takensoft * @since 2024.04.01 * @modification * since | author | description * 2024.04.01 | takensoft | 최초 등록 * * 회원 정보 관련 Mapper */ @Mapper("mberDAO") public interface MberDAO { /** * @param lgnId - 로그인 아이디 * @return MberVO - 사용자 정보 조회 결과 * * 사용자 정보 조회 [security 용] */ MberVO findByMberSecurity(String lgnId); /** * @param lgnId - 로그인 아이디 * @return boolean - 아이디 중복 여부 * * 아이디 중복 검사 */ boolean findByCheckLoginId(String lgnId); /** * @param joinDTO - 회원 가입 관련 DTO * @return int - 회원가입 결과 * * 회원가입 */ int save(JoinDTO joinDTO); /** * @param mberAuthorVO - 사용자 권한 관련 VO * @return int - 사용자 권한 등록 결과 * * 사용자 권한 등록 */ int authorSave(MberAuthorVO mberAuthorVO); /** * @param passwordDTO -비밀 번호 변경 관련 DTO * @return int - 비밀 번호 변경 결과 * * 비밀 번호 변경 */ int updatePassword(PasswordDTO passwordDTO); /** * @param mbrId -회원 아이디 * @return MberVO - 사용자 정보 조회 결과 * * 사용자 정보 조회 */ MberVO findByMber(String mbrId); /** * @param email - 이메일 * @return MberVO - 사용자 정보 * * 이메일로만 사용자 조회 (provider 무관) */ MberVO findByEmail(String email); /** * @param email - 이메일 * @param provider - OAuth2 제공자 * @return MberVO - OAuth2 사용자 정보 * * 이메일과 제공자로 사용자 조회 */ MberVO findByEmailAndProvider(String email, String mbrType); /** * @param mberVO - OAuth2 사용자 정보 * @return int - OAuth2 사용자 저장 결과 * * OAuth2 사용자 저장 */ int saveOAuthUser(MberVO mberVO); /** * @param mberVO - OAuth2 사용자 정보 * @return int - OAuth2 사용자 업데이트 결과 * * OAuth2 사용자 정보 업데이트 */ int updateOAuthUser(MberVO mberVO); /** * @param mberVO - OAuth2 연동 정보 * @return int - 연동 결과 * * 기존 계정에 OAuth2 정보 연동 */ int linkOAuth2Account(MberVO mberVO); /** * @param mbrId - 회원 ID * @return List - 회원 권한 목록 * * 회원 ID로 권한 목록 조회 */ List findAuthoritiesByMbrId(String mbrId); }