Skip to content

Commit b23bcd1

Browse files
authored
Merge pull request #95 from Modagbul/fix/team
Fix/team
2 parents 9c75e5e + 275bcd8 commit b23bcd1

File tree

8 files changed

+43
-11
lines changed

8 files changed

+43
-11
lines changed

src/main/java/com/moing/backend/domain/team/application/dto/response/GetTeamCountResponse.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.moing.backend.domain.team.application.dto.response;
22

3+
import com.querydsl.core.annotations.QueryProjection;
34
import lombok.AllArgsConstructor;
45
import lombok.Builder;
56
import lombok.Getter;
@@ -11,5 +12,15 @@ public class GetTeamCountResponse {
1112

1213
private String teamName;
1314
private Long numOfTeam;
15+
private String leaderName;
1416

17+
public void updateCount(Long count){
18+
this.numOfTeam=count;
19+
}
20+
21+
@QueryProjection
22+
public GetTeamCountResponse(String teamName, String leaderName){
23+
this.teamName=teamName;
24+
this.leaderName=leaderName;
25+
}
1526
}

src/main/java/com/moing/backend/domain/team/application/dto/response/ReviewTeamResponse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
@AllArgsConstructor
1111
@NoArgsConstructor
1212
public class ReviewTeamResponse {
13+
1314
private Long teamId;
1415
private String teamName;
1516
private Integer numOfMember;
1617
private Long duration; //걸린시간(단위:날짜)
1718
private Long numOfMission;
1819
private Integer levelOfFire; //불꽃 레벨
20+
private Boolean isLeader;
1921
}

src/main/java/com/moing/backend/domain/team/application/mapper/TeamMapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public GetTeamDetailResponse toTeamDetailResponse(Long memberId, Team team, Inte
3838
.build();
3939
}
4040

41-
public ReviewTeamResponse toReviewTeamResponse(Long numOfMission, Team team){
41+
public ReviewTeamResponse toReviewTeamResponse(Long numOfMission, Team team, boolean isLeader){
4242
return ReviewTeamResponse
4343
.builder()
4444
.teamId(team.getTeamId())
@@ -47,6 +47,7 @@ public ReviewTeamResponse toReviewTeamResponse(Long numOfMission, Team team){
4747
.levelOfFire(team.getLevelOfFire())
4848
.duration(calculateDuration(team.getApprovalTime()))
4949
.numOfMission(numOfMission)
50+
.isLeader(isLeader)
5051
.build();
5152
}
5253

src/main/java/com/moing/backend/domain/team/application/service/ReviewTeamUseCase.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.moing.backend.domain.team.application.service;
22

3+
import com.moing.backend.domain.member.domain.entity.Member;
4+
import com.moing.backend.domain.member.domain.service.MemberGetService;
35
import com.moing.backend.domain.mission.domain.service.MissionQueryService;
46
import com.moing.backend.domain.team.application.dto.response.ReviewTeamResponse;
57
import com.moing.backend.domain.team.application.mapper.TeamMapper;
@@ -18,10 +20,13 @@ public class ReviewTeamUseCase {
1820
private final TeamGetService teamGetService;
1921
private final TeamMapper teamMapper;
2022
private final MissionQueryService missionQueryService;
21-
23+
private final CheckLeaderUseCase checkLeaderUseCase;
24+
private final MemberGetService memberGetService;
2225

2326
public ReviewTeamResponse reviewTeam(String socialId, Long teamId){
2427
Team team=teamGetService.getTeamByTeamId(teamId);
25-
return teamMapper.toReviewTeamResponse(missionQueryService.findMissionsCountByTeam(team.getTeamId()),team);
28+
Member member=memberGetService.getMemberBySocialId(socialId);
29+
boolean isLeader=checkLeaderUseCase.isTeamLeader(member, team);
30+
return teamMapper.toReviewTeamResponse(missionQueryService.findMissionsCountByTeam(team.getTeamId()),team, isLeader);
2631
}
2732
}

src/main/java/com/moing/backend/domain/team/domain/repository/TeamCustomRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ public interface TeamCustomRepository {
2222
void updateTeamStatus(boolean isApproved, List<Long> teamIds);
2323
List<GetLeaderInfoResponse> findLeaderInfoByTeamIds(List<Long> teamIds);
2424
Page<GetNewTeamResponse> findNewTeam(String dateSort, Pageable pageable);
25-
Long findTeamCount(Long memberId);
25+
GetTeamCountResponse findTeamCount(Long memberId, Long teamId);
2626
}

src/main/java/com/moing/backend/domain/team/domain/repository/TeamCustomRepositoryImpl.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,9 @@ public Page<GetNewTeamResponse> findNewTeam(String dateSort, Pageable pageable)
178178
}
179179

180180
@Override
181-
public Long findTeamCount(Long memberId) {
181+
public GetTeamCountResponse findTeamCount(Long memberId, Long teamId) {
182182
LocalDateTime threeDaysAgo = LocalDateTime.now().minusDays(3);
183-
return queryFactory
183+
long count=queryFactory
184184
.select(team.count()) // 팀의 개수를 세기 위해 수정
185185
.from(teamMember)
186186
.innerJoin(teamMember.team, team)
@@ -191,6 +191,16 @@ public Long findTeamCount(Long memberId) {
191191
.or(team.deletionTime.after(threeDaysAgo)))) // 강제종료된 경우 3일이 지나지 않았다면
192192
.fetchOne(); // 단일 결과 (개수) 반환
193193

194+
GetTeamCountResponse response=queryFactory
195+
.select(new QGetTeamCountResponse(team.name, member.nickName))
196+
.from(team)
197+
.join(member).on(team.leaderId.eq(member.memberId))
198+
.where(team.teamId.eq(teamId))
199+
.fetchOne();
200+
201+
response.updateCount(count);
202+
203+
return response;
194204
}
195205

196206

src/main/java/com/moing/backend/domain/team/domain/service/TeamGetService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ public Page<GetNewTeamResponse> getNewTeams(String dateSort, Pageable pageable)
5757
}
5858

5959
public GetTeamCountResponse getTeamCountAndName(Long teamId, Long memberId) {
60-
String teamName = getTeamByTeamId(teamId).getName();
61-
Long numOfTeam = teamRepository.findTeamCount(memberId);
62-
return new GetTeamCountResponse(teamName, numOfTeam);
60+
61+
return teamRepository.findTeamCount(memberId, teamId);
6362
}
6463

6564
}

src/test/java/com/moing/backend/domain/team/presentation/TeamControllerTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ public void review_team() throws Exception {
259259
.duration(30L)
260260
.numOfMission(90L)
261261
.levelOfFire(3)
262+
.isLeader(false)
262263
.build();
263264

264265
given(reviewTeamUseCase.reviewTeam(any(), any())).willReturn(output);
@@ -289,7 +290,8 @@ public void review_team() throws Exception {
289290
fieldWithPath("data.numOfMember").description("모임원 명 수"),
290291
fieldWithPath("data.duration").description("소모임과 함께한 시간"),
291292
fieldWithPath("data.levelOfFire").description("소모임 불꽃 레벨"),
292-
fieldWithPath("data.numOfMission").description("미션 총 개수")
293+
fieldWithPath("data.numOfMission").description("미션 총 개수"),
294+
fieldWithPath("data.isLeader").description("소모임장 여부")
293295
)
294296
)
295297
);
@@ -516,6 +518,7 @@ public void get_team_count() throws Exception {
516518
GetTeamCountResponse output = GetTeamCountResponse.builder()
517519
.teamName("소모임 이름")
518520
.numOfTeam(2L)
521+
.leaderName("소모임장 이름")
519522
.build();
520523

521524
given(getTeamUseCase.getTeamCount(any(), any())).willReturn(output);
@@ -544,7 +547,8 @@ public void get_team_count() throws Exception {
544547
fieldWithPath("isSuccess").description("true"),
545548
fieldWithPath("message").description("소모임을 수정했습니다."),
546549
fieldWithPath("data.teamName").description("소모임 이름"),
547-
fieldWithPath("data.numOfTeam").description("지금까지 가입한 소모임 개수")
550+
fieldWithPath("data.numOfTeam").description("지금까지 가입한 소모임 개수"),
551+
fieldWithPath("data.leaderName").description("소모임장 이름")
548552
)
549553
)
550554
);

0 commit comments

Comments
 (0)