package com.takensoft.cms.mber.service; import com.takensoft.cms.mber.dto.JoinDTO; import com.takensoft.cms.mber.dto.PasswordDTO; import com.takensoft.cms.mber.vo.MberVO; import jakarta.servlet.http.HttpServletRequest; import org.springframework.dao.DataAccessException; import java.util.*; /** * @author takensoft * @since 2024.04.01 * @modification * since | author | description * 2024.04.01 | takensoft | 최초 등록 * * 회원 정보 관련 인터페이스 */ public interface MberService { /** * @param lgnId - 로그인 아이디 * @return boolean - 아이디 아이디 중복 여부 * * 아이디 중복 검사 */ public boolean findByCheckLoginId(String lgnId); /** * @param req - HTTP 요청 객체 * @param joinDTO -회원정보 * @return HashMap - 회원정보 등록 결과 * - mbrId : 회원 아이디 * - result : 회원등록정보 결과 * * 회원가입 */ public HashMap userJoin(HttpServletRequest req, JoinDTO joinDTO); /** * @param passwordDTO - 비밀번호 * @return boolean - 비밀번호 사용 가능 여부 * * 비밀번호 비교 */ public boolean passwordCheck(PasswordDTO passwordDTO); /** * @param params * - 회원 아이디 * @return MberVO - 회원 정보 * * 회원정보 상세 조회 */ public MberVO findByMbr(HashMap params); /** * @param passwordDTO - 비밀번호 * @return int - 비밀번호 수정 결과 * * 비밀번호 수정 */ public int updatePassword(PasswordDTO passwordDTO); /** * @param email - 이메일 * @return MberVO - 사용자 정보 * * 이메일로만 사용자 조회 */ public MberVO findByEmail(String email); /** * @param email - 이메일 * @param mbrType - 회원 유형 (K, N, G, F, S) * @return MberVO - 사용자 정보 * * 이메일과 회원 유형으로 사용자 조회 */ public MberVO findByEmailAndProvider(String email, String mbrType); /** * @param user - OAuth2 사용자 정보 * @return MberVO - 저장된 사용자 정보 * * OAuth2 사용자 저장 */ public MberVO saveOAuthUser(MberVO user, HttpServletRequest request); /** * @param user - OAuth2 사용자 정보 * @return MberVO - 업데이트된 사용자 정보 * * OAuth2 사용자 정보 업데이트 */ public MberVO updateOAuthUser(MberVO user); /** * @param user - OAuth2 연동 정보가 추가된 사용자 정보 * @return MberVO - 연동된 사용자 정보 * * 기존 계정에 OAuth2 정보 연동 */ public MberVO linkOAuth2Account(MberVO user); }