From 13ddc73ff86ba3c9c71ab1c717d5ccc1ae17303b Mon Sep 17 00:00:00 2001 From: JeonHaeseung <414catherine@gmail.com> Date: Wed, 3 Jul 2024 17:50:11 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[chore]=20AI=20=EC=B6=94=EC=B2=9C=20?= =?UTF-8?q?=EC=A0=91=EB=91=90=EC=82=AC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Ness/Backend/domain/report/ReportService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/Ness/Backend/domain/report/ReportService.java b/src/main/java/Ness/Backend/domain/report/ReportService.java index 3c973ad..754ca53 100644 --- a/src/main/java/Ness/Backend/domain/report/ReportService.java +++ b/src/main/java/Ness/Backend/domain/report/ReportService.java @@ -54,6 +54,8 @@ public GetReportMemoryListDto getMemory(Long memberId){ if (reportMemory.isEmpty()){ // 오늘치가 없다면 새롭게 생성하기 String memory = postNewAiMemory(memberId, now); + // AI에서 이 접두사를 붙여서 반환하는 경우가 많이 발생함 + memory = memory.replace("AI Recommendation: ", ""); Member memberEntity = memberRepository.findMemberById(memberId); From 24084529cf93b39c3799ba7b92caf558b47b442c Mon Sep 17 00:00:00 2001 From: JeonHaeseung <414catherine@gmail.com> Date: Wed, 3 Jul 2024 19:09:54 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[fix]=20=EC=BD=94=EB=93=9C=20=EC=9C=84?= =?UTF-8?q?=EC=B9=98=EB=A5=BC=20=ED=95=A8=EC=88=98=EB=A1=9C=20=EB=B9=BC?= =?UTF-8?q?=EC=83=88=EC=84=9C=20=EC=88=98=EC=A0=95=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Ness/Backend/domain/report/ReportService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/Ness/Backend/domain/report/ReportService.java b/src/main/java/Ness/Backend/domain/report/ReportService.java index 754ca53..6f5ca36 100644 --- a/src/main/java/Ness/Backend/domain/report/ReportService.java +++ b/src/main/java/Ness/Backend/domain/report/ReportService.java @@ -54,8 +54,6 @@ public GetReportMemoryListDto getMemory(Long memberId){ if (reportMemory.isEmpty()){ // 오늘치가 없다면 새롭게 생성하기 String memory = postNewAiMemory(memberId, now); - // AI에서 이 접두사를 붙여서 반환하는 경우가 많이 발생함 - memory = memory.replace("AI Recommendation: ", ""); Member memberEntity = memberRepository.findMemberById(memberId); @@ -231,6 +229,8 @@ public PostFastApiAiRecommendActivityDto postNewAiRecommend(Long memberId, Zoned } public String parseAiRecommend(String text){ + // AI에서 이 접두사를 붙여서 반환하는 경우가 많이 발생함 + text = text.replace("AI Recommendation: ", ""); return text.replace("\"", ""); } From a5c03be371f85b7af2aac87fb56ff6fb9b14abbf Mon Sep 17 00:00:00 2001 From: JeonHaeseung <414catherine@gmail.com> Date: Sat, 6 Jul 2024 11:13:17 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[feat]=20=EC=A1=B4=EC=9E=AC=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=A9=94=EB=AA=A8=EB=A6=AC?= =?UTF-8?q?=EB=8F=84=20=EB=82=B4=EC=9A=A9=20=EC=B1=84=EC=9B=8C=EC=84=9C=20?= =?UTF-8?q?=EB=B0=98=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Backend/domain/report/ReportService.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/main/java/Ness/Backend/domain/report/ReportService.java b/src/main/java/Ness/Backend/domain/report/ReportService.java index 6f5ca36..3eadd9d 100644 --- a/src/main/java/Ness/Backend/domain/report/ReportService.java +++ b/src/main/java/Ness/Backend/domain/report/ReportService.java @@ -23,9 +23,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.List; +import java.util.stream.Stream; @Service @RequiredArgsConstructor @@ -71,6 +73,36 @@ public GetReportMemoryListDto getMemory(Long memberId){ return createReportMemoryListDto(reportMemories); } + public GetReportMemoryListDto createReportMemoryListDto(List reportMemories) { + ZoneId koreaZoneId = ZoneId.of("Asia/Seoul"); + LocalDate startDate = ZonedDateTime.now(koreaZoneId).toLocalDate().minusDays(13); + + // 주어진 기간 내의 모든 날짜 리스트 생성 + List allDates = Stream.iterate(startDate, date -> date.plusDays(1)) + .limit(14) + .toList(); + + List getReportMemoryDtos = allDates.stream() + .map(date -> { + // 해당 날짜의 ReportMemory 객체를 찾음 (한국 시간대 기준으로 LocalDate 비교) + ReportMemory memory = reportMemories.stream() + .filter(m -> m.getCreatedDate().withZoneSameInstant(koreaZoneId).toLocalDate().equals(date)) + .findFirst() + .orElse(null); + + // ReportMemory 객체가 존재하면 해당 객체를 기반으로 DTO 생성, 없으면 임시 DTO 생성 + return GetReportMemoryDto.builder() + .id(memory != null ? memory.getId() : 0) // 존재하지 않으면 ID는 0 + .createdDate(memory != null ? memory.getCreatedDate().toString() : date.atStartOfDay(koreaZoneId).toString()) // 존재하지 않으면 해당 날짜의 00:00 KST 사용 + .memory(memory != null ? memory.getMemory() : "\uD83C\uDE1A") // 임시 메모리 데이터 + .build(); + }) + .toList(); + + return new GetReportMemoryListDto(getReportMemoryDtos); + } + + /* public GetReportMemoryListDto createReportMemoryListDto(List reportMemories) { //ReportMemoryListResponseDto에 매핑 List getReportMemoryDtos = reportMemories.stream() @@ -83,6 +115,7 @@ public GetReportMemoryListDto createReportMemoryListDto(List repor return new GetReportMemoryListDto(getReportMemoryDtos); } + */ public String postNewAiMemory(Long memberId, ZonedDateTime today){ String persona = getPersona(memberId);