담당: 준형
<?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>

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들이다.


Mapper
UserSingInRes postUserSingIn(UserSignInReq p);