
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
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.MberSocialAccountVO;
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 | 최초 등록
* 2025.05.29 | 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 params
* - eml: 이메일 정보
* - mbrId: 회원 아이디
* @return MberVO - 사용자 정보
*
* 이메일로만 사용자 조회 (provider 무관)
*/
MberVO findByEmail(HashMap<String, Object> params);
/**
* @param email - 이메일
* @param mbrType - OAuth2 회원 유형 (K, N, G, F, S)
* @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<MberAuthorVO> - 회원 권한 목록
*
* 회원 ID로 권한 목록 조회
*/
List<MberAuthorVO> findAuthoritiesByMbrId(String mbrId);
// ===================================
// 통합 로그인을 위한 새로운 메서드들
// ===================================
/**
* @param params - 제공자 타입과 식별자를 포함한 Map
* - lgnOffrType: 제공자 타입 (SYSTEM, KAKAO, NAVER, GOOGLE)
* - identifier: 식별자 (로그인ID 또는 소셜ID)
* @return MberVO - 통합 로그인으로 조회된 사용자 정보
*
* 통합 로그인: 제공자별 사용자 조회
*/
MberVO findByUnifiedLogin(HashMap<String, Object> params);
/**
* @param email - 이메일
* @return MberVO - 이메일로 조회된 사용자 정보 (첫 번째 계정)
*
* 이메일로 모든 연동 계정 조회 (통합용)
*/
MberVO findAllAccountsByEmail(String email);
/**
* @param mbrId - 회원 ID
* @return List<MberSocialAccountVO> - 소셜 계정 목록
*
* 회원 ID로 소셜 계정 목록 조회
*/
List<MberSocialAccountVO> findSocialAccountsByMbrId(String mbrId, boolean searchAll);
/**
* @param params - 회원 ID와 제공자 타입을 포함한 Map
* - mbrId: 회원 ID
* - lgnOffrType: 제공자 타입
* @return MberSocialAccountVO - 특정 제공자의 소셜 계정 정보
*
* 특정 제공자로 소셜 계정 조회
*/
MberSocialAccountVO findSocialAccountByProvider(HashMap<String, Object> params);
/**
* @param socialAccount - 소셜 계정 정보
* @return int - 저장 결과
*
* 소셜 계정 정보 저장
*/
int saveSocialAccount(MberSocialAccountVO socialAccount);
/**
* @param socialAccount - 소셜 계정 연동 정보
* @return int - 연동 결과
*
* 소셜 계정 연동 (중복 시 업데이트)
*/
int linkSocialAccount(MberSocialAccountVO socialAccount);
/**
* @param params - 연동 해지 정보를 포함한 Map
* - snsEml: 소셜 계정 이메일
* - mbrId: 회원 ID
* - mdfr: 수정자
* @return int - 수정 결과
*
* 소셜 계정 이메일 수정
*/
int updateSocialAccountEmail(HashMap<String, Object> params);
/**
* @param params - 연동 해지 정보를 포함한 Map
* - mbrId: 회원 ID
* - lgnOffrType: 제공자 타입
* - mdfr: 수정자
* @return int - 해지 결과
*
* 소셜 계정 연동 해지
*/
int unlinkSocialAccount(HashMap<String, Object> params);
/**
* @param params - 재연동 정보를 포함한 Map
* - mbrId: 회원 ID
* - lgnOffrType: 제공자 타입
* - mdfr: 수정자
* @return int - 재연동 결과
*
* 소셜 계정 재연동
*/
int reLinkSocialAccount(HashMap<String, Object> params);
/**
* @param params - 메인 프로필 설정 정보를 포함한 Map
* - mbrId: 회원 ID
* - lgnOffrType: 제공자 타입
* - mdfr: 수정자
* @return int - 설정 결과
*
* 메인 프로필 설정
*/
int setPrimaryProfile(HashMap<String, Object> params);
/**
* @param params - 연동 가능한 계정 검색 정보를 포함한 Map
* - email: 이메일
* - lgnOffrType: 제외할 제공자 타입
* @return MberVO - 연동 가능한 계정 정보
*
* 연동 가능한 계정 조회 (이메일로 검색, 특정 제공자 제외)
*/
MberVO findLinkableAccount(HashMap<String, Object> params);
}