From ddd929913b939bffb2333d9d9aa0fe18d23b264d Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:12:26 +0900 Subject: [PATCH 1/8] =?UTF-8?q?[refactor]=20=EC=9C=A0=EC=A0=80=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20DTO=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EA=B7=9C?= =?UTF-8?q?=EC=B9=99=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weakness/domain/Group/controller/GroupController.java | 4 ++-- .../domain/Group/dto/response/RelationResponseDto.java | 4 ++-- .../weakness/domain/Group/service/GroupService.java | 8 ++++---- .../weakness/domain/Group/service/RelationService.java | 4 ++-- .../weakness/global/config/SecurityConfig.java | 4 ++-- .../MathCaptain/weakness/global/config/WebConfig.java | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/controller/GroupController.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/controller/GroupController.java index 6644700..62aeba8 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/controller/GroupController.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/controller/GroupController.java @@ -7,7 +7,7 @@ import MathCaptain.weakness.domain.Group.dto.response.GroupResponseDto; import MathCaptain.weakness.domain.Group.dto.response.RelationResponseDto; import MathCaptain.weakness.domain.User.entity.Users; -import MathCaptain.weakness.domain.User.dto.response.UserResponseDto; +import MathCaptain.weakness.domain.User.dto.response.UserResponse; import MathCaptain.weakness.domain.Group.service.GroupService; import MathCaptain.weakness.domain.Group.dto.request.GroupCreateRequestDto; import MathCaptain.weakness.domain.Group.service.RelationService; @@ -65,7 +65,7 @@ public ApiResponse deleteGroup(@PathVariable Long groupId) { // 그룹 멤버 조회 @GetMapping("/group/members/{groupId}") - public ApiResponse> groupMembers(@PathVariable Long groupId) { + public ApiResponse> groupMembers(@PathVariable Long groupId) { return ApiResponse.ok(groupService.getGroupMembers(groupId)); } diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/dto/response/RelationResponseDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/dto/response/RelationResponseDto.java index 7ea9d42..2c1956c 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/dto/response/RelationResponseDto.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/dto/response/RelationResponseDto.java @@ -1,7 +1,7 @@ package MathCaptain.weakness.domain.Group.dto.response; import MathCaptain.weakness.domain.Group.enums.GroupRole; -import MathCaptain.weakness.domain.User.dto.response.UserResponseDto; +import MathCaptain.weakness.domain.User.dto.response.UserResponse; import lombok.Builder; import lombok.Data; @@ -13,7 +13,7 @@ public class RelationResponseDto { private Long id; - private UserResponseDto member; + private UserResponse member; private GroupResponseDto group; diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/GroupService.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/GroupService.java index 5ad455a..467fbd4 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/GroupService.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/GroupService.java @@ -11,7 +11,7 @@ import MathCaptain.weakness.domain.Group.enums.CategoryStatus; import MathCaptain.weakness.domain.Record.repository.RecordRepository; import MathCaptain.weakness.domain.Record.service.RecordService; -import MathCaptain.weakness.domain.User.dto.response.UserResponseDto; +import MathCaptain.weakness.domain.User.dto.response.UserResponse; import MathCaptain.weakness.domain.Group.repository.GroupRepository; import MathCaptain.weakness.domain.Group.repository.RelationRepository; import MathCaptain.weakness.domain.User.entity.Users; @@ -96,7 +96,7 @@ public ApiResponse updateGroupInfo(Long groupId, GroupUpdateRe } // 그룹 내 멤버 조회 - public List getGroupMembers(Long groupId) { + public List getGroupMembers(Long groupId) { Group group = groupRepository.findById(groupId) .orElseThrow(() -> new ResourceNotFoundException("해당 그룹이 없습니다.")); @@ -273,8 +273,8 @@ private GroupDetailResponseDto buildGroupDetailResponseDto(Group group, Long mem .build(); } - private static UserResponseDto buildUserResponse(Users user) { - return UserResponseDto.builder() + private static UserResponse buildUserResponse(Users user) { + return UserResponse.builder() .userId(user.getUserId()) .name(user.getName()) .nickname(user.getNickname()) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/RelationService.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/RelationService.java index d456552..d1bada6 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/RelationService.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/service/RelationService.java @@ -8,7 +8,7 @@ import MathCaptain.weakness.domain.Group.dto.response.RelationResponseDto; import MathCaptain.weakness.domain.Group.repository.GroupRepository; import MathCaptain.weakness.domain.Record.repository.RecordRepository; -import MathCaptain.weakness.domain.User.dto.response.UserResponseDto; +import MathCaptain.weakness.domain.User.dto.response.UserResponse; import MathCaptain.weakness.domain.Group.enums.GroupRole; import MathCaptain.weakness.domain.Group.repository.RelationRepository; import MathCaptain.weakness.domain.User.entity.Users; @@ -103,7 +103,7 @@ public RelationResponseDto getRelationInfo(Long relationId) { .groupImageUrl(relation.getGroup().getGroupImageUrl()) .build(); - UserResponseDto member = UserResponseDto.builder() + UserResponse member = UserResponse.builder() .userId(relation.getMember().getUserId()) .email(relation.getMember().getEmail()) .name(relation.getMember().getName()) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/SecurityConfig.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/SecurityConfig.java index 5902379..5018a33 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/SecurityConfig.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/SecurityConfig.java @@ -8,8 +8,8 @@ import MathCaptain.weakness.global.auth.filter.JsonUsernamePasswordAuthenticationFilter; import MathCaptain.weakness.global.auth.filter.JwtAuthenticationProcessingFilter; import MathCaptain.weakness.global.auth.jwt.JwtService; -import MathCaptain.weakness.domain.Group.Login.LoginSuccessJWTProvideHandler; -import MathCaptain.weakness.domain.Group.Login.LoginFailureHandler; +import MathCaptain.weakness.domain.User.Login.LoginSuccessJWTProvideHandler; +import MathCaptain.weakness.domain.User.Login.LoginFailureHandler; import MathCaptain.weakness.domain.User.service.UserDetailsServiceImpl; import MathCaptain.weakness.domain.User.repository.UserRepository; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/WebConfig.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/WebConfig.java index 3b4a44d..b5e1016 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/WebConfig.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/global/config/WebConfig.java @@ -1,6 +1,6 @@ package MathCaptain.weakness.global.config; -import MathCaptain.weakness.domain.Group.Login.LoginUserArgumentResolver; +import MathCaptain.weakness.domain.User.Login.LoginUserArgumentResolver; import org.springframework.context.annotation.Configuration; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; From 0e1c99ce1a6a1d4ccc3233f448804428a8cb1b8b Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:13:10 +0900 Subject: [PATCH 2/8] =?UTF-8?q?[refactor]=20DTO=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B0=8D=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20=EB=A6=AC=ED=8C=B0?= =?UTF-8?q?=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../User/dto/request/FindEmailRequest.java | 14 +++++++++++ .../User/dto/request/FindEmailRequestDto.java | 19 --------------- .../User/dto/request/FindPwdRequest.java | 15 ++++++++++++ .../User/dto/request/FindPwdRequestDto.java | 20 ---------------- ...erRequestDto.java => SaveUserRequest.java} | 24 ++++++++++++------- ...RequestDto.java => UpdateUserRequest.java} | 17 ++++--------- .../User/dto/request/UserDeleteRequest.java | 14 +++++++++++ .../dto/request/UserDeleteRequestDto.java | 10 -------- 8 files changed, 63 insertions(+), 70 deletions(-) create mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequest.java delete mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequestDto.java create mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequest.java delete mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequestDto.java rename MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/{SaveUserRequestDto.java => SaveUserRequest.java} (56%) rename MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/{UpdateUserRequestDto.java => UpdateUserRequest.java} (68%) create mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequest.java delete mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequestDto.java diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequest.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequest.java new file mode 100644 index 0000000..dd15e53 --- /dev/null +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequest.java @@ -0,0 +1,14 @@ +package MathCaptain.weakness.domain.User.dto.request; + +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.*; + +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class FindEmailRequest { + + private String userName; + + private String phoneNumber; +} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequestDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequestDto.java deleted file mode 100644 index c2c75a0..0000000 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindEmailRequestDto.java +++ /dev/null @@ -1,19 +0,0 @@ -package MathCaptain.weakness.domain.User.dto.request; - -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class FindEmailRequestDto { - - @NotNull(message = "이름은 필수입니다!") - @Size(min = 3, max = 15, message = "이름은 최소 3글자 이상, 15글자 이하입니다.") - private String userName; - - @NotNull(message = "전화번호는 필수입니다!") - @Size(min = 11, max = 13, message = "전화번호를 잘못입력하셨습니다! 다시 입력해주세요.") - private String phoneNumber; -} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequest.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequest.java new file mode 100644 index 0000000..8ec5ef9 --- /dev/null +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequest.java @@ -0,0 +1,15 @@ +package MathCaptain.weakness.domain.User.dto.request; + +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.*; + +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class FindPwdRequest { + + private String email; + + private String name; +} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequestDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequestDto.java deleted file mode 100644 index 6e0a560..0000000 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/FindPwdRequestDto.java +++ /dev/null @@ -1,20 +0,0 @@ -package MathCaptain.weakness.domain.User.dto.request; - -import jakarta.validation.constraints.Email; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class FindPwdRequestDto { - - @Email - @NotNull(message = "이메일은 필수입니다!") - private String email; - - @NotNull(message = "이름은 필수입니다!") - @Size(min = 3, max = 15, message = "이름은 최소 3글자 이상, 15글자 이하입니다.") - private String name; -} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/SaveUserRequestDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/SaveUserRequest.java similarity index 56% rename from MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/SaveUserRequestDto.java rename to MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/SaveUserRequest.java index f8d2086..9abd292 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/SaveUserRequestDto.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/SaveUserRequest.java @@ -5,29 +5,37 @@ import jakarta.validation.constraints.Size; import lombok.*; -@Data -@Builder(access = AccessLevel.PUBLIC) -public class SaveUserRequestDto { +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class SaveUserRequest { @Email - @NotNull(message = "이메일은 필수입니다!") private String email; - @NotNull(message = "비밀번호는 필수입니다!") @Size(min = 5, max = 20, message = "비밀번호는 최소 5글자 이상, 20글자 이하입니다.") private String password; - @NotNull(message = "이름은 필수입니다!") @Size(min = 3, max = 15, message = "이름은 최소 3글자 이상, 15글자 이하입니다.") private String name; - @NotNull(message = "어플 내에서 사용하실 이름을 지정해주세요.") @Size(min = 3, max = 15, message = "별명은 최소 3글자 ~ 15글자 이하입니다.") private String nickname; - @NotNull(message = "전화번호는 필수입니다!") @Size(min = 11, max = 13, message = "전화번호를 잘못입력하셨습니다! 다시 입력해주세요.") private String phoneNumber; + private SaveUserRequest(String email, String password, String name, String nickname, String phoneNumber) { + this.email = email; + this.password = password; + this.name = name; + this.nickname = nickname; + this.phoneNumber = phoneNumber; + } + + public static SaveUserRequest of(String email, String password, String name, + String nickname, String phoneNumber) { + return new SaveUserRequest(email, password, name, nickname, phoneNumber); + } + } diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UpdateUserRequestDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UpdateUserRequest.java similarity index 68% rename from MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UpdateUserRequestDto.java rename to MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UpdateUserRequest.java index 9f924d9..d2c6955 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UpdateUserRequestDto.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UpdateUserRequest.java @@ -3,30 +3,21 @@ import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class UpdateUserRequestDto { +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class UpdateUserRequest { @Email - @NotNull(message = "이메일은 필수입니다!") private String email; - @NotNull @Size(min = 3, max = 15, message = "이름은 최소 3글자 이상, 15글자 이하입니다.") private String name; - @NotNull @Size(min = 3, max = 15, message = "별명은 최소 3글자 ~ 15글자 이하입니다.") private String nickname; - @NotNull @Size(min = 11, max = 13, message = "전화번호를 잘못입력하셨습니다! 다시 입력해주세요.") private String phoneNumber; diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequest.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequest.java new file mode 100644 index 0000000..3eb7e7f --- /dev/null +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequest.java @@ -0,0 +1,14 @@ +package MathCaptain.weakness.domain.User.dto.request; + +import lombok.AccessLevel; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class UserDeleteRequest { + + private String password; + +} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequestDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequestDto.java deleted file mode 100644 index 7df53a6..0000000 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/request/UserDeleteRequestDto.java +++ /dev/null @@ -1,10 +0,0 @@ -package MathCaptain.weakness.domain.User.dto.request; - -import lombok.Data; - -@Data -public class UserDeleteRequestDto { - - private String password; - -} From 03eb2065a5d109aac8607ffa1d3c9ef1b3954dd5 Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:13:33 +0900 Subject: [PATCH 3/8] =?UTF-8?q?[refactor]=20DTO=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B0=8D=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20=EB=B9=8C=EB=8D=94?= =?UTF-8?q?=20=ED=8C=A8=ED=84=B4=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/FindEmailResponseDto.java | 12 ---- .../User/dto/response/UserCardResponse.java | 52 ++++++++++++++++ .../dto/response/UserCardResponseDto.java | 23 ------- .../User/dto/response/UserResponse.java | 62 +++++++++++++++++++ .../User/dto/response/UserResponseDto.java | 27 -------- .../User/dto/response/findEmailResponse.java | 19 ++++++ 6 files changed, 133 insertions(+), 62 deletions(-) delete mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/FindEmailResponseDto.java create mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponse.java delete mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponseDto.java create mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponse.java delete mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponseDto.java create mode 100644 MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/findEmailResponse.java diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/FindEmailResponseDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/FindEmailResponseDto.java deleted file mode 100644 index 4e2751d..0000000 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/FindEmailResponseDto.java +++ /dev/null @@ -1,12 +0,0 @@ -package MathCaptain.weakness.domain.User.dto.response; - -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class FindEmailResponseDto { - - private String email; - -} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponse.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponse.java new file mode 100644 index 0000000..8219e12 --- /dev/null +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponse.java @@ -0,0 +1,52 @@ +package MathCaptain.weakness.domain.User.dto.response; + +import MathCaptain.weakness.domain.Group.dto.response.UserGroupCardResponseDto; +import MathCaptain.weakness.domain.User.entity.Users; +import MathCaptain.weakness.domain.User.enums.Tiers; +import lombok.*; + +import java.util.List; + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class UserCardResponse { + + private Long userId; + + private String userName; + + private Tiers userTier; + + private Long userPoint; + + private List groupCards; + + @Builder + private UserCardResponse(Long userId, String userName, Tiers userTier, Long userPoint, List groupCards) { + this.userId = userId; + this.userName = userName; + this.userTier = userTier; + this.userPoint = userPoint; + this.groupCards = groupCards; + } + + public static UserCardResponse of(Users user) { + return UserCardResponse.builder() + .userId(user.getUserId()) + .userName(user.getName()) + .userTier(user.getTier()) + .userPoint(user.getUserPoint()) + .groupCards(null) + .build(); + } + + public static UserCardResponse of(Users user, List groupCards) { + return UserCardResponse.builder() + .userId(user.getUserId()) + .userName(user.getName()) + .userTier(user.getTier()) + .userPoint(user.getUserPoint()) + .groupCards(groupCards) + .build(); + } +} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponseDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponseDto.java deleted file mode 100644 index 40d9942..0000000 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserCardResponseDto.java +++ /dev/null @@ -1,23 +0,0 @@ -package MathCaptain.weakness.domain.User.dto.response; - -import MathCaptain.weakness.domain.Group.dto.response.UserGroupCardResponseDto; -import MathCaptain.weakness.domain.User.enums.Tiers; -import lombok.Builder; -import lombok.Data; - -import java.util.List; - -@Data -@Builder -public class UserCardResponseDto { - - private Long userId; - - private String userName; - - private Tiers userTier; - - private Long userPoint; - - private List groupCards; -} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponse.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponse.java new file mode 100644 index 0000000..15ae695 --- /dev/null +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponse.java @@ -0,0 +1,62 @@ +package MathCaptain.weakness.domain.User.dto.response; + +import MathCaptain.weakness.domain.Group.dto.response.GroupResponseDto; +import MathCaptain.weakness.domain.User.entity.Users; +import MathCaptain.weakness.domain.User.enums.Tiers; +import lombok.*; + +import java.util.List; + +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class UserResponse { + + private Long userId; + + private String email; + + private String name; + + private String nickname; + + private Tiers tier; + + private String phoneNumber; + + private List joinedGroups; + + @Builder + private UserResponse(Long userId, String email, String name, String nickname, Tiers tier, String phoneNumber, List joinedGroups) { + this.userId = userId; + this.email = email; + this.name = name; + this.nickname = nickname; + this.tier = tier; + this.phoneNumber = phoneNumber; + this.joinedGroups = joinedGroups; + } + + public static UserResponse of(Users user) { + return UserResponse.builder() + .userId(user.getUserId()) + .email(user.getEmail()) + .name(user.getName()) + .nickname(user.getNickname()) + .tier(user.getTier()) + .phoneNumber(user.getPhoneNumber()) + .joinedGroups(null) + .build(); + } + + public static UserResponse of(Users user, List joinedGroups) { + return UserResponse.builder() + .userId(user.getUserId()) + .email(user.getEmail()) + .name(user.getName()) + .nickname(user.getNickname()) + .tier(user.getTier()) + .phoneNumber(user.getPhoneNumber()) + .joinedGroups(joinedGroups) + .build(); + } +} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponseDto.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponseDto.java deleted file mode 100644 index 45f11f3..0000000 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/UserResponseDto.java +++ /dev/null @@ -1,27 +0,0 @@ -package MathCaptain.weakness.domain.User.dto.response; - -import MathCaptain.weakness.domain.Group.dto.response.GroupResponseDto; -import MathCaptain.weakness.domain.User.enums.Tiers; -import lombok.Builder; -import lombok.Data; - -import java.util.List; - -@Data -@Builder -public class UserResponseDto { - - private Long userId; - - private String email; - - private String name; - - private String nickname; - - private Tiers tier; - - private String phoneNumber; - - private List joinedGroups; -} diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/findEmailResponse.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/findEmailResponse.java new file mode 100644 index 0000000..c906bce --- /dev/null +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/dto/response/findEmailResponse.java @@ -0,0 +1,19 @@ +package MathCaptain.weakness.domain.User.dto.response; + +import MathCaptain.weakness.domain.User.entity.Users; +import lombok.*; + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class findEmailResponse { + + private String email; + + private findEmailResponse(String email) { + this.email = email; + } + + public static findEmailResponse of(Users user) { + return new findEmailResponse(user.getEmail()); + } +} From 0df25fc9b575b05312137c0cbca0520fb48cb577 Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:14:10 +0900 Subject: [PATCH 4/8] =?UTF-8?q?[refactor]=20Column=20=EC=A0=9C=EC=95=BD?= =?UTF-8?q?=EC=A1=B0=EA=B1=B4=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EB=B9=8C?= =?UTF-8?q?=EB=8D=94=20=ED=8C=A8=ED=84=B4=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weakness/domain/User/entity/Users.java | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/entity/Users.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/entity/Users.java index 50b8819..9885555 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/entity/Users.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/entity/Users.java @@ -3,7 +3,8 @@ import MathCaptain.weakness.domain.Group.entity.RelationBetweenUserAndGroup; import MathCaptain.weakness.domain.Recruitment.entity.Comment; import MathCaptain.weakness.domain.Recruitment.entity.Recruitment; -import MathCaptain.weakness.domain.User.dto.request.UpdateUserRequestDto; +import MathCaptain.weakness.domain.User.dto.request.SaveUserRequest; +import MathCaptain.weakness.domain.User.dto.request.UpdateUserRequest; import MathCaptain.weakness.domain.User.enums.TierThresholds; import MathCaptain.weakness.domain.User.enums.Tiers; import jakarta.persistence.*; @@ -15,8 +16,6 @@ @Entity @Getter -@Builder -@AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "USERS") public class Users { @@ -30,10 +29,13 @@ public class Users { private String password; + @Column(nullable = false) private String name; + @Column(nullable = false, unique = true) private String nickname; + @Column(nullable = false, unique = true) private String phoneNumber; @Range(min = 0) @@ -69,34 +71,32 @@ protected void onCreate() { this.tier = Tiers.BRONZE; } - //== 수정 로직 ==// - - public void updateName(String name) { - if (name != null && !name.equals(this.name)) { - this.name = name; - } + private Users(String email, String password, String name, String nickname, String phoneNumber) { + this.email = email; + this.password = password; + this.name = name; + this.nickname = nickname; + this.phoneNumber = phoneNumber; } - public void updateNickname(String nickname) { - if (nickname != null && !nickname.equals(this.nickname)) { - this.nickname = nickname; - } - } - - public void updatePhoneNumber(String phoneNumber) { - if (phoneNumber != null && !phoneNumber.equals(this.phoneNumber)) { - this.phoneNumber = phoneNumber; - } + public static Users of(SaveUserRequest userRequestDto) { + return new Users( + userRequestDto.getEmail(), + userRequestDto.getPassword(), + userRequestDto.getName(), + userRequestDto.getNickname(), + userRequestDto.getPhoneNumber()); } + //== 수정 로직 ==// public void updatePassword(String password, PasswordEncoder passwordEncoder) { this.password = passwordEncoder.encode(password); } - public void updateUser(UpdateUserRequestDto requestDto) { - updateName(requestDto.getName()); - updateNickname(requestDto.getNickname()); - updatePhoneNumber(requestDto.getPhoneNumber()); + public void updateUser(UpdateUserRequest requestDto) { + this.nickname = requestDto.getNickname(); + this.name = requestDto.getName(); + this.phoneNumber = requestDto.getPhoneNumber(); } public void updatePoint(Long point) { @@ -109,7 +109,6 @@ public void addPoint(Long point) { evaluateTier(); } - // 10% 감소 public void subtractPoint(Long point) { this.userPoint = Math.max(0, this.userPoint - point); evaluateTier(); @@ -131,5 +130,4 @@ private void evaluateTier() { this.tier = Tiers.BRONZE; } } - } From cd6e50e9dc8bc487a40342e39d9baa9acffb2220 Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:14:34 +0900 Subject: [PATCH 5/8] =?UTF-8?q?[refactor]=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/{Group => User}/Login/LoginFailureHandler.java | 2 +- .../{Group => User}/Login/LoginSuccessJWTProvideHandler.java | 2 +- .../domain/{Group => User}/Login/LoginUserArgumentResolver.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/{Group => User}/Login/LoginFailureHandler.java (94%) rename MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/{Group => User}/Login/LoginSuccessJWTProvideHandler.java (98%) rename MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/{Group => User}/Login/LoginUserArgumentResolver.java (97%) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginFailureHandler.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginFailureHandler.java similarity index 94% rename from MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginFailureHandler.java rename to MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginFailureHandler.java index 3fb039b..3eea664 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginFailureHandler.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginFailureHandler.java @@ -1,4 +1,4 @@ -package MathCaptain.weakness.domain.Group.Login; +package MathCaptain.weakness.domain.User.Login; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginSuccessJWTProvideHandler.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginSuccessJWTProvideHandler.java similarity index 98% rename from MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginSuccessJWTProvideHandler.java rename to MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginSuccessJWTProvideHandler.java index 8ed64e9..cf93c87 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginSuccessJWTProvideHandler.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginSuccessJWTProvideHandler.java @@ -1,4 +1,4 @@ -package MathCaptain.weakness.domain.Group.Login; +package MathCaptain.weakness.domain.User.Login; import MathCaptain.weakness.domain.Group.repository.RelationRepository; import MathCaptain.weakness.domain.Group.service.GroupService; diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginUserArgumentResolver.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginUserArgumentResolver.java similarity index 97% rename from MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginUserArgumentResolver.java rename to MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginUserArgumentResolver.java index 0c3dcab..0b3b099 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/Group/Login/LoginUserArgumentResolver.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/Login/LoginUserArgumentResolver.java @@ -1,4 +1,4 @@ -package MathCaptain.weakness.domain.Group.Login; +package MathCaptain.weakness.domain.User.Login; import MathCaptain.weakness.domain.User.entity.UserDetailsImpl; import MathCaptain.weakness.domain.User.entity.Users; From 95f6695da389e2e3ac23aef09b47b04debd1fb28 Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:15:04 +0900 Subject: [PATCH 6/8] =?UTF-8?q?[refactor]=20DTO=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B0=8D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../User/controller/UserController.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/controller/UserController.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/controller/UserController.java index da6786f..d8981d9 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/controller/UserController.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/controller/UserController.java @@ -3,8 +3,8 @@ import MathCaptain.weakness.domain.User.dto.request.*; import MathCaptain.weakness.domain.User.entity.Users; import MathCaptain.weakness.domain.User.dto.response.ChangePwdDto; -import MathCaptain.weakness.domain.User.dto.response.UserCardResponseDto; -import MathCaptain.weakness.domain.User.dto.response.UserResponseDto; +import MathCaptain.weakness.domain.User.dto.response.UserCardResponse; +import MathCaptain.weakness.domain.User.dto.response.UserResponse; import MathCaptain.weakness.domain.User.service.UserService; import MathCaptain.weakness.global.Api.ApiResponse; import MathCaptain.weakness.global.annotation.LoginUser; @@ -22,36 +22,36 @@ public class UserController { // READ @GetMapping("/user/{userId}") - public ApiResponse userInfo(@PathVariable Long userId) { + public ApiResponse userInfo(@PathVariable Long userId) { return userService.getUserInfo(userId); } // CREATE @PostMapping("/user/signup") - public ApiResponse saveUser(@Valid @RequestBody SaveUserRequestDto user) { + public ApiResponse saveUser(@Valid @RequestBody SaveUserRequest user) { return userService.saveUser(user); } // UPDATE @PutMapping("/user") - public ApiResponse updateUser(@Valid @LoginUser Users loginUser, @RequestBody UpdateUserRequestDto updateUser) { + public ApiResponse updateUser(@Valid @LoginUser Users loginUser, @RequestBody UpdateUserRequest updateUser) { return userService.updateUser(loginUser, updateUser); } // DELETE @DeleteMapping("/user") - public ApiResponse deleteUser(@LoginUser Users loginUser, @RequestBody UserDeleteRequestDto userDeleteRequestDto) { - return userService.deleteUser(loginUser, userDeleteRequestDto); + public ApiResponse deleteUser(@LoginUser Users loginUser, @RequestBody UserDeleteRequest userDeleteRequest) { + return userService.deleteUser(loginUser, userDeleteRequest); } @PostMapping("/user/find/email") - public ApiResponse findEmail(@Valid @RequestBody FindEmailRequestDto findEmailRequestDto) { - return userService.findEmail(findEmailRequestDto); + public ApiResponse findEmail(@Valid @RequestBody FindEmailRequest findEmailRequest) { + return userService.findEmail(findEmailRequest); } @PostMapping("/user/find/password") - public ApiResponse FindPwd(@Valid @RequestBody FindPwdRequestDto findPwdRequestDto) { - userService.findPwdRequest(findPwdRequestDto); + public ApiResponse FindPwd(@Valid @RequestBody FindPwdRequest findPwdRequest) { + userService.findPwdRequest(findPwdRequest); return ApiResponse.ok("이메일로 비밀번호 재설정 링크를 보냈습니다."); } @@ -62,7 +62,7 @@ public ApiResponse ChangedPwd(@ModelAttribute ChangePwdDto changePwdDto) { } @GetMapping("/user/mypage") - public ApiResponse getUserCard(@LoginUser Users loginUser) { + public ApiResponse getUserCard(@LoginUser Users loginUser) { return userService.getUserCard(loginUser); } From 1ec5be54ce0983583f8be85abd06b43991ebf35e Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:15:22 +0900 Subject: [PATCH 7/8] =?UTF-8?q?[refactor]=20User=20=EA=B4=80=EB=A0=A8=20DT?= =?UTF-8?q?O=20=EB=B0=8F=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/User/service/UserService.java | 156 ++++++------------ 1 file changed, 47 insertions(+), 109 deletions(-) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/service/UserService.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/service/UserService.java index b87a3be..ad1e2db 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/service/UserService.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/domain/User/service/UserService.java @@ -6,15 +6,14 @@ import MathCaptain.weakness.domain.Group.service.GroupService; import MathCaptain.weakness.domain.User.dto.request.*; import MathCaptain.weakness.domain.User.dto.response.ChangePwdDto; -import MathCaptain.weakness.domain.User.dto.response.FindEmailResponseDto; -import MathCaptain.weakness.domain.User.dto.response.UserCardResponseDto; -import MathCaptain.weakness.domain.User.dto.response.UserResponseDto; +import MathCaptain.weakness.domain.User.dto.response.findEmailResponse; +import MathCaptain.weakness.domain.User.dto.response.UserCardResponse; +import MathCaptain.weakness.domain.User.dto.response.UserResponse; import MathCaptain.weakness.domain.User.repository.UserRepository; import MathCaptain.weakness.domain.User.entity.Users; import MathCaptain.weakness.global.Api.ApiResponse; import MathCaptain.weakness.global.Mail.MailService; import MathCaptain.weakness.global.exception.AuthorizationException; -import MathCaptain.weakness.global.exception.DuplicatedException; import MathCaptain.weakness.global.exception.ResourceNotFoundException; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @@ -40,72 +39,53 @@ public class UserService { ConcurrentHashMap emailMap = new ConcurrentHashMap<>(); // 회원가입 - public ApiResponse saveUser(SaveUserRequestDto user) { - - Users users = buildUser(user); - validateDuplicateUser(users); - userRepository.save(users); - - return ApiResponse.ok(buildUserResponseDto(users)); + public ApiResponse saveUser(SaveUserRequest userSaveRequest) { + Users user = Users.of(userSaveRequest); + userRepository.save(user); + return ApiResponse.ok(UserResponse.of(user)); } // 회원탈퇴 - public ApiResponse deleteUser(Users user, UserDeleteRequestDto userDeleteRequestDto) { - - if (checkPassword(user, userDeleteRequestDto)) { + public ApiResponse deleteUser(Users user, UserDeleteRequest userDeleteRequest) { + if (checkPassword(user, userDeleteRequest)) { throw new AuthorizationException("비밀번호가 일치하지 않습니다."); } - userRepository.delete(user); - return ApiResponse.ok("회원 탈퇴가 완료되었습니다."); } // 회원정보 수정 - - public ApiResponse updateUser(Users user, UpdateUserRequestDto updateUser) { - - user.updateUser(updateUser); + public ApiResponse updateUser(Users user, UpdateUserRequest userUpdateRequest) { + user.updateUser(userUpdateRequest); List joinedGroupsId = relationRepository.findGroupsIdByMember(user); - List groupResponseDtoList = groupService.getUsersGroups(joinedGroupsId); - - return ApiResponse.ok(buildUserResponseDto(user, groupResponseDtoList)); + // TODO : 로직 수정 필요 + List groupResponseList = groupService.getUsersGroups(joinedGroupsId); + return ApiResponse.ok(UserResponse.of(user, groupResponseList)); } - // 회원정보 조회 - public ApiResponse getUserInfo(Long userId) { - Users member = userRepository.findByUserId(userId) - .orElseThrow(() -> new ResourceNotFoundException("해당 유저가 없습니다.")); - - List joinedGroupsId = relationRepository.findGroupsIdByUserId(member.getUserId()); - List groupResponseDtoList = groupService.getUsersGroups(joinedGroupsId); - - return ApiResponse.ok(buildUserResponseDto(member, groupResponseDtoList)); + // 회원정보 조회 + public ApiResponse getUserInfo(Long userId) { + Users user = findByUserId(userId); + List joinedGroupsId = relationRepository.findGroupsIdByUserId(user.getUserId()); + List groupResponseList = groupService.getUsersGroups(joinedGroupsId); + return ApiResponse.ok(UserResponse.of(user, groupResponseList)); } - // 이메일 찾기 - public ApiResponse findEmail(FindEmailRequestDto findEmailRequestDto) { - - Users user = userRepository.findByNameAndPhoneNumber(findEmailRequestDto.getUserName(), findEmailRequestDto.getPhoneNumber()) - .orElseThrow(() -> new ResourceNotFoundException("이름과 전화번호를 다시 한 번 확인해주세요!")); - return ApiResponse.ok(FindEmailResponseDto.builder() - .email(user.getEmail()) - .build()); + // 이메일 찾기 + public ApiResponse findEmail(FindEmailRequest findEmailRequest) { + Users user = findByNameAndPhoneNum(findEmailRequest); + return ApiResponse.ok(findEmailResponse.of(user)); } // 비밀번호 찾기 요청 - public void findPwdRequest(FindPwdRequestDto findPwdRequestDto) { - String email = findPwdRequestDto.getEmail(); - String name = findPwdRequestDto.getName(); - - if(!checkUserByEmailAndName(email, name)){ + public void findPwdRequest(FindPwdRequest findPwdRequest) { + if(!existsByEmailAndName(findPwdRequest)) { throw new IllegalArgumentException("이메일 또는 이름이 일치하지 않습니다."); } - String UUID = java.util.UUID.randomUUID().toString(); + String email = findPwdRequest.getEmail(); emailMap.put(UUID, email); - mailService.sendChangePwdMail(email, UUID); } @@ -113,89 +93,47 @@ public void findPwdRequest(FindPwdRequestDto findPwdRequestDto) { public void changePwd(ChangePwdDto changePwdDto) { String userEmail = emailMap.get(changePwdDto.getUuid()); - if (userEmail == null) { + if (isNull(userEmail)) { throw new IllegalArgumentException("유효하지 않은 요청입니다."); } - - Users user = userRepository.findByEmail(userEmail) - .orElseThrow(() -> new ResourceNotFoundException("해당 유저가 없습니다.")); - + Users user = findByEmail(userEmail); user.updatePassword(changePwdDto.getNewPassword() ,passwordEncoder); } - public ApiResponse getUserCard(Users user) { - + public ApiResponse getUserCard(Users user) { List groupCards = groupService.getUserGroupCard(user); - - return ApiResponse.ok(buildUserCardResponseDto(user, groupCards)); + UserCardResponse userCardResponse = UserCardResponse.of(user, groupCards); + return ApiResponse.ok(userCardResponse); } /// 로직 //==검증 로직==// - private void validateDuplicateUser(Users user) { - if (userRepository.existsByEmail(user.getEmail())) { - throw new DuplicatedException("이미 사용중인 이메일입니다."); - } - if (userRepository.existsByPhoneNumber(user.getPhoneNumber())) { - throw new DuplicatedException("이미 사용중인 전화번호입니다."); - } - if (userRepository.existsByNickname(user.getNickname())) { - throw new DuplicatedException("이미 사용중인 닉네임입니다."); - } - } - - private boolean checkPassword(Users user, UserDeleteRequestDto userDeleteRequestDto) { - return !passwordEncoder.matches(userDeleteRequestDto.getPassword(), user.getPassword()); + private Users findByUserId(Long userId) { + return userRepository.findByUserId(userId) + .orElseThrow(() -> new ResourceNotFoundException("해당 유저가 없습니다.")); } - public boolean checkUserByEmailAndName(String email, String username) { - return userRepository.existsByEmailAndName(email, username); + private boolean checkPassword(Users user, UserDeleteRequest userDeleteRequest) { + return !passwordEncoder.matches(userDeleteRequest.getPassword(), user.getPassword()); } - /// 빌더 - - private Users buildUser(SaveUserRequestDto user) { - return Users.builder() - .email(user.getEmail()) - .password(passwordEncoder.encode(user.getPassword())) - .name(user.getName()) - .nickname(user.getNickname()) - .phoneNumber(user.getPhoneNumber()) - .build(); + private boolean existsByEmailAndName(FindPwdRequest findPwdRequest) { + return userRepository.existsByEmailAndName(findPwdRequest.getEmail(), findPwdRequest.getName()); } - private UserResponseDto buildUserResponseDto(Users user) { - return UserResponseDto.builder() - .userId(user.getUserId()) - .email(user.getEmail()) - .name(user.getName()) - .nickname(user.getNickname()) - .phoneNumber(user.getPhoneNumber()) - .tier(user.getTier()) - .build(); + private Users findByEmail(String userEmail) { + return userRepository.findByEmail(userEmail) + .orElseThrow(() -> new ResourceNotFoundException("해당 유저가 없습니다.")); } - private UserResponseDto buildUserResponseDto(Users user, List joinedGroups) { - return UserResponseDto.builder() - .userId(user.getUserId()) - .email(user.getEmail()) - .name(user.getName()) - .nickname(user.getNickname()) - .phoneNumber(user.getPhoneNumber()) - .joinedGroups(joinedGroups) - .tier(user.getTier()) - .build(); + private boolean isNull(String userEmail) { + return userEmail == null; } - private UserCardResponseDto buildUserCardResponseDto(Users user, List groupCards) { - return UserCardResponseDto.builder() - .userId(user.getUserId()) - .userName(user.getName()) - .userTier(user.getTier()) - .userPoint(user.getUserPoint()) - .groupCards(groupCards) - .build(); + private Users findByNameAndPhoneNum(FindEmailRequest findEmailRequest) { + return userRepository.findByNameAndPhoneNumber(findEmailRequest.getUserName(), findEmailRequest.getPhoneNumber()) + .orElseThrow(() -> new ResourceNotFoundException("이름과 전화번호를 다시 한 번 확인해주세요!")); } } From 91e2cb1ca991ffdf153ab5ba0d133cea514e2b02 Mon Sep 17 00:00:00 2001 From: Jeyong Date: Fri, 28 Mar 2025 20:16:02 +0900 Subject: [PATCH 8/8] =?UTF-8?q?[refactor]=20Test=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=83=9D=EC=84=B1=20=EA=B4=80=EB=A0=A8=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/MathCaptain/weakness/TestInit.java | 59 ++++++++----------- 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/TestInit.java b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/TestInit.java index 6dd400d..cee661a 100644 --- a/MathCaptain/weakness/src/main/java/MathCaptain/weakness/TestInit.java +++ b/MathCaptain/weakness/src/main/java/MathCaptain/weakness/TestInit.java @@ -13,6 +13,7 @@ import MathCaptain.weakness.domain.Recruitment.enums.RecruitmentStatus; import MathCaptain.weakness.domain.Recruitment.repository.CommentRepository; import MathCaptain.weakness.domain.Recruitment.repository.RecruitmentRepository; +import MathCaptain.weakness.domain.User.dto.request.SaveUserRequest; import MathCaptain.weakness.domain.User.entity.Users; import MathCaptain.weakness.domain.User.repository.UserRepository; import jakarta.annotation.PostConstruct; @@ -52,48 +53,40 @@ public void init() { String email3 = "test@test.com"; + SaveUserRequest saveUserRequest1 = SaveUserRequest.of( + email1, passwordEncoder.encode("password1"), + "tester01", "tester01", "01012345678" + ); + + SaveUserRequest saveUserRequest2 = SaveUserRequest.of( + email2, passwordEncoder.encode("password2"), + "tester02", "tester02", "01056781234" + ); + + SaveUserRequest saveUserRequest3 = SaveUserRequest.of( + email3, passwordEncoder.encode("test"), + "tester", "tester", "01011112111" + ); + /// 테스트 유저 생성 - Users users1 = Users.builder() - .userId(1L) - .email(email1) - .password(passwordEncoder.encode("password1")) - .name("tester01") - .nickname("tester01") - .phoneNumber("01012345678") - .build(); + Users users1 = Users.of(saveUserRequest1); - Users users2 = Users.builder() - .userId(2L) - .email(email2) - .password(passwordEncoder.encode("password2")) - .name("tester02") - .nickname("tester02") - .phoneNumber("01056781234") - .build(); + Users users2 = Users.of(saveUserRequest2); - Users users3 = Users.builder() - .userId(3L) - .email(email3) - .password(passwordEncoder.encode("test")) - .name("tester") - .nickname("tester") - .phoneNumber("01011111111") - .build(); + Users users3 = Users.of(saveUserRequest3); userRepository.save(users1); userRepository.save(users2); userRepository.save(users3); for (int i = 4; i <= 12; i++) { - Users users = Users.builder() - .userId((long) i) - .email("test" + i + "@test.com") - .password(passwordEncoder.encode("test")) - .name("tester" + i) - .nickname("tester" + i) - .phoneNumber("0101111111" + i % 10) - .build(); - userRepository.save(users); + SaveUserRequest saveUserRequest = SaveUserRequest.of( + "test" + i + "@test.com", passwordEncoder.encode("test"), + "tester" + i, "tester" + i, "0101111111" + i % 10 + ); + + Users user = Users.of(saveUserRequest); + userRepository.save(user); } log.info("======== 👤테스트 유저 생성 완료 =========");