From f7f809b0aaa39030751c2adf9e5cb022628c3503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=92=E1=85=A7=E1=86=AB=E1=84=90=E1=85=A2=20=E1=84=8E?= =?UTF-8?q?=E1=85=AC?= Date: Tue, 22 Apr 2025 04:56:17 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=ED=8C=80=20=EB=AA=A9=EB=A1=9D?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20API=EB=A5=BC=20List=20=ED=98=95?= =?UTF-8?q?=ED=83=9C=EB=A1=9C=20=EC=9D=91=EB=8B=B5=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../amcamp/domain/team/api/TeamController.java | 8 ++++++++ .../domain/team/application/TeamService.java | 7 +++++++ .../domain/team/dao/TeamRepositoryCustom.java | 3 +++ .../domain/team/dao/TeamRepositoryImpl.java | 18 ++++++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/src/main/java/com/amcamp/domain/team/api/TeamController.java b/src/main/java/com/amcamp/domain/team/api/TeamController.java index 6f0a1e61..0c6d71d6 100644 --- a/src/main/java/com/amcamp/domain/team/api/TeamController.java +++ b/src/main/java/com/amcamp/domain/team/api/TeamController.java @@ -12,6 +12,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Slice; import org.springframework.http.ResponseEntity; @@ -78,6 +79,7 @@ public TeamAdminResponse teamFindAdmin(@PathVariable Long teamId) { return teamService.findTeamAdmin(teamId); } + @Deprecated @Operation(summary = "팀 목록 조회", description = "회원이 참여한 팀 목록을 조회합니다.") @GetMapping("/list") public Slice teamFindAll( @@ -88,4 +90,10 @@ public Slice teamFindAll( int pageSize) { return teamService.findAllTeam(lastTeamId, pageSize); } + + @Operation(summary = "팀 목록 조회", description = "회원이 참여한 팀 목록을 조회합니다.") + @GetMapping("/list/all") + public List teamFindAll() { + return teamService.findAllTeamV2(); + } } diff --git a/src/main/java/com/amcamp/domain/team/application/TeamService.java b/src/main/java/com/amcamp/domain/team/application/TeamService.java index c9bdf2dc..fdd45d0c 100644 --- a/src/main/java/com/amcamp/domain/team/application/TeamService.java +++ b/src/main/java/com/amcamp/domain/team/application/TeamService.java @@ -20,6 +20,7 @@ import com.amcamp.global.util.MemberUtil; import com.amcamp.global.util.RandomUtil; import com.amcamp.global.util.RedisUtil; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Slice; @@ -179,6 +180,12 @@ public Slice findAllTeam(Long lastTeamId, int pageSize) { return teamRepository.findAllTeamByMemberId(currentMember.getId(), lastTeamId, pageSize); } + @Transactional(readOnly = true) + public List findAllTeamV2() { + Member currentMember = memberUtil.getCurrentMember(); + return teamRepository.findAllTeamByMemberIdV2(currentMember.getId()); + } + @Transactional(readOnly = true) public TeamAdminResponse findTeamAdmin(Long teamId) { Member member = memberUtil.getCurrentMember(); diff --git a/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryCustom.java b/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryCustom.java index ae43fc26..aadf9362 100644 --- a/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryCustom.java +++ b/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryCustom.java @@ -1,8 +1,11 @@ package com.amcamp.domain.team.dao; import com.amcamp.domain.team.dto.response.TeamInfoResponse; +import java.util.List; import org.springframework.data.domain.Slice; public interface TeamRepositoryCustom { Slice findAllTeamByMemberId(Long memberId, Long lastTeamId, int pageSize); + + List findAllTeamByMemberIdV2(Long memberId); } diff --git a/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryImpl.java b/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryImpl.java index 2aff504f..8980d856 100644 --- a/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryImpl.java +++ b/src/main/java/com/amcamp/domain/team/dao/TeamRepositoryImpl.java @@ -49,6 +49,24 @@ public Slice findAllTeamByMemberId( return checkLastPage(pageSize, results); } + @Override + public List findAllTeamByMemberIdV2(Long memberId) { + return jpaQueryFactory + .select( + Projections.constructor( + TeamInfoResponse.class, + team.id, + team.name, + team.description, + team.emoji)) + .from(teamParticipant) + .leftJoin(teamParticipant.team, team) + .on(team.id.eq(teamParticipant.team.id)) + .where(teamParticipant.member.id.eq(memberId)) + .orderBy(teamParticipant.createdDt.desc()) + .fetch(); + } + private BooleanExpression lastTeamId(Long teamId) { if (teamId == null) { return null; From 92311f620343a04d68d71b324d6fa7812126f5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=92=E1=85=A7=E1=86=AB=E1=84=90=E1=85=A2=20=E1=84=8E?= =?UTF-8?q?=E1=85=AC?= Date: Tue, 22 Apr 2025 04:59:33 +0900 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EA=B1=B0=20=ED=99=9C=EC=84=B1=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/develop_build_deploy.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/develop_build_deploy.yml b/.github/workflows/develop_build_deploy.yml index b8f026a5..53ad8822 100644 --- a/.github/workflows/develop_build_deploy.yml +++ b/.github/workflows/develop_build_deploy.yml @@ -4,6 +4,9 @@ on: push: branches: - develop + pull_request: + branches: + - develop env: DOCKERHUB_USERNAME: ht3064