diff --git a/src/main/java/stackpot/stackpot/chat/converter/ChatConverter.java b/src/main/java/stackpot/stackpot/chat/converter/ChatConverter.java index 3acb8d40..f3e2489b 100644 --- a/src/main/java/stackpot/stackpot/chat/converter/ChatConverter.java +++ b/src/main/java/stackpot/stackpot/chat/converter/ChatConverter.java @@ -9,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.util.List; +import static stackpot.stackpot.user.entity.enums.Role.UNKNOWN; + @Component public class ChatConverter { @@ -21,10 +23,18 @@ public ChatResponseDto.ChatFileDto toChatFileDto(String fileUrl) { } public ChatResponseDto.ChatDto toChatDto(Chat chat) { + + String userNameWithRole; + + if (chat.getUserName() == null || chat.getUserName().equals("(알 수 없음)") || chat.getRole() == null) { + userNameWithRole = chat.getUserName(); + } else { + userNameWithRole = chat.getUserName() + " " + chat.getRole().getVegetable(); + } return ChatResponseDto.ChatDto.builder() .userId(chat.getUserId()) .chatId(chat.getId()) - .userName(chat.getUserName() + " " + chat.getRole().getVegetable()) + .userName(userNameWithRole) .role(chat.getRole()) .message(chat.getMessage()) .fileUrl(chat.getFileUrl()) diff --git a/src/main/java/stackpot/stackpot/common/util/RoleNameMapper.java b/src/main/java/stackpot/stackpot/common/util/RoleNameMapper.java index 585e72c0..a7f37f74 100644 --- a/src/main/java/stackpot/stackpot/common/util/RoleNameMapper.java +++ b/src/main/java/stackpot/stackpot/common/util/RoleNameMapper.java @@ -1,5 +1,7 @@ package stackpot.stackpot.common.util; +import stackpot.stackpot.user.entity.User; + import java.util.Map; public final class RoleNameMapper { @@ -26,4 +28,16 @@ private RoleNameMapper() {} // 인스턴스화 방지 public static String mapRoleName(String potRole) { return roleMap.getOrDefault(potRole, "멤버"); } + public static String getWriterNickname(User user) { + String writerNickname = user.getNickname(); + + // 사용자가 탈퇴한 경우 "새싹"을 제거 + if (user.isDeleted()) { + writerNickname = writerNickname; // 탈퇴한 경우 "새싹" 제거 + } else { + writerNickname += " 새싹"; // 탈퇴하지 않은 경우 "새싹" 추가 + } + + return writerNickname; + } } \ No newline at end of file diff --git a/src/main/java/stackpot/stackpot/feed/converter/FeedConverter.java b/src/main/java/stackpot/stackpot/feed/converter/FeedConverter.java index e2628e88..6b42cb6c 100644 --- a/src/main/java/stackpot/stackpot/feed/converter/FeedConverter.java +++ b/src/main/java/stackpot/stackpot/feed/converter/FeedConverter.java @@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import stackpot.stackpot.common.util.DateFormatter; +import stackpot.stackpot.common.util.RoleNameMapper; import stackpot.stackpot.feed.dto.FeedCacheDto; import stackpot.stackpot.feed.entity.Feed; import stackpot.stackpot.feed.dto.FeedRequestDto; @@ -30,7 +31,7 @@ public class FeedConverter{ public FeedResponseDto.FeedDto feedDto(Feed feed, Boolean isOwner, Boolean isLiked, Boolean isSaved, long saveCount) { Long commentCount = feedCommentRepository.countByFeedId(feed.getFeedId()); - String writerNickname = getWriterNickname(feed.getUser()); + String writerNickname = RoleNameMapper.getWriterNickname(feed.getUser()); return FeedResponseDto.FeedDto.builder() .feedId(feed.getFeedId()) @@ -110,7 +111,7 @@ public FeedResponseDto.AuthorizedFeedDto toAuthorizedFeedDto(Feed feed, boolean "comment", feed.getSeries().getComment() ); } - String writerNickname = getWriterNickname(feed.getUser()); + String writerNickname = RoleNameMapper.getWriterNickname(feed.getUser()); FeedResponseDto.CreatedFeedDto createdDto = FeedResponseDto.CreatedFeedDto.builder() .feedId(feed.getFeedId()) .writerId(feed.getUser().getId()) @@ -167,18 +168,7 @@ public FeedCacheDto toFeedCacheDto(Feed feed) { .createdAt(feed.getCreatedAt().toString()) .build(); } - public String getWriterNickname(User user) { - String writerNickname = user.getNickname(); - - // 사용자가 탈퇴한 경우 "새싹"을 제거 - if (user.isDeleted()) { - writerNickname = writerNickname; // 탈퇴한 경우 "새싹" 제거 - } else { - writerNickname += " 새싹"; // 탈퇴하지 않은 경우 "새싹" 추가 - } - return writerNickname; - } } \ No newline at end of file diff --git a/src/main/java/stackpot/stackpot/pot/converter/PotApplicationConverter.java b/src/main/java/stackpot/stackpot/pot/converter/PotApplicationConverter.java index 59621ad4..3e5564ff 100644 --- a/src/main/java/stackpot/stackpot/pot/converter/PotApplicationConverter.java +++ b/src/main/java/stackpot/stackpot/pot/converter/PotApplicationConverter.java @@ -36,7 +36,7 @@ public PotApplication toEntity(PotApplicationRequestDto dto, Pot pot, User user) public PotApplicationResponseDto toDto(PotApplication entity) { String roleName = entity.getPotRole().name(); - + String userNickname = RoleNameMapper.getWriterNickname(entity.getUser()); Map roleInfo = new HashMap<>(); roleInfo.put("name", roleName); roleInfo.put("koreanName", Role.toKoreanName(roleName)); @@ -45,8 +45,9 @@ public PotApplicationResponseDto toDto(PotApplication entity) { .applicationId(entity.getApplicationId()) .potRole(roleInfo) .userId(entity.getUser().getId()) - .userNickname(entity.getUser().getNickname() + " 새싹") + .userNickname(userNickname) .build(); } + } diff --git a/src/main/java/stackpot/stackpot/pot/converter/PotCommentConverter.java b/src/main/java/stackpot/stackpot/pot/converter/PotCommentConverter.java index f5531336..e59a4591 100644 --- a/src/main/java/stackpot/stackpot/pot/converter/PotCommentConverter.java +++ b/src/main/java/stackpot/stackpot/pot/converter/PotCommentConverter.java @@ -1,8 +1,10 @@ package stackpot.stackpot.pot.converter; import org.springframework.stereotype.Component; +import stackpot.stackpot.common.util.RoleNameMapper; import stackpot.stackpot.pot.dto.PotCommentDto; import stackpot.stackpot.pot.dto.PotCommentResponseDto; +import stackpot.stackpot.user.entity.User; import stackpot.stackpot.user.entity.enums.Role; import java.time.LocalDateTime; @@ -48,9 +50,20 @@ public PotCommentResponseDto.PotCommentUpdateDto toPotCommentUpdateDto(String co } public PotCommentResponseDto.AllPotCommentDto toAllPotCommentDto(PotCommentDto.PotCommentInfoDto dto, Long currentUserId) { + + String finalUserName; + + if ("(알 수 없음)".equals(dto.getUserName())) { + + finalUserName = dto.getUserName(); + } else { + finalUserName = dto.getUserName() + " 새싹"; + } + + return PotCommentResponseDto.AllPotCommentDto.builder() .userId(dto.getUserId()) - .userName(dto.getUserName() + " 새싹") + .userName(finalUserName) .isCommentWriter(Objects.equals(dto.getUserId(), currentUserId)) .isPotWriter(Objects.equals(dto.getPotWriterId(), dto.getUserId())) .commentId(dto.getCommentId()) @@ -60,4 +73,5 @@ public PotCommentResponseDto.AllPotCommentDto toAllPotCommentDto(PotCommentDto.P .children(new ArrayList<>()) .build(); } + } diff --git a/src/main/java/stackpot/stackpot/pot/converter/PotMemberConverter.java b/src/main/java/stackpot/stackpot/pot/converter/PotMemberConverter.java index fb5a31a2..715037fc 100644 --- a/src/main/java/stackpot/stackpot/pot/converter/PotMemberConverter.java +++ b/src/main/java/stackpot/stackpot/pot/converter/PotMemberConverter.java @@ -39,7 +39,16 @@ public PotMember toCreatorEntity(User user, Pot pot, Role role) { public PotMemberAppealResponseDto toDto(PotMember entity) { String roleName = entity.getRoleName() != null ? entity.getRoleName().name() : "멤버"; - String nicknameWithRole = entity.getUser().getNickname() + " " + RoleNameMapper.mapRoleName(roleName); + String nicknameWithRole; + + if (entity.getUser() == null || entity.getUser().isDeleted()) { + // 탈퇴한 사용자라면 roleName 제외 + nicknameWithRole = entity.getUser() != null ? entity.getUser().getNickname() : "(알 수 없음)"; + } else { + // 정상 사용자 + nicknameWithRole = entity.getUser().getNickname() + " " + RoleNameMapper.mapRoleName(roleName); + } + return PotMemberAppealResponseDto.builder() .potMemberId(entity.getPotMemberId()) @@ -69,7 +78,17 @@ public PotMemberInfoResponseDto toKaKaoMemberDto(PotMember entity) { String roleName = entity.getPotApplication() != null ? entity.getPotApplication().getPotRole().name() : "멤버"; - String nicknameWithRole = entity.getUser().getNickname() + " " + RoleNameMapper.mapRoleName(roleName); + + + String nicknameWithRole; + + if (entity.getUser() == null || entity.getUser().isDeleted()) { + // 탈퇴한 사용자라면 roleName 제외 + nicknameWithRole = entity.getUser() != null ? entity.getUser().getNickname() : "(알 수 없음)"; + } else { + // 정상 사용자 + nicknameWithRole = entity.getUser().getNickname() + " " + RoleNameMapper.mapRoleName(roleName); + } return PotMemberInfoResponseDto.builder() .potMemberId(entity.getPotMemberId())