diff --git a/src/main/java/com/example/eatmate/app/domain/meeting/dto/MeetingDetailResponseDto.java b/src/main/java/com/example/eatmate/app/domain/meeting/dto/MeetingDetailResponseDto.java index 3b3b2413..6bdd4b36 100644 --- a/src/main/java/com/example/eatmate/app/domain/meeting/dto/MeetingDetailResponseDto.java +++ b/src/main/java/com/example/eatmate/app/domain/meeting/dto/MeetingDetailResponseDto.java @@ -18,12 +18,13 @@ public class MeetingDetailResponseDto { private LocalDateTime dueDateTime; private String backgroundImage; private Boolean isOwner; + private Boolean isCurrentUser; private List participants; @Builder private MeetingDetailResponseDto(String meetingType, String meetingName, String meetingDescription, GenderRestriction genderRestriction, String location, LocalDateTime dueDateTime, - String backgroundImage, Boolean isOwner, List participants) { + String backgroundImage, Boolean isOwner, Boolean isCurrentUser, List participants) { this.meetingType = meetingType; this.meetingName = meetingName; this.meetingDescription = meetingDescription; @@ -32,6 +33,7 @@ private MeetingDetailResponseDto(String meetingType, String meetingName, String this.dueDateTime = dueDateTime; this.backgroundImage = backgroundImage; this.isOwner = isOwner; + this.isCurrentUser = isCurrentUser; this.participants = participants; } @@ -39,22 +41,27 @@ private MeetingDetailResponseDto(String meetingType, String meetingName, String public static class ParticipantDto { private Long userId; private String name; + private String userProfileImage; private Boolean isOwner; private Boolean isCurrentUser; @Builder - private ParticipantDto(Long userId, String name, Boolean isOwner, Boolean isCurrentUser) { + private ParticipantDto(Long userId, String name, Boolean isOwner, Boolean isCurrentUser, + String userProfileImage) { this.userId = userId; this.name = name; + this.userProfileImage = userProfileImage; this.isOwner = isOwner; this.isCurrentUser = isCurrentUser; } - public static ParticipantDto createParticipantDto(Long userId, String name, Boolean isOwner, + public static ParticipantDto createParticipantDto(Long userId, String name, String userProfileImage, + Boolean isOwner, Boolean isCurrentUser) { return ParticipantDto.builder() .userId(userId) .name(name) + .userProfileImage(userProfileImage) .isOwner(isOwner) .isCurrentUser(isCurrentUser) .build(); diff --git a/src/main/java/com/example/eatmate/app/domain/meeting/service/MeetingService.java b/src/main/java/com/example/eatmate/app/domain/meeting/service/MeetingService.java index 6d353973..acd2a3e2 100644 --- a/src/main/java/com/example/eatmate/app/domain/meeting/service/MeetingService.java +++ b/src/main/java/com/example/eatmate/app/domain/meeting/service/MeetingService.java @@ -272,9 +272,9 @@ public MeetingDetailResponseDto getMeetingDetail(Long meetingId, UserDetails use Meeting meeting = meetingRepository.findById(meetingId) .orElseThrow(() -> new CommonException(ErrorCode.MEETING_NOT_FOUND)); - Long currentUserId = securityUtils.getMember(userDetails).getMemberId(); + Member member = securityUtils.getMember(userDetails); - List participants = getParticipants(meeting, currentUserId); + List participants = getParticipants(meeting, member.getMemberId()); return MeetingDetailResponseDto.builder() .meetingType(meeting.getType()) @@ -284,7 +284,8 @@ public MeetingDetailResponseDto getMeetingDetail(Long meetingId, UserDetails use .location(getLocation(meeting)) .dueDateTime(getDueDateTime(meeting)) .backgroundImage(Optional.ofNullable(meeting.getBackgroundImage()).map(Image::getImageUrl).orElse(null)) - .isOwner(isOwner(meeting, currentUserId)) + .isOwner(isOwner(meeting, member.getMemberId())) + .isCurrentUser(isCurrentUser(meeting, member)) .participants(participants) .build(); } @@ -313,6 +314,10 @@ private Boolean isOwner(Meeting meeting, Long currentUserId) { .orElse(false); } + private Boolean isCurrentUser(Meeting meeting, Member member) { + return meetingParticipantRepository.existsByMeetingAndMember(meeting, member); + } + private List getParticipants(Meeting meeting, Long currentUserId) { return meetingParticipantRepository.findByMeeting(meeting).stream() .sorted((p1, p2) -> { @@ -327,6 +332,9 @@ private List getParticipants(Meeting me .map(participant -> MeetingDetailResponseDto.ParticipantDto.createParticipantDto( participant.getMember().getMemberId(), participant.getMember().getNickname(), + Optional.ofNullable(participant.getMember().getProfileImage()) + .map(Image::getImageUrl) + .orElse(null), participant.getRole() == ParticipantRole.HOST, participant.getMember().getMemberId().equals(currentUserId) )) @@ -534,6 +542,7 @@ public void updateDeliveryMeeting(Long meetingId, UpdateDeliveryMeetingRequestDt updateDeliveryMeetingRequestDto.getStoreName(), updateDeliveryMeetingRequestDto.getPickupLocation(), updateDeliveryMeetingRequestDto.getAccountNumber(), + updateDeliveryMeetingRequestDto.getBankName(), backgroundImage ); }