Skip to content

Commit 6cd134c

Browse files
committed
MNG-22 refactor : 미션 관련 메소드 정리
1 parent 58bcc35 commit 6cd134c

File tree

6 files changed

+18
-89
lines changed

6 files changed

+18
-89
lines changed

src/main/java/com/moing/backend/domain/mission/application/service/MissionRemindAlarmUseCase.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import com.moing.backend.global.config.fcm.dto.request.MultiRequest;
1313
import com.moing.backend.global.config.fcm.service.MultiMessageSender;
1414
import lombok.RequiredArgsConstructor;
15-
import org.springframework.context.ApplicationEventPublisher;
1615
import org.springframework.stereotype.Service;
1716

1817
import javax.transaction.Transactional;
@@ -31,15 +30,14 @@ public class MissionRemindAlarmUseCase {
3130

3231
private final MissionArchiveScheduleQueryService missionArchiveScheduleQueryService;
3332
private final MissionQueryService missionQueryService;
34-
private final ApplicationEventPublisher eventPublisher;
3533

3634
private final MultiMessageSender multiMessageSender;
3735
private final SaveMultiAlarmHistoryUseCase saveMultiAlarmHistoryUseCase;
3836

3937
String REMIND_NAME = "미션 리마인드";
4038

4139

42-
public Boolean sendRemindMissionAlarm() {
40+
public void sendRemindMissionAlarm() {
4341

4442
Random random = new Random(System.currentTimeMillis());
4543
String title = getTitle(random.nextInt(4));
@@ -50,16 +48,12 @@ public Boolean sendRemindMissionAlarm() {
5048
Optional<List<MemberIdAndToken>> memberIdAndTokens = mapToMemberAndToken(remainMissionPeople);
5149
Optional<List<MemberIdAndToken>> pushMemberIdAndToken = isPushMemberIdAndToken(remainMissionPeople);
5250

53-
// eventPublisher.publishEvent(new MultiFcmEvent(title, message, pushMemberIdAndToken, memberIdAndTokens,
54-
// "",REMIND_NAME, AlarmType.REMIND, PagePath.MISSION_ALL_PTAH.getValue()));
55-
5651
if (pushMemberIdAndToken.isPresent() && !pushMemberIdAndToken.get().isEmpty()) {
5752
multiMessageSender.send(new MultiRequest(pushMemberIdAndToken.get(), title, message, "", REMIND_NAME, AlarmType.REMIND, PagePath.MISSION_ALL_PTAH.getValue()));
5853
}
5954
if (memberIdAndTokens.isPresent() && !memberIdAndTokens.get().isEmpty()) {
6055
saveMultiAlarmHistoryUseCase.saveAlarmHistories(AlarmHistoryMapper.getMemberIds(memberIdAndTokens.get()),"",title,message,REMIND_NAME, AlarmType.REMIND, PagePath.MISSION_ALL_PTAH.getValue());
6156
}
62-
return true;
6357
}
6458

6559

@@ -137,15 +131,15 @@ public Boolean sendRepeatMissionRemindOnMonday() {
137131

138132
}
139133

140-
public Optional<List<MemberIdAndToken>> mapToMemberAndToken(List<Member> members) {
134+
private Optional<List<MemberIdAndToken>> mapToMemberAndToken(List<Member> members) {
141135
return Optional.of(members.stream()
142136
.map(member -> MemberIdAndToken.builder()
143137
.fcmToken(member.getFcmToken())
144138
.memberId(member.getMemberId())
145139
.build())
146140
.collect(Collectors.toList()));
147141
}
148-
public Optional<List<MemberIdAndToken>> isPushMemberIdAndToken(List<Member> members) {
142+
private Optional<List<MemberIdAndToken>> isPushMemberIdAndToken(List<Member> members) {
149143
return Optional.of(members.stream()
150144
.map(member -> {
151145
if (member.isRemindPush() && !member.isSignOut()) {

src/main/java/com/moing/backend/domain/mission/application/service/MissionTerminationUseCase.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/main/java/com/moing/backend/domain/mission/application/service/MissionUpdateUseCase.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,14 @@
1010
import com.moing.backend.domain.mission.domain.entity.constant.MissionStatus;
1111
import com.moing.backend.domain.mission.domain.service.MissionQueryService;
1212
import com.moing.backend.domain.mission.domain.service.MissionSaveService;
13-
import com.moing.backend.domain.mission.exception.NoAccessCreateMission;
14-
import com.moing.backend.domain.mission.exception.NoAccessDeleteMission;
1513
import com.moing.backend.domain.mission.exception.NoAccessUpdateMission;
1614
import com.moing.backend.domain.team.domain.entity.Team;
1715
import lombok.RequiredArgsConstructor;
1816
import org.springframework.stereotype.Service;
1917
import org.springframework.transaction.annotation.Transactional;
2018

2119
import java.time.LocalDateTime;
20+
import java.util.List;
2221

2322
@Service
2423
@Transactional
@@ -31,17 +30,12 @@ public class MissionUpdateUseCase {
3130

3231
public MissionCreateRes updateMission(String userSocialId, Long missionId, MissionReq missionReq) {
3332

34-
3533
Member member = memberGetService.getMemberBySocialId(userSocialId);
3634
Mission mission = missionQueryService.findMissionById(missionId);
3735
Team team = mission.getTeam();
3836

3937
Long memberId = member.getMemberId();
4038

41-
/**
42-
* 미션 생성자 확인
43-
*/
44-
4539
if (!((memberId.equals(mission.getMakerId())) || memberId.equals(team.getLeaderId())) ) {
4640
throw new NoAccessUpdateMission();
4741
}
@@ -51,11 +45,11 @@ public MissionCreateRes updateMission(String userSocialId, Long missionId, Missi
5145

5246
}
5347

54-
public MissionReadRes updateMissionStatus(String userSocialId, Long missionId) {
55-
48+
public MissionReadRes terminateMissionByUser(String userSocialId, Long missionId) {
5649

5750
Member member = memberGetService.getMemberBySocialId(userSocialId);
5851
Long memberId = member.getMemberId();
52+
5953
Mission findMission = missionQueryService.findMissionById(missionId);
6054
Team team = findMission.getTeam();
6155

@@ -69,4 +63,10 @@ public MissionReadRes updateMissionStatus(String userSocialId, Long missionId) {
6963
return MissionMapper.mapToMissionReadRes(findMission,member);
7064

7165
}
66+
67+
public void terminateMissionByAdmin() {
68+
missionQueryService.findMissionByDueTo().stream().forEach(
69+
mission -> mission.updateStatus(MissionStatus.END)
70+
);
71+
}
7272
}

src/main/java/com/moing/backend/domain/mission/domain/repository/MissionCustomRepositoryImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,11 @@ private JPQLQuery<Long> RepeatMissionDonePeopleByWeek(NumberPath<Long> missionId
128128
@Override
129129
public Optional<List<Mission>> findMissionByDueTo() {
130130

131-
LocalDateTime now = LocalDateTime.now();
132-
133131
return Optional.ofNullable(queryFactory
134132
.selectFrom(mission)
135133
.where(
136-
mission.dueTo.before(now),
137134
mission.status.eq(MissionStatus.WAIT).or(mission.status.eq(MissionStatus.ONGOING)),
135+
mission.dueTo.before(LocalDateTime.now()),
138136
mission.type.eq(MissionType.ONCE)
139137
).fetch());
140138
}

src/main/java/com/moing/backend/domain/mission/presentation/MissionController.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,11 @@
2020
@RequestMapping("/api/team/{teamId}/missions")
2121
public class MissionController {
2222

23-
2423
private final MissionCreateUseCase missionCreateUseCase;
2524
private final MissionReadUseCase missionReadUseCase;
2625
private final MissionUpdateUseCase missionUpdateUseCase;
2726
private final MissionDeleteUseCase missionDeleteUseCase;
2827

29-
// private final MissionRemindAlarmUseCase missionRemindAlarmUseCase;
30-
3128
/**
3229
* 미션 조회
3330
* [GET] {teamId}/missions/{missionId}
@@ -39,8 +36,6 @@ public ResponseEntity<SuccessResponse<MissionReadRes>> getMission(@Authenticatio
3936
return ResponseEntity.ok(SuccessResponse.create(READ_MISSION_SUCCESS.getMessage(), this.missionReadUseCase.getMission(user.getSocialId(),missionId)));
4037
}
4138

42-
43-
4439
/**
4540
* 미션 생성
4641
* [POST] {teamId}/missions
@@ -68,8 +63,8 @@ public ResponseEntity<SuccessResponse<MissionCreateRes>> updateMission(@Authenti
6863
* 작성자 : 정승연
6964
*/
7065
@PutMapping("/{missionId}/end")
71-
public ResponseEntity<SuccessResponse<MissionReadRes>> endMission(@AuthenticationPrincipal User user,@PathVariable("teamId") Long teamId,@PathVariable Long missionId) {
72-
return ResponseEntity.ok(SuccessResponse.create(END_MISSION_SUCCESS.getMessage(), this.missionUpdateUseCase.updateMissionStatus(user.getSocialId(),missionId)));
66+
public ResponseEntity<SuccessResponse<MissionReadRes>> terminateMission(@AuthenticationPrincipal User user, @PathVariable("teamId") Long teamId, @PathVariable Long missionId) {
67+
return ResponseEntity.ok(SuccessResponse.create(END_MISSION_SUCCESS.getMessage(), this.missionUpdateUseCase.terminateMissionByUser(user.getSocialId(),missionId)));
7368
}
7469

7570
/**
@@ -78,7 +73,7 @@ public ResponseEntity<SuccessResponse<MissionReadRes>> endMission(@Authenticatio
7873
* 작성자 : 정승연
7974
*/
8075
@DeleteMapping("/{missionId}")
81-
public ResponseEntity<SuccessResponse<Long>> deleteMission(@AuthenticationPrincipal User user,@PathVariable Long missionId) {
76+
public ResponseEntity<SuccessResponse<Long>> deleteMission(@AuthenticationPrincipal User user,@PathVariable("teamId") Long teamId,@PathVariable Long missionId) {
8277
return ResponseEntity.ok(SuccessResponse.create(DELETE_MISSION_SUCCESS.getMessage(), this.missionDeleteUseCase.deleteMission(user.getSocialId(),missionId)));
8378
}
8479

@@ -92,6 +87,7 @@ public ResponseEntity<SuccessResponse<Long>> deleteMission(@AuthenticationPrinci
9287
public ResponseEntity<SuccessResponse<String>> recommendMission(@AuthenticationPrincipal User user,@PathVariable Long teamId) {
9388
return ResponseEntity.ok(SuccessResponse.create(RECOMMEND_MISSION_SUCCESS.getMessage(), this.missionReadUseCase.getTeamCategory(teamId)));
9489
}
90+
9591
/**
9692
* 미션 추천
9793
* [GET] {teamId}/missions/isLeader
@@ -103,10 +99,6 @@ public ResponseEntity<SuccessResponse<Boolean>> isLeader(@AuthenticationPrincipa
10399
return ResponseEntity.ok(SuccessResponse.create(RECOMMEND_MISSION_SUCCESS.getMessage(), this.missionCreateUseCase.getIsLeader(user.getSocialId(),teamId)));
104100
}
105101

106-
// @PostMapping("/remind")
107-
// public ResponseEntity<SuccessResponse<Boolean>> remindAlarm(@AuthenticationPrincipal User user,@PathVariable Long teamId) {
108-
// return ResponseEntity.ok(SuccessResponse.create(RECOMMEND_MISSION_SUCCESS.getMessage(), this.missionRemindAlarmUseCase.sendRepeatMissionRemind()));
109-
// }
110102

111103
/**
112104
* 미션 설명 확인 (미션 읽음 처리)
@@ -124,5 +116,4 @@ public ResponseEntity<SuccessResponse<MissionConfirmRes>> confirmMissionExplanat
124116

125117

126118

127-
128119
}

src/test/java/com/moing/backend/domain/mission/representation/MissionControllerTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,14 @@
99
import com.moing.backend.domain.mission.application.service.MissionDeleteUseCase;
1010
import com.moing.backend.domain.mission.application.service.MissionReadUseCase;
1111
import com.moing.backend.domain.mission.application.service.MissionUpdateUseCase;
12-
import com.moing.backend.domain.mission.domain.repository.MissionRepository;
1312
import com.moing.backend.domain.mission.domain.service.MissionQueryService;
1413
import com.moing.backend.domain.mission.presentation.MissionController;
1514
import org.junit.jupiter.api.Test;
16-
import org.mockito.Mock;
17-
import org.springframework.beans.factory.annotation.Autowired;
1815
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
1916
import org.springframework.boot.test.mock.mockito.MockBean;
2017
import org.springframework.http.MediaType;
2118
import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders;
22-
import org.springframework.restdocs.payload.JsonFieldType;
2319
import org.springframework.test.web.servlet.ResultActions;
24-
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
2520
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
2621

2722
import static com.moing.backend.domain.mission.presentation.constant.MissionResponseMessage.CONFIRM_MISSION_SUCCESS;
@@ -35,7 +30,6 @@
3530
import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath;
3631
import static org.springframework.restdocs.request.RequestDocumentation.parameterWithName;
3732
import static org.springframework.restdocs.request.RequestDocumentation.pathParameters;
38-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
3933

4034
@WebMvcTest(MissionController.class)
4135
public class MissionControllerTest extends CommonControllerTest {
@@ -366,7 +360,7 @@ public class MissionControllerTest extends CommonControllerTest {
366360
.isLeader(Boolean.FALSE)
367361
.build();
368362

369-
given(missionUpdateUseCase.updateMissionStatus(any(),any())).willReturn(output);
363+
given(missionUpdateUseCase.terminateMissionByUser(any(),any())).willReturn(output);
370364

371365
Long teamId = 2L;
372366
Long missionId = 1L;

0 commit comments

Comments
 (0)