User🤵🏻

담당: 준형

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "<https://mybatis.org/dtd/mybatis-3-mapper.dtd>">
        
<mapper namespace="com.green.ca2sa.user.UserMapper">

    <insert id="postUserSignUp"> <!--회원가입-->
        insert into user
        set email = #{email}
            , upw = #{upw}
            , nickName = #{nickName}

    </insert>

    <select id="getUserEmailCheck"> <!--메일중복체크-->
        select email
        from user
        where email = #{email}
    </select>

    <select id="postUserSignIn"> <!--로그인-->
        select email, upw, userId, nickName
        from user
        where email = #{email}
    </select>

    <select id="getUserInfo"> <!--유저 정보 조회-->
        select email, nickName,
        from user
        where userId = #{userId}
    </select>

    <select id="updateCheckUpwInfo"> <!--유저 정보 변경전 본인확인-->
        select upw
        from user
        where userId=#{userId}
    </select>

    <update id="updateUserInfo"> <!--유저 정보 변경-->
        update user
        set nickName = #{nickName}
        where userId = #{userId}
    </update>

    <select id="checkBeforeDelUser"> <!--유저 정보 삭제전 본인확인-->
        select upw
        from user
        where userId=#{userId}
    </select>

    <delete id="deleteUser"> <!--유저 정보 삭제-->
        delete from user
        where userId = #{userId}
    </delete>

</mapper>    

회원 가입 → 메일 인증

image.png

Mapper

@Mapper
 int postUserSignUp(UserSignUpReq p);
 UserSignUpEmailCheckRes getUserEmailCheck(String email);	

Service

@Service
public int postUserSignUp(UserSignUpReq p) {

       String hashedPassword = BCrypt.hashpw(p.getUpw(), BCrypt.gensalt());
       p.setUpw(hashedPassword); // 비밀번호 암호화하고 세팅해놓음

       return mapper.postUserSignUp(p); //해당정보를 controller에 보냄
   }
   
public int getEmailCheck(String email) {
       UserSignUpEmailCheckRes res = mapper.getUserEmailCheck(email);
       if (res == null){
           return 1;
       }
       return 0;
   } 
     

Controller

@PostMapping("sign-up")
    @Operation(summary = "회원가입")
    public ResultResponse<Integer> postUserSignUp(@RequestBody UserSignUpReq p){
        int result=service.postUserSignUp(p);

        return ResultResponse.<Integer>builder()
                .resultMessage("회원가입완료")
                .resultData(result)
                .build();
    }

    @GetMapping("check-mail")
    @Operation(summary = "이메일 중복체크")
    public ResultResponse<Integer> checkMail(@RequestParam("mail") String mail){
        int result=service.getEmailCheck(mail);

       return ResultResponse.<Integer>builder()
               .resultMessage(result == 0? "존재하는 이메일 입니다": "이메일을 인증해 주세요")
               .resultData(result)
               .build();
    // 이거 통과하면 이메일 날라감 >> 인증하면 가입 성공됨
    }

로그인

일단 req, res들이다.

image.png

image.png

Mapper

UserSingInRes postUserSingIn(UserSignInReq p);