Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#88] 전체, 연간, 월간 행복 리포트 행복지수 그래프 API #97

Merged
merged 1 commit into from
May 27, 2024

Conversation

KkomSang
Copy link
Collaborator

#️⃣ 연관된 이슈

Resolves #88

📝 작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요 (이미지 첨부 가능)

행복 리포트 연간 및 월간 행복지수 그래프 API를 구현했습니다!

  • 연간 행복지수 그래프: 현재 해당하는 년도의 월별 행복지수 평균을 확인할 수 있습니다.
    • 현재 달의 1일을 startDate, 다음 달의 1일을 endDate로 설정한 후, recordRepository.findAllByCreatedAtBetweenAndUser()를 사용하여 startDate부터 endDate 하루 전날까지 유저의 모든 record를 monthlyRecords 리스트에 저장했습니다. 그 후, monthlyRecords의 모든 happiness의 평균을 계산했습니다.
  • 월간 행복지수 그래프: 현재 해당하는 월의 주간별 행복지수 평균을 확인할 수 있습니다.
    • 모든 주간의 시작은 월요일로 현재 달의 1일이 포함된 주의 월요일이 첫째 주의 시작이 됩니다.
      스크린샷 2024-05-27 오후 1 42 02

    • 예를 들어 위와 같다면

      4월 29일 ~ 5월 5일 : 첫째 주

      5월 6일 ~ 5월 12일 : 둘째 주

      5월 13일 ~ 5월 19일 : 셋째 주

      5월 20일 ~ 5월 26일 : 넷째 주

      5월 27일 ~ 6월 2일 : 다섯째 주

      입니다.

    • 1일이 포함된 주의 월요일을 startOfWeek로 설정하고, endOfWeek는 startOfWeek의 7일 후 입니다. recordRepository.findAllByCreatedAtBetweenAndUser()를 이용하여 startOfWeek부터 endOfWeek 하루 전날 까지의 모든 record를 weeklyRecords 리스트에 저장한 후, weeklyRecords의 happiness의 평균을 계산했습니다. 그리고 startOfWeek를 7일 후로 설정하여 둘째 주에 대해서도 동일한 과정을 진행합니다. 이렇게 총 5번의 반복을 통해 첫째 주부터 다섯째 주까지의 주간별 행복지수 평균을 구했습니다.

  • 연간 행복지수 그래프는 /api/report/year/graph로 요청시 다음과 같은 응답을 받을 수 있습니다.
{
  "success": true,
  "code": 0,
  "message": "연간 행복지수 그래프를 성공적으로 조회했습니다.",
  "data": {
    "labels": [
      "1월",
      "2월",
      "3월",
      "4월",
      "5월",
      "6월",
      "7월",
      "8월",
      "9월",
      "10월",
      "11월",
      "12월"
    ],
    "happiness": [
      0,
      0,
      0,
      3,
      4,
      4.666666666666667,
      0,
      0,
      0,
      0,
      0,
      3.5
    ]
  }
}
  • 월간 행복지수 그래프는 /api/report/month/graph로 요청시 다음과 같은 응답을 받을 수 있습니다.
{
  "success": true,
  "code": 0,
  "message": "월간 행복지수 그래프를 성공적으로 조회했습니다.",
  "data": {
    "labels": [
      "첫째 주",
      "둘째 주",
      "셋째 주",
      "넷째 주",
      "다섯째 주"
    ],
    "happiness": [
      4,
      4,
      3.3333333333333335,
      0,
      4.5
    ]
  }
}

스크린샷 (선택)

💬 리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

✅ Check List

  • PR 제목을 커밋 규칙에 맞게 작성했는가?
  • PR에 해당되는 Issue를 연결했는가?
  • 적절한 라벨을 설정했는가?
  • 작업한 사람을 모두 Assign했는가?

@KkomSang KkomSang added the feat 새로운 기능을 추가합니다 label May 27, 2024
@KkomSang KkomSang self-assigned this May 27, 2024
@yel-m yel-m self-requested a review May 27, 2024 05:57
@yel-m
Copy link
Member

yel-m commented May 27, 2024

완죤 깔꼼 그 잡채.... 당신.......... 증말 최고여요

@yel-m yel-m merged commit e0e0e76 into develop May 27, 2024
1 check failed
@yel-m yel-m deleted the feat/#88 branch May 27, 2024 06:01
@yel-m yel-m changed the title [#88] 행복 리포트 행복지수 그래프 API [#88] 전체, 연간, 월간 행복 리포트 행복지수 그래프 API May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 새로운 기능을 추가합니다
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants