From 5d5c4d6fcda3e76c1b3ba9e1adb10f884cd74273 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 20 Aug 2024 15:49:15 +0900 Subject: [PATCH] =?UTF-8?q?#187=20Fix:=20=ED=8C=80=20=ED=8C=94=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20=EB=B0=8F=20=ED=94=84=EB=A1=9C=ED=95=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EA=B6=8C=ED=95=9C=20=EB=B6=84=EB=A6=AC=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/converter/TeamConverter.java | 3 ++- .../TeamService/TeamQueryServiceImpl.java | 24 +++++++++++++++---- .../global/web/dto/Team/TeamResponseDTO.java | 4 ++-- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/codiary/backend/global/converter/TeamConverter.java b/src/main/java/com/codiary/backend/global/converter/TeamConverter.java index f5b457d2..2e4f32ee 100644 --- a/src/main/java/com/codiary/backend/global/converter/TeamConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/TeamConverter.java @@ -27,7 +27,7 @@ public static TeamResponseDTO.CreateTeamResponseDTO toCreateMemberDTO(Team team) } //팀 조회 - public static TeamResponseDTO.TeamCheckResponseDTO toTeamCheckResponseDTO(Team team) { + public static TeamResponseDTO.TeamCheckResponseDTO toTeamCheckResponseDTO(Team team, boolean isAdmin) { List members = team.getTeamMemberList().stream() .map(TeamMemberConverter::toTeamMemberDTO) .collect(Collectors.toList()); @@ -46,6 +46,7 @@ public static TeamResponseDTO.TeamCheckResponseDTO toTeamCheckResponseDTO(Team t .email(team.getEmail()) .linkedIn(team.getLinkedin()) .members(members) + .isAdmin(isAdmin) .build(); } diff --git a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java index 13cefa07..a1161546 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java @@ -7,12 +7,11 @@ import com.codiary.backend.global.domain.entity.Member; import com.codiary.backend.global.domain.entity.Team; import com.codiary.backend.global.domain.entity.TeamFollow; -import com.codiary.backend.global.repository.TeamBannerImageRepository; -import com.codiary.backend.global.repository.TeamFollowRepository; -import com.codiary.backend.global.repository.TeamProfileImageRepository; +import com.codiary.backend.global.domain.enums.MemberRole; +import com.codiary.backend.global.jwt.SecurityUtil; +import com.codiary.backend.global.repository.*; import com.codiary.backend.global.converter.TeamConverter; import com.codiary.backend.global.domain.entity.Team; -import com.codiary.backend.global.repository.TeamRepository; import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; import lombok.RequiredArgsConstructor; import org.hibernate.Hibernate; @@ -29,6 +28,7 @@ public class TeamQueryServiceImpl implements TeamQueryService { private final TeamRepository teamRepository; private final TeamFollowService teamFollowService; private final TeamFollowRepository teamFollowRepository; + private final MemberRepository memberRepository; @Override public ApiResponse getBannerImage(Long teamId) { @@ -60,8 +60,22 @@ public TeamResponseDTO.TeamCheckResponseDTO getTeamById(Long teamId) { Team team = teamRepository.findById(teamId) .orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); + Member currentMember = getRequester(); + + boolean isAdmin = team.getTeamMemberList().stream() + .anyMatch(teamMember -> + teamMember.getMember().getMemberId().equals(currentMember.getMemberId()) && + teamMember.getTeamMemberRole() == MemberRole.ADMIN + ); + team.getTeamMemberList().size(); - return TeamConverter.toTeamCheckResponseDTO(team); + return TeamConverter.toTeamCheckResponseDTO(team, isAdmin); + } + + private Member getRequester() { + String userEmail = SecurityUtil.getCurrentMemberEmail(); // 현재 사용자의 이메일을 가져옴 + return memberRepository.findByEmail(userEmail) + .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)); } @Override diff --git a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java index 48844589..b7a075d6 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java @@ -56,8 +56,8 @@ public static class TeamCheckResponseDTO { // 팀 조회 String email; String linkedIn; private List members; // 팀원 목록 추가 - // 팀 팔로우 정보를 추가 - private TeamFollowResponseDto followInfo; + private Boolean isAdmin; + private TeamFollowResponseDto followInfo; // 팀 팔로우 정보를 추가 } @Getter