개발이 좋아서/Spring이 좋아서
[Backend] - 로그인 및 회원가입(회원가입_dto, model, vo)
zoaseo
2022. 10. 25. 14:32
1) dto
MemberInfoDTO
package clonestudy.clonestudy.member.dto;
import lombok.Builder;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@Builder
public class MemberInfoDTO {
private int id;
private String name;
private String email;
private String phoneNum;
private String nickname;
private boolean sex; //0: 남성, 1: 여성
private String birthdate;
private LocalDateTime regDate;
private int loginCount;
private LocalDateTime firstLogin;
private LocalDateTime lastLogin;
private int loginFailCount;
}
2) model
Member
package clonestudy.clonestudy.member.model;
import io.swagger.annotations.ApiModel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.ColumnDefault;
import javax.persistence.*;
import java.time.LocalDateTime;
@Getter
@NoArgsConstructor
@ApiModel("사용자 정보 테이블")
@Entity
@Table(name = "member")
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private int id;
@Column(name = "name", nullable = false, length = 30)
private String name;
@Column(name = "email", nullable = false, length = 30)
private String email;
@Column(name = "phone_num", nullable = false, length = 20)
private String phoneNum;
@Column(name = "pwd", nullable = false, length = 100)
private String pwd;
@Column(name = "nickname", nullable = false, length = 30)
private String nickname;
@Column(name = "sex", nullable = false) //0: 남성, 1: 여성
private boolean sex;
@Column(name = "birthdate", nullable = false, length = 20)
private String birthdate;
@Column(name = "regdate", nullable = false, columnDefinition = "DATETIME DEFAULT NOW()")
private LocalDateTime regDate;
@Setter
@Column(name = "login_count", nullable = false)
@ColumnDefault("0")
private int loginCount;
@Setter
@Column(name = "first_login", nullable = true)
private LocalDateTime firstLogin;
@Setter
@Column(name = "last_login", nullable = true)
private LocalDateTime lastLogin;
@Setter
@Column(name = "login_fail_count", nullable = false)
@ColumnDefault("0")
private int loginFailCount;
@Builder
public Member(String name, String email, String phoneNum, String pwd, String nickname, boolean sex, String birthdate, LocalDateTime regDate){
this.name = name;
this.email = email;
this.phoneNum = phoneNum;
this.pwd = pwd;
this.nickname = nickname;
this.sex = sex;
this.birthdate = birthdate;
this.regDate = regDate;
}
}
3) vo
MemberRegVO
package clonestudy.clonestudy.member.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
@Getter
@AllArgsConstructor
@Builder
public class MemberRegVO {
@NotBlank
@ApiModelProperty("사용자 이름")
private String name;
@NotBlank @Email
@ApiModelProperty("사용자 이메일")
private String email;
@NotBlank
@ApiModelProperty("사용자 전화번호")
private String phoneNum;
@NotBlank
@ApiModelProperty("사용자 비밀번호")
private String pwd;
@NotBlank
@ApiModelProperty("사용자 닉네임")
private String nickname;
// @NotNull
@ApiModelProperty(value = "사용자 성별", notes = "false : 남성, true : 여성")
private boolean sex;
@NotBlank
@ApiModelProperty("사용자 생년월일")
private String birthdate;
}