[회원 정보 업데이트] Member 엔티티에 name 및 email 필드 추가, 관련 DTO 및 서비스 로직 수정. 사용자 역할에서 USER 제거 및 검증 어노테이션 추가.
This commit is contained in:
@@ -7,10 +7,12 @@
|
|||||||
oid bigint not null,
|
oid bigint not null,
|
||||||
updated_at timestamp(6) not null,
|
updated_at timestamp(6) not null,
|
||||||
updated_oid bigint,
|
updated_oid bigint,
|
||||||
role varchar(40) not null check (role in ('MEMBER','ADMIN','USER','SYSTEM_ADMIN')),
|
role varchar(40) not null check (role in ('MEMBER','ADMIN','SYSTEM_ADMIN')),
|
||||||
|
name varchar(100) not null,
|
||||||
password varchar(100) not null,
|
password varchar(100) not null,
|
||||||
user_id varchar(100) not null,
|
user_id varchar(100) not null,
|
||||||
refresh_token varchar(200),
|
refresh_token varchar(200),
|
||||||
|
email varchar(255) not null,
|
||||||
primary key (oid)
|
primary key (oid)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.Email;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
@@ -18,4 +19,11 @@ public class CreateMemberRequestDto {
|
|||||||
|
|
||||||
@NotBlank(message = "비밀번호는 필수입니다.")
|
@NotBlank(message = "비밀번호는 필수입니다.")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
|
@NotBlank(message = "사용자명은 필수입니다.")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@NotBlank(message = "이메일은 필수입니다.")
|
||||||
|
@Email(message = "올바른 이메일 형식이 아닙니다.")
|
||||||
|
private String email;
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,8 @@ public class MemberDto implements UserDetails {
|
|||||||
private Long oid;
|
private Long oid;
|
||||||
private String userId;
|
private String userId;
|
||||||
private String password;
|
private String password;
|
||||||
|
private String name;
|
||||||
|
private String email;
|
||||||
private MemberRole role;
|
private MemberRole role;
|
||||||
private Boolean useFlag;
|
private Boolean useFlag;
|
||||||
private String refreshToken;
|
private String refreshToken;
|
||||||
@@ -39,21 +41,11 @@ public class MemberDto implements UserDetails {
|
|||||||
return this.userId;
|
return this.userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isAccountNonExpired() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAccountNonLocked() {
|
public boolean isAccountNonLocked() {
|
||||||
return this.useFlag != null && this.useFlag;
|
return this.useFlag != null && this.useFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCredentialsNonExpired() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnabled() {
|
public boolean isEnabled() {
|
||||||
return this.useFlag != null && this.useFlag;
|
return this.useFlag != null && this.useFlag;
|
||||||
|
@@ -30,6 +30,12 @@ public class Member extends BaseEntity {
|
|||||||
@Column(name = "password", nullable = false, length = 100)
|
@Column(name = "password", nullable = false, length = 100)
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
|
@Column(name = "name", nullable = false, length = 100)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Column(name = "email", nullable = false, length = 255)
|
||||||
|
private String email;
|
||||||
|
|
||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
@Column(name = "role", nullable = false, length = 40)
|
@Column(name = "role", nullable = false, length = 40)
|
||||||
private MemberRole role;
|
private MemberRole role;
|
||||||
|
@@ -12,7 +12,6 @@ public enum MemberRole {
|
|||||||
|
|
||||||
MEMBER("MEMBER", "일반 회원"),
|
MEMBER("MEMBER", "일반 회원"),
|
||||||
ADMIN("ADMIN", "관리자"),
|
ADMIN("ADMIN", "관리자"),
|
||||||
USER("USER", "사용자"),
|
|
||||||
SYSTEM_ADMIN("SYSTEM_ADMIN", "시스템 관리자");
|
SYSTEM_ADMIN("SYSTEM_ADMIN", "시스템 관리자");
|
||||||
|
|
||||||
private final String value;
|
private final String value;
|
||||||
|
@@ -43,15 +43,17 @@ public class MemberServiceImpl implements MemberService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public MemberDto createMember(MemberDto memberDTO) {
|
public MemberDto createMember(MemberDto memberDto) {
|
||||||
// userId 중복 체크
|
// userId 중복 체크
|
||||||
if (memberRepository.existsByUserId(memberDTO.getUserId())) {
|
if (memberRepository.existsByUserId(memberDto.getUserId())) {
|
||||||
throw new ApiException(ApiResponseCode.USER_ID_DUPLICATE);
|
throw new ApiException(ApiResponseCode.USER_ID_DUPLICATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Member member = Member.builder()
|
Member member = Member.builder()
|
||||||
.userId(memberDTO.getUserId())
|
.userId(memberDto.getUserId())
|
||||||
.password(bCryptPasswordEncoder.encode(memberDTO.getPassword()))
|
.password(bCryptPasswordEncoder.encode(memberDto.getPassword()))
|
||||||
|
.name(memberDto.getName())
|
||||||
|
.email(memberDto.getEmail())
|
||||||
.role(MemberRole.getDefault())
|
.role(MemberRole.getDefault())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user