From d797e347676f50cff0ab06446de602bc3555d734 Mon Sep 17 00:00:00 2001 From: yel-m Date: Thu, 30 May 2024 17:38:45 +0900 Subject: [PATCH 1/8] =?UTF-8?q?fix=20:=20=EC=A2=85=ED=95=A9=EC=A0=81?= =?UTF-8?q?=EC=9D=B8=20=ED=96=89=EB=B3=B5=20=EB=A6=AC=ED=8F=AC=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EC=A0=9C=EA=B3=B5=ED=95=98=EB=8A=94=20DTO=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/application/ReportSummaryService.java | 12 ++++++------ .../domain/report/converter/ReportConverter.java | 4 ++-- ...onseDto.java => SummaryHappinessResponseDto.java} | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) rename src/main/java/com/hobak/happinessql/domain/report/dto/{ReportSummaryResponseDto.java => SummaryHappinessResponseDto.java} (80%) diff --git a/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java b/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java index f572aa0..5aa35d1 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java +++ b/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java @@ -4,7 +4,7 @@ import com.hobak.happinessql.domain.record.repository.RecordRepository; import com.hobak.happinessql.domain.report.converter.ReportConverter; import com.hobak.happinessql.domain.report.domain.TimeOfDay; -import com.hobak.happinessql.domain.report.dto.ReportSummaryResponseDto; +import com.hobak.happinessql.domain.report.dto.SummaryHappinessResponseDto; import com.hobak.happinessql.domain.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -20,12 +20,12 @@ public class ReportSummaryService { private final RecordRepository recordRepository; - public ReportSummaryResponseDto getAllSummary(User user) { + public SummaryHappinessResponseDto getAllSummary(User user) { List records = recordRepository.findAllByUser(user); return generateReportSummary(records); } - public ReportSummaryResponseDto getAnnualSummary(User user) { + public SummaryHappinessResponseDto getAnnualSummary(User user) { int currentYear = LocalDate.now().getYear(); LocalDateTime startOfYear = LocalDateTime.of(currentYear, 1, 1, 0, 0); LocalDateTime endOfYear = LocalDateTime.of(currentYear, 12, 31, 23, 59, 59); @@ -34,7 +34,7 @@ public ReportSummaryResponseDto getAnnualSummary(User user) { return generateReportSummary(annualRecords); } - public ReportSummaryResponseDto getMonthlySummary(User user) { + public SummaryHappinessResponseDto getMonthlySummary(User user) { LocalDate today = LocalDate.now(); LocalDateTime startOfMonth = today.withDayOfMonth(1).atStartOfDay(); LocalDateTime endOfMonth = today.withDayOfMonth(today.lengthOfMonth()).atTime(23, 59, 59); @@ -43,11 +43,11 @@ public ReportSummaryResponseDto getMonthlySummary(User user) { return generateReportSummary(monthlyRecords); } - private ReportSummaryResponseDto generateReportSummary(List records) { + private SummaryHappinessResponseDto generateReportSummary(List records) { String location = LocationHappinessAnalyzer.getHappiestLocation(records); TimeOfDay timeOfDay = TimeOfDayHappinessAnalyzer.getHappiestTimeOfDay(records); String activity = ActivityHappinessAnalyzer.getHappiestActivity(records); - return ReportConverter.toReportSummaryResponseDto(timeOfDay, location, activity); + return ReportConverter.toSummaryHappinessResponseDto(timeOfDay, location, activity); } } diff --git a/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java b/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java index 9645a3d..bd485a7 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java +++ b/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java @@ -7,8 +7,8 @@ import java.util.ArrayList; public class ReportConverter { - public static ReportSummaryResponseDto toReportSummaryResponseDto(TimeOfDay timeOfDay, String location, String activity) { - return ReportSummaryResponseDto.builder() + public static SummaryHappinessResponseDto toSummaryHappinessResponseDto(TimeOfDay timeOfDay, String location, String activity) { + return SummaryHappinessResponseDto.builder() .activity(activity) .location(location) .timeOfDay(timeOfDay) diff --git a/src/main/java/com/hobak/happinessql/domain/report/dto/ReportSummaryResponseDto.java b/src/main/java/com/hobak/happinessql/domain/report/dto/SummaryHappinessResponseDto.java similarity index 80% rename from src/main/java/com/hobak/happinessql/domain/report/dto/ReportSummaryResponseDto.java rename to src/main/java/com/hobak/happinessql/domain/report/dto/SummaryHappinessResponseDto.java index b4015ed..e6a8009 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/dto/ReportSummaryResponseDto.java +++ b/src/main/java/com/hobak/happinessql/domain/report/dto/SummaryHappinessResponseDto.java @@ -10,7 +10,7 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class ReportSummaryResponseDto { +public class SummaryHappinessResponseDto { @JsonProperty("time_of_day") private TimeOfDay timeOfDay; @@ -20,7 +20,7 @@ public class ReportSummaryResponseDto { private String activity; @Builder - public ReportSummaryResponseDto(TimeOfDay timeOfDay, String location, String activity) { + public SummaryHappinessResponseDto(TimeOfDay timeOfDay, String location, String activity) { this.timeOfDay = timeOfDay; this.location = location; this.activity = activity; From b4fc4a63ef141f09486027616d77b3c101a2c6cb Mon Sep 17 00:00:00 2001 From: yel-m Date: Thu, 30 May 2024 18:27:50 +0900 Subject: [PATCH 2/8] =?UTF-8?q?refactor=20:=20emoji=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=B4=EC=84=9C=20@Getter=20=EC=95=A0?= =?UTF-8?q?=EB=84=88=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happinessql/domain/report/domain/HappinessLevel.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hobak/happinessql/domain/report/domain/HappinessLevel.java b/src/main/java/com/hobak/happinessql/domain/report/domain/HappinessLevel.java index 1e5207f..55c15ef 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/domain/HappinessLevel.java +++ b/src/main/java/com/hobak/happinessql/domain/report/domain/HappinessLevel.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonValue; import lombok.AllArgsConstructor; +import lombok.Getter; @AllArgsConstructor public enum HappinessLevel { @@ -11,6 +12,8 @@ public enum HappinessLevel { HIGH("λ†’μŒ", "πŸ™‚"), VERY_HIGH("맀우 λ†’μŒ", "πŸ˜„"); private final String viewName; + + @Getter private final String emoji; public static HappinessLevel of(double happiness) { if (happiness >= 1 && happiness < 2) { @@ -29,8 +32,5 @@ public static HappinessLevel of(double happiness) { public String getViewName() { return viewName; } - public String getEmoji() { - return emoji; - } } From 49a0a37b3c8de4b1d0dcdde9f6b3dd06cca4b4fd Mon Sep 17 00:00:00 2001 From: yel-m Date: Thu, 30 May 2024 22:52:16 +0900 Subject: [PATCH 3/8] =?UTF-8?q?feat=20:=20=EC=97=B0=EB=A0=B9=EB=8C=80(AgeG?= =?UTF-8?q?roup)=20enum=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/report/domain/AgeGroup.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/com/hobak/happinessql/domain/report/domain/AgeGroup.java diff --git a/src/main/java/com/hobak/happinessql/domain/report/domain/AgeGroup.java b/src/main/java/com/hobak/happinessql/domain/report/domain/AgeGroup.java new file mode 100644 index 0000000..8491ba7 --- /dev/null +++ b/src/main/java/com/hobak/happinessql/domain/report/domain/AgeGroup.java @@ -0,0 +1,35 @@ +package com.hobak.happinessql.domain.report.domain; + +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public enum AgeGroup { + TEENS("10λŒ€", 10, 19), + TWENTIES("20λŒ€", 20, 29), + THIRTIES("30λŒ€", 30, 39), + FORTIES("40λŒ€", 40, 49), + FIFTIES("50λŒ€", 50, 59), + SIXTIES("60λŒ€ 이상", 60, 110); + + private final String viewName; + private final int minAge; + private final int maxAge; + + public static AgeGroup from(String value) { + for (AgeGroup ageGroup : values()) { + if (ageGroup.getViewName().equals(value)) { + return ageGroup; + } + } + throw new IllegalArgumentException("Invalid format: " + value + ". Please use formats one of the following formats: '20λŒ€', '30λŒ€', ..., '60λŒ€ 이상'"); + } + + @JsonValue + public String getViewName() { + return viewName; + } + +} From abc56766ec9eadebcaeaf3d6356db4986208ff1e Mon Sep 17 00:00:00 2001 From: yel-m Date: Thu, 30 May 2024 22:53:14 +0900 Subject: [PATCH 4/8] =?UTF-8?q?feat=20:=20enum=20converter=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/converter/AgeGroupConverter.java | 11 +++++++++++ .../domain/user/converter/GenderConverter.java | 11 +++++++++++ .../happinessql/global/config/web/WebConfig.java | 16 ++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 src/main/java/com/hobak/happinessql/domain/report/converter/AgeGroupConverter.java create mode 100644 src/main/java/com/hobak/happinessql/domain/user/converter/GenderConverter.java create mode 100644 src/main/java/com/hobak/happinessql/global/config/web/WebConfig.java diff --git a/src/main/java/com/hobak/happinessql/domain/report/converter/AgeGroupConverter.java b/src/main/java/com/hobak/happinessql/domain/report/converter/AgeGroupConverter.java new file mode 100644 index 0000000..aeb5097 --- /dev/null +++ b/src/main/java/com/hobak/happinessql/domain/report/converter/AgeGroupConverter.java @@ -0,0 +1,11 @@ +package com.hobak.happinessql.domain.report.converter; + +import com.hobak.happinessql.domain.report.domain.AgeGroup; +import org.springframework.core.convert.converter.Converter; + +public class AgeGroupConverter implements Converter { + @Override + public AgeGroup convert(String source) { + return AgeGroup.from(source.toUpperCase()); + } +} \ No newline at end of file diff --git a/src/main/java/com/hobak/happinessql/domain/user/converter/GenderConverter.java b/src/main/java/com/hobak/happinessql/domain/user/converter/GenderConverter.java new file mode 100644 index 0000000..4d6b5d8 --- /dev/null +++ b/src/main/java/com/hobak/happinessql/domain/user/converter/GenderConverter.java @@ -0,0 +1,11 @@ +package com.hobak.happinessql.domain.user.converter; + +import com.hobak.happinessql.domain.user.domain.Gender; +import org.springframework.core.convert.converter.Converter; + +public class GenderConverter implements Converter { + @Override + public Gender convert(String source) { + return Gender.from(source.toUpperCase()); + } +} \ No newline at end of file diff --git a/src/main/java/com/hobak/happinessql/global/config/web/WebConfig.java b/src/main/java/com/hobak/happinessql/global/config/web/WebConfig.java new file mode 100644 index 0000000..0f776e0 --- /dev/null +++ b/src/main/java/com/hobak/happinessql/global/config/web/WebConfig.java @@ -0,0 +1,16 @@ +package com.hobak.happinessql.global.config.web; + +import com.hobak.happinessql.domain.report.converter.AgeGroupConverter; +import com.hobak.happinessql.domain.user.converter.GenderConverter; +import org.springframework.context.annotation.Configuration; +import org.springframework.format.FormatterRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + @Override + public void addFormatters(FormatterRegistry registry) { + registry.addConverter(new GenderConverter()); + registry.addConverter(new AgeGroupConverter()); + } +} \ No newline at end of file From d7855b9c694e8354213bfe2233e9d422286eb87c Mon Sep 17 00:00:00 2001 From: yel-m Date: Thu, 30 May 2024 22:53:47 +0900 Subject: [PATCH 5/8] =?UTF-8?q?fix=20:=20Gender=EC=97=90=20=EC=9E=98?= =?UTF-8?q?=EB=AA=BB=EB=90=9C=20=EA=B0=92=EC=9D=B4=20=EB=93=A4=EC=96=B4?= =?UTF-8?q?=EC=99=94=EC=9D=84=20=EA=B2=BD=EC=9A=B0=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hobak/happinessql/domain/user/domain/Gender.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/hobak/happinessql/domain/user/domain/Gender.java b/src/main/java/com/hobak/happinessql/domain/user/domain/Gender.java index fd96bb3..99b2556 100644 --- a/src/main/java/com/hobak/happinessql/domain/user/domain/Gender.java +++ b/src/main/java/com/hobak/happinessql/domain/user/domain/Gender.java @@ -1,6 +1,5 @@ package com.hobak.happinessql.domain.user.domain; -import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import lombok.AllArgsConstructor; @@ -13,14 +12,13 @@ public enum Gender { private final String viewName; - @JsonCreator public static Gender from(String value) { for (Gender status : Gender.values()) { if (status.getViewName().equals(value)) { return status; } } - return null; + throw new IllegalArgumentException("Invalid format: " + value + ". Please use formats one of the following formats: 'μ—¬μ„±', '남성', '선택 μ•ˆν•¨'"); } @JsonValue From 63b61958f4248b33abede5a89a61bcd9bdf0cfca Mon Sep 17 00:00:00 2001 From: yel-m Date: Fri, 31 May 2024 02:08:54 +0900 Subject: [PATCH 6/8] =?UTF-8?q?feat=20:=20=ED=99=9C=EB=8F=99=20=EC=B6=94?= =?UTF-8?q?=EC=B2=9C=20API=20=EA=B5=AC=EC=B6=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/report/api/TrendController.java | 19 ++++++++ .../TimeOfDayHappinessAnalyzer.java | 8 ++-- .../application/TrendSummaryService.java | 47 +++++++++++++++++++ 3 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hobak/happinessql/domain/report/application/TrendSummaryService.java diff --git a/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java b/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java index 374dc25..423eff8 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java +++ b/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java @@ -3,19 +3,26 @@ import com.hobak.happinessql.domain.report.application.AverageHappinessService; import com.hobak.happinessql.domain.report.application.TrendPopularActivityService; import com.hobak.happinessql.domain.report.application.TrendRecommendService; +import com.hobak.happinessql.domain.report.application.TrendSummaryService; +import com.hobak.happinessql.domain.report.domain.AgeGroup; import com.hobak.happinessql.domain.report.dto.AverageHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.SummaryHappinessResponseDto; import com.hobak.happinessql.domain.report.dto.TrendPopularActivitiyResponseDto; import com.hobak.happinessql.domain.report.dto.TrendRecommendActivityResponseDto; import com.hobak.happinessql.domain.user.application.UserFindService; +import com.hobak.happinessql.domain.user.domain.Gender; import com.hobak.happinessql.domain.user.domain.User; import com.hobak.happinessql.global.response.DataResponseDto; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -29,6 +36,7 @@ public class TrendController { private final AverageHappinessService averageHappinessService; private final TrendPopularActivityService trendPopularActivityService; private final TrendRecommendService trendRecommendService; + private final TrendSummaryService trendSummaryService; @Operation(summary = "λŒ€ν•œλ―Όκ΅­ 평균 ν–‰λ³΅μ§€μˆ˜", description = "전체 μœ μ €μ˜ 평균 ν–‰λ³΅μ§€μˆ˜μ™€ 그에 λ”°λ₯Έ μˆ˜μ€€μ„ νŒλ‹¨ν•©λ‹ˆλ‹€.") @GetMapping("/happiness") @@ -50,4 +58,15 @@ public DataResponseDto> getRecommendedAc List responseDto = trendRecommendService.getRecommendActivities(user); return DataResponseDto.of(responseDto, "였늘의 인기 ν™œλ™μ„ μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } + + @Operation(summary = "μ—°λ ΉλŒ€μ™€ λ‚˜μ΄μ— λ”°λ₯Έ 행볡 μ’…ν•© 리포트", description = "μ—°λ ΉλŒ€μ™€ λ‚˜μ΄λ₯Ό 쿼리 νŒŒλΌλ―Έν„°λ‘œ λ°›μ•„ 그에 ν•΄λ‹Ήν•˜λŠ” 행볡 μ’…ν•© 리포트λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. λ§Œμ•½ 데이터가 없을 경우 data에 '아직은 데이터가 μ—†μŠ΅λ‹ˆλ‹€.' λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.", + parameters = {@Parameter(name="ageGroup", description = "μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ 전체 μ—°λ ΉμœΌλ‘œ μžλ™ μ„€μ •λ©λ‹ˆλ‹€."), + @Parameter(name="gender", description = "genderλ₯Ό μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μ „μ²΄λ‘œ μžλ™ μ„€μ •λ©λ‹ˆλ‹€.") + }) + @GetMapping("/summary") + public DataResponseDto getSummary(@RequestParam(required = false) AgeGroup ageGroup, @RequestParam(required = false) Gender gender) { + SummaryHappinessResponseDto responseDto = trendSummaryService.getSummary(ageGroup, gender); + if(responseDto == null) return DataResponseDto.of("아직은 데이터가 μ—†μ–΄μš”.", "행볡 νŠΈλ Œλ“œμ˜ 행볡 μ’…ν•© 리포트λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); + return DataResponseDto.of(responseDto, "행볡 νŠΈλ Œλ“œμ˜ 행볡 μ’…ν•© 리포트λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); + } } diff --git a/src/main/java/com/hobak/happinessql/domain/report/application/TimeOfDayHappinessAnalyzer.java b/src/main/java/com/hobak/happinessql/domain/report/application/TimeOfDayHappinessAnalyzer.java index d3149ce..9b47d1f 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/application/TimeOfDayHappinessAnalyzer.java +++ b/src/main/java/com/hobak/happinessql/domain/report/application/TimeOfDayHappinessAnalyzer.java @@ -3,7 +3,7 @@ import com.hobak.happinessql.domain.record.domain.Record; import com.hobak.happinessql.domain.report.converter.ReportConverter; import com.hobak.happinessql.domain.report.domain.TimeOfDay; -import com.hobak.happinessql.domain.report.dto.TimeOfDayHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.TimeOfDayRankingResponseDto; import java.util.*; import java.util.stream.Collectors; @@ -39,8 +39,8 @@ public static TimeOfDay getHappiestTimeOfDay(List records) { } } - public static List getTimeOfDayRankings(List records) { - List timeOfDayRankings = new ArrayList<>(); + public static List getTimeOfDayRankings(List records) { + List timeOfDayRankings = new ArrayList<>(); // μ‹œκ°„λŒ€λ³„ 평균 행볡도와 λΉˆλ„ 계산 Map> timeOfDayRecordsMap = groupRecordsByTimeOfDay(records); @@ -53,7 +53,7 @@ public static List getTimeOfDayRankings(List records = getFilteredRecords(ageGroup, gender); + return (!records.isEmpty()) ? generateTrendSummary(records) : null; + } + + public List getFilteredRecords(AgeGroup ageGroup, Gender gender) { + if (ageGroup == null && gender == null) { + return recordRepository.findAll(); + } else if (ageGroup == null) { + return recordRepository.findByUserGender(gender); + } else if (gender == null) { + return recordRepository.findByUserAgeBetween(ageGroup.getMinAge(), ageGroup.getMaxAge()); + } else { + return recordRepository.findByUserAgeBetweenAndUserGender(ageGroup.getMinAge(), ageGroup.getMaxAge(), gender); + } + } + + private SummaryHappinessResponseDto generateTrendSummary(List records) { + String location = LocationHappinessAnalyzer.getHappiestLocation(records); + TimeOfDay timeOfDay = TimeOfDayHappinessAnalyzer.getHappiestTimeOfDay(records); + String activity = ActivityHappinessAnalyzer.getHappiestActivity(records); + + return ReportConverter.toSummaryHappinessResponseDto(timeOfDay, location, activity); + } + +} From f1c7e2d53c9843210e830dacf75dfa58f9ad48f3 Mon Sep 17 00:00:00 2001 From: yel-m Date: Fri, 31 May 2024 02:38:41 +0900 Subject: [PATCH 7/8] =?UTF-8?q?feat=20:=20=EC=97=B0=EB=A0=B9=EB=8C=80?= =?UTF-8?q?=EC=99=80=20=EC=84=B1=EB=B3=84=20=ED=95=84=ED=84=B0=EB=A7=81=20?= =?UTF-8?q?JPA=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/record/repository/RecordRepository.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/hobak/happinessql/domain/record/repository/RecordRepository.java b/src/main/java/com/hobak/happinessql/domain/record/repository/RecordRepository.java index fbf2887..2af6957 100644 --- a/src/main/java/com/hobak/happinessql/domain/record/repository/RecordRepository.java +++ b/src/main/java/com/hobak/happinessql/domain/record/repository/RecordRepository.java @@ -1,6 +1,7 @@ package com.hobak.happinessql.domain.record.repository; import com.hobak.happinessql.domain.record.domain.Record; +import com.hobak.happinessql.domain.user.domain.Gender; import com.hobak.happinessql.domain.user.domain.User; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -24,4 +25,9 @@ public interface RecordRepository extends JpaRepository { @Query("SELECT r FROM Record r WHERE r.user.userId != :userId") List findAllExceptUser(@Param("userId") Long userId); + List findByUserGender(Gender gender); + + List findByUserAgeBetween(int minAge, int maxAge); + + List findByUserAgeBetweenAndUserGender(int minAge, int maxAge, Gender gender); } From 6ff917b0156a3058d2e55cdb8667dedde28c6962 Mon Sep 17 00:00:00 2001 From: yel-m Date: Fri, 31 May 2024 02:39:44 +0900 Subject: [PATCH 8/8] =?UTF-8?q?refactor=20:=20=ED=96=89=EB=B3=B5=EC=A7=80?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=ED=8F=AC=ED=95=A8=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20DTO=20=EC=9D=B4=EB=A6=84=20=EC=9A=A9?= =?UTF-8?q?=EB=8F=84=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/report/api/ReportController.java | 72 +++++++++---------- .../domain/report/api/TrendController.java | 5 +- .../ActivityHappinessAnalyzer.java | 16 ++--- .../LocationHappinessAnalyzer.java | 16 ++--- .../ReportActivityRankingService.java | 14 ++-- .../ReportLocationRankingService.java | 14 ++-- .../application/ReportSummaryService.java | 12 ++-- .../ReportTimeOfPeriodRankingService.java | 8 +-- .../application/TrendSummaryService.java | 8 +-- .../report/converter/ReportConverter.java | 18 ++--- ...o.java => ActivityRankingResponseDto.java} | 4 +- ...o.java => LocationRankingResponseDto.java} | 4 +- ...sponseDto.java => SummaryResponseDto.java} | 4 +- ....java => TimeOfDayRankingResponseDto.java} | 4 +- 14 files changed, 100 insertions(+), 99 deletions(-) rename src/main/java/com/hobak/happinessql/domain/report/dto/{ActivityHappinessResponseDto.java => ActivityRankingResponseDto.java} (76%) rename src/main/java/com/hobak/happinessql/domain/report/dto/{LocationHappinessResponseDto.java => LocationRankingResponseDto.java} (69%) rename src/main/java/com/hobak/happinessql/domain/report/dto/{SummaryHappinessResponseDto.java => SummaryResponseDto.java} (80%) rename src/main/java/com/hobak/happinessql/domain/report/dto/{TimeOfDayHappinessResponseDto.java => TimeOfDayRankingResponseDto.java} (80%) diff --git a/src/main/java/com/hobak/happinessql/domain/report/api/ReportController.java b/src/main/java/com/hobak/happinessql/domain/report/api/ReportController.java index 73713a3..bf44b02 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/api/ReportController.java +++ b/src/main/java/com/hobak/happinessql/domain/report/api/ReportController.java @@ -32,73 +32,73 @@ public class ReportController { private final AverageHappinessService averageHappinessService; @Operation(summary = "[전체] 행볡 μ’…ν•© 리포트", description = "전체 κΈ°κ°„μ—μ„œ μ–Έμ œ, μ–΄λ””μ—μ„œ, 무엇을 ν•  λ•Œ ν–‰λ³΅ν–ˆλŠ”μ§€μ— λŒ€ν•œ 쒅합적인 리포트λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/all/summary") - public DataResponseDto getAllSummary(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto getAllSummary(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - ReportSummaryResponseDto responseDto = reportSummaryService.getAllSummary(user); + SummaryResponseDto responseDto = reportSummaryService.getAllSummary(user); return DataResponseDto.of(responseDto, "행볡 μ’…ν•© 리포트(전체)λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ—°κ°„] 행볡 μ’…ν•© 리포트", description = "이번 ν•΄ μ–Έμ œ, μ–΄λ””μ—μ„œ, 무엇을 ν•  λ•Œ ν–‰λ³΅ν–ˆλŠ”μ§€μ— λŒ€ν•œ 쒅합적인 리포트λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/year/summary") - public DataResponseDto getAnnualSummary(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto getAnnualSummary(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - ReportSummaryResponseDto responseDto = reportSummaryService.getAnnualSummary(user); + SummaryResponseDto responseDto = reportSummaryService.getAnnualSummary(user); return DataResponseDto.of(responseDto, "행볡 μ’…ν•© 리포트(μ—°κ°„)λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ›”κ°„] 행볡 μ’…ν•© 리포트", description = "이번 달 μ–Έμ œ, μ–΄λ””μ—μ„œ, 무엇을 ν•  λ•Œ ν–‰λ³΅ν–ˆλŠ”μ§€μ— λŒ€ν•œ 쒅합적인 리포트λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/month/summary") - public DataResponseDto getMonthlySummary(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto getMonthlySummary(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - ReportSummaryResponseDto responseDto = reportSummaryService.getMonthlySummary(user); + SummaryResponseDto responseDto = reportSummaryService.getMonthlySummary(user); return DataResponseDto.of(responseDto, "행볡 μ’…ν•© 리포트(μ›”κ°„)λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[전체] 행볡도가 높은 Top 3 ν™œλ™", description = "전체 κΈ°λ‘μ—μ„œ κ°€μž₯ 행볡도가 높은 Top 3 ν™œλ™μ„ μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/all/top-activities") - public DataResponseDto> getTop3AllHappiestActivities(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getTop3AllHappiestActivities(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportActivityRankingService.getTop3AllHappiestActivities(user); + List responseDto = reportActivityRankingService.getTop3AllHappiestActivities(user); return DataResponseDto.of(responseDto, "행볡도가 높은 Top 3 ν™œλ™(전체)을 μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ—°κ°„] 행볡도가 높은 Top 3 ν™œλ™", description = "이번 ν•΄ κ°€μž₯ 행볡도가 높은 Top 3 ν™œλ™μ„ μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/year/top-activities") - public DataResponseDto> getTop3AnnualHappiestActivities(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getTop3AnnualHappiestActivities(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportActivityRankingService.getTop3AnnualHappiestActivities(user); + List responseDto = reportActivityRankingService.getTop3AnnualHappiestActivities(user); return DataResponseDto.of(responseDto, "행볡도가 높은 Top 3 ν™œλ™(μ—°κ°„)을 μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ›”κ°„] 행볡도가 높은 Top 3 ν™œλ™", description = "이번 ν•΄ κ°€μž₯ 행볡도가 높은 Top 3 ν™œλ™μ„ μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/month/top-activities") - public DataResponseDto> getTop3MonthlyHappiestActivities(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getTop3MonthlyHappiestActivities(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportActivityRankingService.getTop3MonthlyHappiestActivities(user); + List responseDto = reportActivityRankingService.getTop3MonthlyHappiestActivities(user); return DataResponseDto.of(responseDto, "행볡도가 높은 Top 3 ν™œλ™(μ›”κ°„)을 μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[전체] 행볡도가 높은 Top 3 μœ„μΉ˜", description = "전체 κΈ°λ‘μ—μ„œ κ°€μž₯ 행볡도가 높은 Top 3 μœ„μΉ˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/all/top-locations") - public DataResponseDto> getTop3AllHappiestLocations(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getTop3AllHappiestLocations(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportLocationRankingService.getTop3AllHappiestLocations(user); + List responseDto = reportLocationRankingService.getTop3AllHappiestLocations(user); return DataResponseDto.of(responseDto, "행볡도가 높은 Top 3 μœ„μΉ˜(전체)λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ—°κ°„] 행볡도가 높은 Top 3 μœ„μΉ˜", description = "이번 ν•΄ κ°€μž₯ 행볡도가 높은 Top 3 μœ„μΉ˜λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/year/top-locations") - public DataResponseDto> getTop3AnnualHappiestLocations(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getTop3AnnualHappiestLocations(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportLocationRankingService.getTop3AnnualHappiestLocations(user); + List responseDto = reportLocationRankingService.getTop3AnnualHappiestLocations(user); return DataResponseDto.of(responseDto, "행볡도가 높은 Top 3 μœ„μΉ˜(μ—°κ°„)λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ›”κ°„] 행볡도가 높은 Top 3 μœ„μΉ˜", description = "이번 ν•΄ κ°€μž₯ 행볡도가 높은 Top 3 μœ„μΉ˜λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/month/top-locations") - public DataResponseDto> getTop3MonthlyHappiestLocations(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getTop3MonthlyHappiestLocations(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportLocationRankingService.getTop3MonthlyHappiestLocations(user); + List responseDto = reportLocationRankingService.getTop3MonthlyHappiestLocations(user); return DataResponseDto.of(responseDto, "행볡도가 높은 Top 3 μœ„μΉ˜(μ›”κ°„)λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ—°κ°„] 행볡 κ·Έλž˜ν”„", description = "μ—°κ°„ ν–‰λ³΅μ§€μˆ˜ κ·Έλž˜ν”„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @@ -118,73 +118,73 @@ public DataResponseDto getMonthlyGraph(@AuthenticationPr @Operation(summary = "[전체] λͺ¨λ“  ν™œλ™μ˜ 행볡도 μˆœμœ„", description = "전체 κΈ°λ‘μ—μ„œ λͺ¨λ“  ν™œλ™μ˜ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/all/ranking/activities") - public DataResponseDto> getAllActivityRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getAllActivityRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportActivityRankingService.getAllActivityRankings(user); + List responseDto = reportActivityRankingService.getAllActivityRankings(user); return DataResponseDto.of(responseDto, "전체 ν™œλ™ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ—°κ°„] λͺ¨λ“  ν™œλ™μ˜ 행볡도 μˆœμœ„", description = "이번 ν•΄ λͺ¨λ“  ν™œλ™μ˜ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/year/ranking/activities") - public DataResponseDto> getYearlyActivityRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getYearlyActivityRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportActivityRankingService.getYearlyActivityRankings(user); + List responseDto = reportActivityRankingService.getYearlyActivityRankings(user); return DataResponseDto.of(responseDto, "μ—°κ°„ ν™œλ™ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ›”κ°„] λͺ¨λ“  ν™œλ™μ˜ 행볡도 μˆœμœ„", description = "이번 달 λͺ¨λ“  ν™œλ™μ˜ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/month/ranking/activities") - public DataResponseDto> getMonthlyActivityRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getMonthlyActivityRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportActivityRankingService.getMonthlyActivityRankings(user); + List responseDto = reportActivityRankingService.getMonthlyActivityRankings(user); return DataResponseDto.of(responseDto, "μ›”κ°„ ν™œλ™ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[전체] λͺ¨λ“  μœ„μΉ˜μ˜ 행볡도 μˆœμœ„", description = "전체 κΈ°λ‘μ—μ„œ λͺ¨λ“  μœ„μΉ˜μ˜ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/all/ranking/locations") - public DataResponseDto> getAllLocationRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getAllLocationRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportLocationRankingService.getAllLocationRankings(user); + List responseDto = reportLocationRankingService.getAllLocationRankings(user); return DataResponseDto.of(responseDto, "전체 μœ„μΉ˜ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ—°κ°„] λͺ¨λ“  μœ„μΉ˜μ˜ 행볡도 μˆœμœ„", description = "이번 ν•΄ λͺ¨λ“  μœ„μΉ˜μ˜ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/year/ranking/locations") - public DataResponseDto> getYearlyLocationRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getYearlyLocationRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportLocationRankingService.getYearlyLocationRankings(user); + List responseDto = reportLocationRankingService.getYearlyLocationRankings(user); return DataResponseDto.of(responseDto, "μ—°κ°„ μœ„μΉ˜ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ›”κ°„] λͺ¨λ“  μœ„μΉ˜μ˜ 행볡도 μˆœμœ„", description = "이번 달 λͺ¨λ“  μœ„μΉ˜μ˜ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/month/ranking/locations") - public DataResponseDto> getMonthlyLocationRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getMonthlyLocationRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportLocationRankingService.getMonthlyLocationRankings(user); + List responseDto = reportLocationRankingService.getMonthlyLocationRankings(user); return DataResponseDto.of(responseDto, "μ›”κ°„ μœ„μΉ˜ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[전체] μ‹œκ°„λŒ€ 행볡도 μˆœμœ„", description = "전체 κΈ°λ‘μ—μ„œ μ‹œκ°„λŒ€ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/all/ranking/time") - public DataResponseDto> getAllTimeOfDayRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getAllTimeOfDayRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportTimeOfPeriodRankingService.getAllTimeOfDayRankings(user); + List responseDto = reportTimeOfPeriodRankingService.getAllTimeOfDayRankings(user); return DataResponseDto.of(responseDto, "전체 μ‹œκ°„λŒ€ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ—°κ°„] μ‹œκ°„λŒ€ 행볡도 μˆœμœ„", description = "이번 ν•΄ μ‹œκ°„λŒ€ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/year/ranking/time") - public DataResponseDto> getYearlyTimeOfDayRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getYearlyTimeOfDayRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportTimeOfPeriodRankingService.getYearlyTimeOfDayRankings(user); + List responseDto = reportTimeOfPeriodRankingService.getYearlyTimeOfDayRankings(user); return DataResponseDto.of(responseDto, "μ—°κ°„ μ‹œκ°„λŒ€ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[μ›”κ°„] μ‹œκ°„λŒ€ 행볡도 μˆœμœ„", description = "이번 달 μ‹œκ°„λŒ€ 행볡도 μˆœμœ„λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.") @GetMapping("/month/ranking/time") - public DataResponseDto> getMonthlyTimeOfDayRankings(@AuthenticationPrincipal UserDetails userDetails) { + public DataResponseDto> getMonthlyTimeOfDayRankings(@AuthenticationPrincipal UserDetails userDetails) { User user = userFindService.findByUserDetails(userDetails); - List responseDto = reportTimeOfPeriodRankingService.getMonthlyTimeOfDayRankings(user); + List responseDto = reportTimeOfPeriodRankingService.getMonthlyTimeOfDayRankings(user); return DataResponseDto.of(responseDto, "μ›”κ°„ μ‹œκ°„λŒ€ 행볡도 μˆœμœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } @Operation(summary = "[전체] 평균 ν–‰λ³΅μ§€μˆ˜", description = "μœ μ € 개인의 전체기간 평균 ν–‰λ³΅μ§€μˆ˜μ™€ 그에 λ”°λ₯Έ μˆ˜μ€€μ„ νŒλ‹¨ν•©λ‹ˆλ‹€.") diff --git a/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java b/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java index f029abe..5354e47 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java +++ b/src/main/java/com/hobak/happinessql/domain/report/api/TrendController.java @@ -6,7 +6,7 @@ import com.hobak.happinessql.domain.report.application.TrendSummaryService; import com.hobak.happinessql.domain.report.domain.AgeGroup; import com.hobak.happinessql.domain.report.dto.AverageHappinessResponseDto; -import com.hobak.happinessql.domain.report.dto.SummaryHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.SummaryResponseDto; import com.hobak.happinessql.domain.report.dto.TrendPopularActivitiyResponseDto; import com.hobak.happinessql.domain.report.dto.TrendRecommendActivityResponseDto; import com.hobak.happinessql.domain.user.application.UserFindService; @@ -15,7 +15,6 @@ import com.hobak.happinessql.global.response.DataResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -65,7 +64,7 @@ public DataResponseDto> getRecommendedAc }) @GetMapping("/summary") public DataResponseDto getSummary(@RequestParam(required = false) AgeGroup ageGroup, @RequestParam(required = false) Gender gender) { - SummaryHappinessResponseDto responseDto = trendSummaryService.getSummary(ageGroup, gender); + SummaryResponseDto responseDto = trendSummaryService.getSummary(ageGroup, gender); if(responseDto == null) return DataResponseDto.of("아직은 데이터가 μ—†μ–΄μš”.", "행볡 νŠΈλ Œλ“œμ˜ 행볡 μ’…ν•© 리포트λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); return DataResponseDto.of(responseDto, "행볡 νŠΈλ Œλ“œμ˜ 행볡 μ’…ν•© 리포트λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€."); } diff --git a/src/main/java/com/hobak/happinessql/domain/report/application/ActivityHappinessAnalyzer.java b/src/main/java/com/hobak/happinessql/domain/report/application/ActivityHappinessAnalyzer.java index e567447..9450803 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/application/ActivityHappinessAnalyzer.java +++ b/src/main/java/com/hobak/happinessql/domain/report/application/ActivityHappinessAnalyzer.java @@ -3,7 +3,7 @@ import com.hobak.happinessql.domain.record.domain.Record; import com.hobak.happinessql.domain.report.converter.ReportConverter; import com.hobak.happinessql.domain.report.converter.TrendConverter; -import com.hobak.happinessql.domain.report.dto.ActivityHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.ActivityRankingResponseDto; import com.hobak.happinessql.domain.report.dto.TrendRecommendActivityResponseDto; import java.util.*; @@ -40,13 +40,13 @@ public static String getHappiestActivity(List records) { } } - public static List getActivityRankings(List records, int topCount) { - List activityRankings = new ArrayList<>(); + public static List getActivityRankings(List records, int topCount) { + List activityRankings = new ArrayList<>(); if (records == null || records.isEmpty()) { // 데이터가 μ—†λŠ” κ²½μš°μ—λ„ 빈 ActivityHappinessDto 객체λ₯Ό topCount만큼 μΆ”κ°€ for (int i = 0; i < topCount; i++) { - activityRankings.add(ReportConverter.toActivityHappinessResponseDto(i + 1, null, null)); + activityRankings.add(ReportConverter.toActivityRankingResponseDto(i + 1, null, null)); } return activityRankings; } @@ -55,7 +55,7 @@ public static List getActivityRankings(List getActivityRankings(List getActivityRankings(List records) { - List activityRankings = new ArrayList<>(); + public static List getActivityRankings(List records) { + List activityRankings = new ArrayList<>(); // ν™œλ™ κ·Έλ£Ήν™” 및 이λͺ¨μ§€ 맀핑 Map activityEmojiMap = getActivityEmojiMap(records); @@ -81,7 +81,7 @@ public static List getActivityRankings(List records) { } } - public static List getLocationRankings(List records, int topCount) { - List locationRankings = new ArrayList<>(); + public static List getLocationRankings(List records, int topCount) { + List locationRankings = new ArrayList<>(); if (records == null || records.isEmpty()) { // 데이터가 μ—†λŠ” κ²½μš°μ—λ„ 빈 LocationHappinessDto 객체λ₯Ό topCount만큼 μΆ”κ°€ for (int i = 0; i < topCount; i++) { - locationRankings.add(ReportConverter.toLocationHappinessResponseDto(i + 1, null)); + locationRankings.add(ReportConverter.toLocationRankingResponseDto(i + 1, null)); } return locationRankings; } @@ -51,7 +51,7 @@ public static List getLocationRankings(List getLocationRankings(List getLocationRankings(List records) { - List locationRankings = new ArrayList<>(); + public static List getLocationRankings(List records) { + List locationRankings = new ArrayList<>(); // λ„μ‹œμ™€ ꡬλ₯Ό κΈ°μ€€μœΌλ‘œ Record κ·Έλ£Ήν™” Map> locationRecordsMap = groupRecordsByLocation(records); @@ -75,7 +75,7 @@ public static List getLocationRankings(List getTop3AllHappiestActivities(User user) { + public List getTop3AllHappiestActivities(User user) { List records = recordRepository.findAllByUser(user); return ActivityHappinessAnalyzer.getActivityRankings(records, 3); } - public List getTop3AnnualHappiestActivities(User user) { + public List getTop3AnnualHappiestActivities(User user) { int currentYear = LocalDate.now().getYear(); LocalDateTime startOfYear = LocalDateTime.of(currentYear, 1, 1, 0, 0); LocalDateTime endOfYear = LocalDateTime.of(currentYear, 12, 31, 23, 59, 59); @@ -30,7 +30,7 @@ public List getTop3AnnualHappiestActivities(User u return ActivityHappinessAnalyzer.getActivityRankings(records, 3); } - public List getTop3MonthlyHappiestActivities(User user) { + public List getTop3MonthlyHappiestActivities(User user) { LocalDate today = LocalDate.now(); LocalDate startOfMonth = today.withDayOfMonth(1); LocalDate endOfMonth = today.withDayOfMonth(today.lengthOfMonth()); @@ -40,12 +40,12 @@ public List getTop3MonthlyHappiestActivities(User return ActivityHappinessAnalyzer.getActivityRankings(records, 3); } - public List getAllActivityRankings(User user) { + public List getAllActivityRankings(User user) { List records = recordRepository.findAllByUser(user); return ActivityHappinessAnalyzer.getActivityRankings(records); } - public List getYearlyActivityRankings(User user) { + public List getYearlyActivityRankings(User user) { int currentYear = LocalDate.now().getYear(); LocalDateTime startOfYear = LocalDateTime.of(currentYear, 1, 1, 0, 0); LocalDateTime endOfYear = LocalDateTime.of(currentYear, 12, 31, 23, 59, 59); @@ -53,7 +53,7 @@ public List getYearlyActivityRankings(User user) { return ActivityHappinessAnalyzer.getActivityRankings(records); } - public List getMonthlyActivityRankings(User user) { + public List getMonthlyActivityRankings(User user) { LocalDate today = LocalDate.now(); LocalDate startOfMonth = LocalDate.now().withDayOfMonth(1); LocalDate endOfMonth = LocalDate.now().withDayOfMonth(today.lengthOfMonth()); diff --git a/src/main/java/com/hobak/happinessql/domain/report/application/ReportLocationRankingService.java b/src/main/java/com/hobak/happinessql/domain/report/application/ReportLocationRankingService.java index 300cbc8..dd82282 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/application/ReportLocationRankingService.java +++ b/src/main/java/com/hobak/happinessql/domain/report/application/ReportLocationRankingService.java @@ -2,7 +2,7 @@ import com.hobak.happinessql.domain.record.domain.Record; import com.hobak.happinessql.domain.record.repository.RecordRepository; -import com.hobak.happinessql.domain.report.dto.LocationHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.LocationRankingResponseDto; import com.hobak.happinessql.domain.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -16,12 +16,12 @@ public class ReportLocationRankingService { private final RecordRepository recordRepository; - public List getTop3AllHappiestLocations(User user) { + public List getTop3AllHappiestLocations(User user) { List records = recordRepository.findAllByUser(user); return LocationHappinessAnalyzer.getLocationRankings(records, 3); } - public List getTop3AnnualHappiestLocations(User user) { + public List getTop3AnnualHappiestLocations(User user) { int currentYear = LocalDate.now().getYear(); LocalDateTime startOfYear = LocalDateTime.of(currentYear, 1, 1, 0, 0); LocalDateTime endOfYear = LocalDateTime.of(currentYear, 12, 31, 23, 59, 59); @@ -29,7 +29,7 @@ public List getTop3AnnualHappiestLocations(User us return LocationHappinessAnalyzer.getLocationRankings(records, 3); } - public List getTop3MonthlyHappiestLocations(User user) { + public List getTop3MonthlyHappiestLocations(User user) { LocalDate today = LocalDate.now(); LocalDate startOfMonth = today.withDayOfMonth(1); LocalDate endOfMonth = today.withDayOfMonth(today.lengthOfMonth()); @@ -39,12 +39,12 @@ public List getTop3MonthlyHappiestLocations(User u return LocationHappinessAnalyzer.getLocationRankings(records, 3); } - public List getAllLocationRankings(User user) { + public List getAllLocationRankings(User user) { List records = recordRepository.findAllByUser(user); return LocationHappinessAnalyzer.getLocationRankings(records); } - public List getYearlyLocationRankings(User user) { + public List getYearlyLocationRankings(User user) { int currentYear = LocalDate.now().getYear(); LocalDateTime startOfYear = LocalDateTime.of(currentYear, 1, 1, 0, 0); LocalDateTime endOfYear = LocalDateTime.of(currentYear, 12, 31, 23, 59, 59); @@ -52,7 +52,7 @@ public List getYearlyLocationRankings(User user) { return LocationHappinessAnalyzer.getLocationRankings(records); } - public List getMonthlyLocationRankings(User user) { + public List getMonthlyLocationRankings(User user) { LocalDate today = LocalDate.now(); LocalDate startOfMonth = LocalDate.now().withDayOfMonth(1); LocalDate endOfMonth = LocalDate.now().withDayOfMonth(today.lengthOfMonth()); diff --git a/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java b/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java index 5aa35d1..de31357 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java +++ b/src/main/java/com/hobak/happinessql/domain/report/application/ReportSummaryService.java @@ -4,7 +4,7 @@ import com.hobak.happinessql.domain.record.repository.RecordRepository; import com.hobak.happinessql.domain.report.converter.ReportConverter; import com.hobak.happinessql.domain.report.domain.TimeOfDay; -import com.hobak.happinessql.domain.report.dto.SummaryHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.SummaryResponseDto; import com.hobak.happinessql.domain.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -20,12 +20,12 @@ public class ReportSummaryService { private final RecordRepository recordRepository; - public SummaryHappinessResponseDto getAllSummary(User user) { + public SummaryResponseDto getAllSummary(User user) { List records = recordRepository.findAllByUser(user); return generateReportSummary(records); } - public SummaryHappinessResponseDto getAnnualSummary(User user) { + public SummaryResponseDto getAnnualSummary(User user) { int currentYear = LocalDate.now().getYear(); LocalDateTime startOfYear = LocalDateTime.of(currentYear, 1, 1, 0, 0); LocalDateTime endOfYear = LocalDateTime.of(currentYear, 12, 31, 23, 59, 59); @@ -34,7 +34,7 @@ public SummaryHappinessResponseDto getAnnualSummary(User user) { return generateReportSummary(annualRecords); } - public SummaryHappinessResponseDto getMonthlySummary(User user) { + public SummaryResponseDto getMonthlySummary(User user) { LocalDate today = LocalDate.now(); LocalDateTime startOfMonth = today.withDayOfMonth(1).atStartOfDay(); LocalDateTime endOfMonth = today.withDayOfMonth(today.lengthOfMonth()).atTime(23, 59, 59); @@ -43,11 +43,11 @@ public SummaryHappinessResponseDto getMonthlySummary(User user) { return generateReportSummary(monthlyRecords); } - private SummaryHappinessResponseDto generateReportSummary(List records) { + private SummaryResponseDto generateReportSummary(List records) { String location = LocationHappinessAnalyzer.getHappiestLocation(records); TimeOfDay timeOfDay = TimeOfDayHappinessAnalyzer.getHappiestTimeOfDay(records); String activity = ActivityHappinessAnalyzer.getHappiestActivity(records); - return ReportConverter.toSummaryHappinessResponseDto(timeOfDay, location, activity); + return ReportConverter.toSummaryResponseDto(timeOfDay, location, activity); } } diff --git a/src/main/java/com/hobak/happinessql/domain/report/application/ReportTimeOfPeriodRankingService.java b/src/main/java/com/hobak/happinessql/domain/report/application/ReportTimeOfPeriodRankingService.java index ef3b402..973e3dd 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/application/ReportTimeOfPeriodRankingService.java +++ b/src/main/java/com/hobak/happinessql/domain/report/application/ReportTimeOfPeriodRankingService.java @@ -2,7 +2,7 @@ import com.hobak.happinessql.domain.record.domain.Record; import com.hobak.happinessql.domain.record.repository.RecordRepository; -import com.hobak.happinessql.domain.report.dto.TimeOfDayHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.TimeOfDayRankingResponseDto; import com.hobak.happinessql.domain.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -17,12 +17,12 @@ public class ReportTimeOfPeriodRankingService { private final RecordRepository recordRepository; - public List getAllTimeOfDayRankings(User user) { + public List getAllTimeOfDayRankings(User user) { List records = recordRepository.findAllByUser(user); return TimeOfDayHappinessAnalyzer.getTimeOfDayRankings(records); } - public List getYearlyTimeOfDayRankings(User user) { + public List getYearlyTimeOfDayRankings(User user) { int currentYear = LocalDate.now().getYear(); LocalDateTime startOfYear = LocalDateTime.of(currentYear, 1, 1, 0, 0); LocalDateTime endOfYear = LocalDateTime.of(currentYear, 12, 31, 23, 59, 59); @@ -30,7 +30,7 @@ public List getYearlyTimeOfDayRankings(User user) return TimeOfDayHappinessAnalyzer.getTimeOfDayRankings(records); } - public List getMonthlyTimeOfDayRankings(User user) { + public List getMonthlyTimeOfDayRankings(User user) { LocalDate today = LocalDate.now(); LocalDate startOfMonth = today.withDayOfMonth(1); LocalDate endOfMonth = today.withDayOfMonth(today.lengthOfMonth()); diff --git a/src/main/java/com/hobak/happinessql/domain/report/application/TrendSummaryService.java b/src/main/java/com/hobak/happinessql/domain/report/application/TrendSummaryService.java index fc82c7d..1efd4c8 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/application/TrendSummaryService.java +++ b/src/main/java/com/hobak/happinessql/domain/report/application/TrendSummaryService.java @@ -6,7 +6,7 @@ import com.hobak.happinessql.domain.report.converter.ReportConverter; import com.hobak.happinessql.domain.report.domain.AgeGroup; import com.hobak.happinessql.domain.report.domain.TimeOfDay; -import com.hobak.happinessql.domain.report.dto.SummaryHappinessResponseDto; +import com.hobak.happinessql.domain.report.dto.SummaryResponseDto; import com.hobak.happinessql.domain.user.domain.Gender; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -19,7 +19,7 @@ public class TrendSummaryService { private final RecordRepository recordRepository; - public SummaryHappinessResponseDto getSummary(AgeGroup ageGroup, Gender gender) { + public SummaryResponseDto getSummary(AgeGroup ageGroup, Gender gender) { List records = getFilteredRecords(ageGroup, gender); return (!records.isEmpty()) ? generateTrendSummary(records) : null; } @@ -36,12 +36,12 @@ public List getFilteredRecords(AgeGroup ageGroup, Gender gender) { } } - private SummaryHappinessResponseDto generateTrendSummary(List records) { + private SummaryResponseDto generateTrendSummary(List records) { String location = LocationHappinessAnalyzer.getHappiestLocation(records); TimeOfDay timeOfDay = TimeOfDayHappinessAnalyzer.getHappiestTimeOfDay(records); String activity = ActivityHappinessAnalyzer.getHappiestActivity(records); - return ReportConverter.toSummaryHappinessResponseDto(timeOfDay, location, activity); + return ReportConverter.toSummaryResponseDto(timeOfDay, location, activity); } } diff --git a/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java b/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java index bd485a7..f33a336 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java +++ b/src/main/java/com/hobak/happinessql/domain/report/converter/ReportConverter.java @@ -7,36 +7,38 @@ import java.util.ArrayList; public class ReportConverter { - public static SummaryHappinessResponseDto toSummaryHappinessResponseDto(TimeOfDay timeOfDay, String location, String activity) { - return SummaryHappinessResponseDto.builder() + public static SummaryResponseDto toSummaryResponseDto(TimeOfDay timeOfDay, String location, String activity) { + return SummaryResponseDto.builder() .activity(activity) .location(location) .timeOfDay(timeOfDay) .build(); } - public static ActivityHappinessResponseDto toActivityHappinessResponseDto(int ranking, String activity, String emoji) { - return ActivityHappinessResponseDto.builder() + public static ActivityRankingResponseDto toActivityRankingResponseDto(int ranking, String activity, String emoji) { + return ActivityRankingResponseDto.builder() .ranking(ranking) .activity(activity) .emoji(emoji) .build(); } - public static LocationHappinessResponseDto toLocationHappinessResponseDto(int ranking, String location) { - return LocationHappinessResponseDto.builder() + public static LocationRankingResponseDto toLocationRankingResponseDto(int ranking, String location) { + return LocationRankingResponseDto.builder() .ranking(ranking) .location(location) .build(); } + public static ReportGraphResponseDto toReportGraphResponseDto(ArrayList labels, ArrayList happiness){ return ReportGraphResponseDto.builder() .labels(labels) .happiness(happiness) .build(); } - public static TimeOfDayHappinessResponseDto toTimeOfDayHappinessResponseDto(int ranking, TimeOfDay timeOfDay) { - return TimeOfDayHappinessResponseDto.builder() + + public static TimeOfDayRankingResponseDto toTimeOfDayRankingResponseDto(int ranking, TimeOfDay timeOfDay) { + return TimeOfDayRankingResponseDto.builder() .ranking(ranking) .timeOfDay(timeOfDay) .build(); diff --git a/src/main/java/com/hobak/happinessql/domain/report/dto/ActivityHappinessResponseDto.java b/src/main/java/com/hobak/happinessql/domain/report/dto/ActivityRankingResponseDto.java similarity index 76% rename from src/main/java/com/hobak/happinessql/domain/report/dto/ActivityHappinessResponseDto.java rename to src/main/java/com/hobak/happinessql/domain/report/dto/ActivityRankingResponseDto.java index cc3e5bc..ace7929 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/dto/ActivityHappinessResponseDto.java +++ b/src/main/java/com/hobak/happinessql/domain/report/dto/ActivityRankingResponseDto.java @@ -8,14 +8,14 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class ActivityHappinessResponseDto { +public class ActivityRankingResponseDto { private int ranking; private String activity; private String emoji; @Builder - public ActivityHappinessResponseDto(int ranking, String activity, String emoji) { + public ActivityRankingResponseDto(int ranking, String activity, String emoji) { this.ranking = ranking; this.activity = activity; this.emoji = emoji; diff --git a/src/main/java/com/hobak/happinessql/domain/report/dto/LocationHappinessResponseDto.java b/src/main/java/com/hobak/happinessql/domain/report/dto/LocationRankingResponseDto.java similarity index 69% rename from src/main/java/com/hobak/happinessql/domain/report/dto/LocationHappinessResponseDto.java rename to src/main/java/com/hobak/happinessql/domain/report/dto/LocationRankingResponseDto.java index 1047c92..7160f9d 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/dto/LocationHappinessResponseDto.java +++ b/src/main/java/com/hobak/happinessql/domain/report/dto/LocationRankingResponseDto.java @@ -5,12 +5,12 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class LocationHappinessResponseDto { +public class LocationRankingResponseDto { private int ranking; private String location; @Builder - public LocationHappinessResponseDto(int ranking, String location) { + public LocationRankingResponseDto(int ranking, String location) { this.ranking = ranking; this.location = location; } diff --git a/src/main/java/com/hobak/happinessql/domain/report/dto/SummaryHappinessResponseDto.java b/src/main/java/com/hobak/happinessql/domain/report/dto/SummaryResponseDto.java similarity index 80% rename from src/main/java/com/hobak/happinessql/domain/report/dto/SummaryHappinessResponseDto.java rename to src/main/java/com/hobak/happinessql/domain/report/dto/SummaryResponseDto.java index e6a8009..748e829 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/dto/SummaryHappinessResponseDto.java +++ b/src/main/java/com/hobak/happinessql/domain/report/dto/SummaryResponseDto.java @@ -10,7 +10,7 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class SummaryHappinessResponseDto { +public class SummaryResponseDto { @JsonProperty("time_of_day") private TimeOfDay timeOfDay; @@ -20,7 +20,7 @@ public class SummaryHappinessResponseDto { private String activity; @Builder - public SummaryHappinessResponseDto(TimeOfDay timeOfDay, String location, String activity) { + public SummaryResponseDto(TimeOfDay timeOfDay, String location, String activity) { this.timeOfDay = timeOfDay; this.location = location; this.activity = activity; diff --git a/src/main/java/com/hobak/happinessql/domain/report/dto/TimeOfDayHappinessResponseDto.java b/src/main/java/com/hobak/happinessql/domain/report/dto/TimeOfDayRankingResponseDto.java similarity index 80% rename from src/main/java/com/hobak/happinessql/domain/report/dto/TimeOfDayHappinessResponseDto.java rename to src/main/java/com/hobak/happinessql/domain/report/dto/TimeOfDayRankingResponseDto.java index 47c730f..8192e39 100644 --- a/src/main/java/com/hobak/happinessql/domain/report/dto/TimeOfDayHappinessResponseDto.java +++ b/src/main/java/com/hobak/happinessql/domain/report/dto/TimeOfDayRankingResponseDto.java @@ -10,7 +10,7 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class TimeOfDayHappinessResponseDto { +public class TimeOfDayRankingResponseDto { private int ranking; @@ -18,7 +18,7 @@ public class TimeOfDayHappinessResponseDto { private TimeOfDay timeOfDay; @Builder - public TimeOfDayHappinessResponseDto(int ranking, TimeOfDay timeOfDay) { + public TimeOfDayRankingResponseDto(int ranking, TimeOfDay timeOfDay) { this.ranking = ranking; this.timeOfDay = timeOfDay; }