From 2f136ac19e8790df719696b50f3eb961fa2650d4 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 20 Aug 2024 20:55:00 +0900 Subject: [PATCH] =?UTF-8?q?#197=20Fix:=20=ED=8C=80=20=EB=A9=A4=EB=B2=84=20?= =?UTF-8?q?=EC=97=AD=ED=95=A0=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=ED=8C=80?= =?UTF-8?q?=EC=9B=90=20=EB=8B=89=EB=84=A4=EC=9E=84=20=EB=B0=98=ED=99=98=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/global/converter/TeamConverter.java | 16 ++++++---------- .../global/domain/entity/mapping/TeamMember.java | 3 +++ .../TeamMemberCommandServiceImpl.java | 11 +++-------- .../TeamService/TeamQueryServiceImpl.java | 15 +++++++++++++-- .../web/dto/TeamMember/TeamMemberRequestDTO.java | 1 + .../dto/TeamMember/TeamMemberResponseDTO.java | 2 ++ 6 files changed, 28 insertions(+), 20 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 41d68a97..ed5689f2 100644 --- a/src/main/java/com/codiary/backend/global/converter/TeamConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/TeamConverter.java @@ -32,26 +32,22 @@ public static TeamResponseDTO.CreateTeamResponseDTO toCreateMemberDTO(Team team) } //팀 조회 - public static TeamResponseDTO.TeamCheckResponseDTO toTeamCheckResponseDTO(Team team, boolean isAdmin) { - List members = team.getTeamMemberList().stream() - .map(TeamMemberConverter::toTeamMemberDTO) - .collect(Collectors.toList()); - + public static TeamResponseDTO.TeamCheckResponseDTO toTeamCheckResponseDTO(Team team, boolean isAdmin, List members) { return TeamResponseDTO.TeamCheckResponseDTO.builder() .teamId(team.getTeamId()) .name(team.getName()) .intro(team.getIntro()) - .bannerImageUrl((team.getBannerImage() != null) - ? team.getBannerImage().getImageUrl() - : "") .profileImageUrl((team.getProfileImage() != null) ? team.getProfileImage().getImageUrl() : "") + .bannerImageUrl((team.getBannerImage() != null) + ? team.getBannerImage().getImageUrl() + : "") .github(team.getGithub()) .email(team.getEmail()) .linkedIn(team.getLinkedin()) - .members(members) - .isAdmin(isAdmin) + .members(members) // 멤버 리스트 포함 + .isAdmin(isAdmin) .build(); } diff --git a/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java b/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java index a0189250..83af1a52 100644 --- a/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java +++ b/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java @@ -30,4 +30,7 @@ public class TeamMember { @JoinColumn(name = "team_id") private Team team; + @Column(name = "member_position", columnDefinition = "varchar(500)") + private String memberPosition; + } diff --git a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java index 3fabdc6a..f7f6f66b 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java @@ -23,7 +23,7 @@ public class TeamMemberCommandServiceImpl implements TeamMemberCommandService { private final MemberRepository memberRepository; private final TeamMemberRepository teamMemberRepository; - public TeamMember addMemberToTeam(Member member, Team team, MemberRole role) { + public TeamMember addMemberToTeam(Member member, Team team, MemberRole role, String position) { if(teamMemberRepository.findByTeamAndMember(team, member).isPresent()) { throw new GeneralException(ErrorStatus.TEAM_MEMBER_ALREADY_EXISTS); } @@ -31,6 +31,7 @@ public TeamMember addMemberToTeam(Member member, Team team, MemberRole role) { .team(team) .member(member) .teamMemberRole(role) + .memberPosition(position) .build(); return teamMemberRepository.save(teamMember); @@ -57,13 +58,7 @@ public TeamMember addMember(TeamMemberRequestDTO.AddMemberDTO request) { Member member = memberRepository.findById(request.getMemberId()) .orElseThrow(() -> new IllegalArgumentException("Invalid member ID")); - TeamMember teamMember = TeamMember.builder() - .team(team) - .member(member) - .teamMemberRole(request.getMemberRole()) - .build(); - - return addMemberToTeam(member, team, request.getMemberRole()); + return addMemberToTeam(member, team, request.getMemberRole(), request.getMemberPosition()); } @Override 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 1d42e1f8..df2521ac 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 @@ -16,6 +16,7 @@ import com.codiary.backend.global.repository.*; import com.codiary.backend.global.converter.TeamConverter; import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO; import lombok.RequiredArgsConstructor; import org.hibernate.Hibernate; import org.springframework.stereotype.Service; @@ -71,8 +72,18 @@ public TeamResponseDTO.TeamCheckResponseDTO getTeamById(Long teamId) { teamMember.getTeamMemberRole() == MemberRole.ADMIN ); - team.getTeamMemberList().size(); - return TeamConverter.toTeamCheckResponseDTO(team, isAdmin); + List members = team.getTeamMemberList().stream() + .map(teamMember -> TeamMemberResponseDTO.TeamMemberDTO.builder() + .teamMemberId(teamMember.getTeamMemberId()) + .teamId(team.getTeamId()) + .memberId(teamMember.getMember().getMemberId()) + .nickname(teamMember.getMember().getNickname()) + .memberRole(teamMember.getTeamMemberRole()) + .memberPosition(teamMember.getMemberPosition()) + .build()) + .collect(Collectors.toList()); + + return TeamConverter.toTeamCheckResponseDTO(team, isAdmin, members); } private Member getRequester() { diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java index 2b3cab4d..34be5631 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java @@ -15,6 +15,7 @@ public static class AddMemberDTO { private Long teamId; private Long memberId; private MemberRole memberRole; + private String memberPosition; } @Getter diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java index e0cde508..e4440416 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java @@ -30,6 +30,8 @@ public static class TeamMemberDTO { private Long teamMemberId; private Long teamId; private Long memberId; + private String nickname; private MemberRole memberRole; + private String memberPosition; } }