Skip to content

Commit 207a889

Browse files
committed
CLAP-158 Refactor: 통계 usecase 통합 및 매핑 로직 구현 클래스 수정
1 parent 9d5ac00 commit 207a889

15 files changed

+98
-151
lines changed
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package clap.server.adapter.inbound.web.dto.statistics;
22

3-
public record StatisticsResponse(String key, long count) {
3+
public record StatisticsResponse(
4+
String key,
5+
long count) {
46

57
}

src/main/java/clap/server/adapter/inbound/web/statistics/FindStatisticsController.java

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,9 @@
2525
@RequiredArgsConstructor
2626
@RequestMapping("/api/tasks/statistics")
2727
public class FindStatisticsController {
28-
private final FindPeriodTaskRequestUsecase findPeriodTaskRequestUsecase;
29-
private final FindPeriodTaskProcessUsecase findPeriodTaskProcessUsecase;
30-
private final FindCategoryTaskRequestUsecase findCategoryTaskRequestUsecase;
28+
private final FindTaskProcessUsecase findTaskProcessUsecase;
3129
private final FindSubCategoryTaskRequestUsecase findSubCategoryTaskRequestUsecase;
32-
private final FindManagerTaskProcessUsecase findManagerTaskProcessUsecase;
30+
3331

3432
@Operation(summary = "기본 통계 API")
3533
@Parameter(name = "periodType", description = "day, week, month", required = true, in = QUERY)
@@ -38,32 +36,13 @@ public class FindStatisticsController {
3836
public ResponseEntity<List<StatisticsResponse>> aggregateTaskStatistics(@RequestParam PeriodType periodType, @RequestParam StatisticsType statisticsType) {
3937
switch (statisticsType) {
4038
case REQUEST_BY_PERIOD ->
41-
ResponseEntity.ok(findPeriodTaskRequestUsecase
42-
.aggregatePeriodTaskRequest(periodType.getType())
43-
.entrySet()
44-
.stream()
45-
.map(result -> new StatisticsResponse(result.getKey(), result.getValue()))
46-
.toList());
47-
case PROCESS_BY_PERIOD ->
48-
ResponseEntity.ok(findPeriodTaskProcessUsecase
49-
.aggregatePeriodTaskProcess(periodType.getType())
50-
.entrySet()
51-
.stream()
52-
.map(result -> new StatisticsResponse(result.getKey(), result.getValue()))
53-
.toList());
39+
ResponseEntity.ok(findTaskProcessUsecase.aggregatePeriodTaskRequest(periodType.getType()));
40+
case PROCESS_BY_PERIOD -> ResponseEntity.ok(findTaskProcessUsecase
41+
.aggregatePeriodTaskProcess(periodType.getType()));
5442
case REQUEST_BY_CATEGORY ->
55-
ResponseEntity.ok(findCategoryTaskRequestUsecase.aggregateCategoryTaskRequest(periodType.getType())
56-
.entrySet()
57-
.stream()
58-
.map(result -> new StatisticsResponse(result.getKey(), result.getValue()))
59-
.toList());
60-
case PROCESS_BY_MANAGER ->
61-
ResponseEntity.ok(findManagerTaskProcessUsecase
62-
.aggregateManagerTaskProcess(periodType.getType())
63-
.entrySet()
64-
.stream()
65-
.map(result -> new StatisticsResponse(result.getKey(), result.getValue()))
66-
.toList());
43+
ResponseEntity.ok(findTaskProcessUsecase.aggregateCategoryTaskRequest(periodType.getType()));
44+
case PROCESS_BY_MANAGER -> ResponseEntity.ok(findTaskProcessUsecase
45+
.aggregateManagerTaskProcess(periodType.getType()));
6746
}
6847
throw new StatisticsException(STATISTICS_BAD_REQUEST);
6948
}
@@ -74,10 +53,6 @@ public ResponseEntity<List<StatisticsResponse>> aggregateTaskStatistics(@Request
7453
@GetMapping("/subcategory")
7554
public ResponseEntity<List<StatisticsResponse>> aggregateSubCategoryTaskRequest(@RequestParam PeriodType periodType, @RequestParam String mainCategory) {
7655
return ResponseEntity.ok(findSubCategoryTaskRequestUsecase
77-
.aggregateSubCategoryTaskRequest(periodType.getType(), mainCategory)
78-
.entrySet()
79-
.stream()
80-
.map(result -> new StatisticsResponse(result.getKey(), result.getValue()))
81-
.toList());
56+
.aggregateSubCategoryTaskRequest(periodType.getType(), mainCategory));
8257
}
8358
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package clap.server.application.mapper.response;
2+
3+
import clap.server.adapter.inbound.web.dto.statistics.StatisticsResponse;
4+
5+
import java.util.List;
6+
import java.util.Map;
7+
8+
public class FindTaskStatisticsMapper {
9+
private FindTaskStatisticsMapper() {
10+
throw new IllegalArgumentException();
11+
}
12+
13+
public static List<StatisticsResponse> toStatisticsResponse(Map<String, Long> map){
14+
return map.entrySet()
15+
.stream()
16+
.map(result -> new StatisticsResponse(result.getKey(), result.getValue()))
17+
.toList();
18+
}
19+
}

src/main/java/clap/server/application/port/inbound/statistics/FindCategoryTaskRequestUsecase.java

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

src/main/java/clap/server/application/port/inbound/statistics/FindManagerTaskProcessUsecase.java

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

src/main/java/clap/server/application/port/inbound/statistics/FindPeriodTaskProcessUsecase.java

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

src/main/java/clap/server/application/port/inbound/statistics/FindPeriodTaskRequestUsecase.java

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package clap.server.application.port.inbound.statistics;
22

3-
import java.util.Map;
3+
import clap.server.adapter.inbound.web.dto.statistics.StatisticsResponse;
4+
5+
import java.util.List;
46

57
public interface FindSubCategoryTaskRequestUsecase {
6-
Map<String, Long> aggregateSubCategoryTaskRequest(String period, String mainCategory);
8+
List<StatisticsResponse> aggregateSubCategoryTaskRequest(String period, String mainCategory);
79
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package clap.server.application.port.inbound.statistics;
2+
3+
import clap.server.adapter.inbound.web.dto.statistics.StatisticsResponse;
4+
5+
import java.util.List;
6+
7+
public interface FindTaskProcessUsecase {
8+
List<StatisticsResponse> aggregateCategoryTaskRequest(String period);
9+
List<StatisticsResponse> aggregateManagerTaskProcess(String period);
10+
List<StatisticsResponse> aggregatePeriodTaskProcess(String period);
11+
List<StatisticsResponse> aggregatePeriodTaskRequest(String period);
12+
}

src/main/java/clap/server/application/statistics/FindCategoryTaskRequestService.java

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

0 commit comments

Comments
 (0)