From 8234a0faef04b90284e73c7fd3ec1221dbdbfeea Mon Sep 17 00:00:00 2001 From: yeonjookang <96986782+yeonjookang@users.noreply.github.com> Date: Mon, 1 Sep 2025 17:20:22 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=9D=91=EB=8B=B5=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ctrlu/domain/todo/application/TodoService.java | 14 +++++++------- .../dto/response/GetRecentUploadTodoResponse.java | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/example/ctrlu/domain/todo/application/TodoService.java b/src/main/java/org/example/ctrlu/domain/todo/application/TodoService.java index ca5b799..41cdc56 100644 --- a/src/main/java/org/example/ctrlu/domain/todo/application/TodoService.java +++ b/src/main/java/org/example/ctrlu/domain/todo/application/TodoService.java @@ -226,6 +226,9 @@ public GetRecentUploadTodoResponse getRecentUploadTodo(long userId, long targetI String redisKey = REDIS_KEY_PREFIX + userId; String seenValue = (String) redisTemplate.opsForHash().get(redisKey, String.valueOf(targetId)); + User target = userRepository.findById(targetId) + .orElseThrow(() -> new UserException(NOT_FOUND_USER)); + //target의 최근 24시간 내 등록된 할 일(오래된 순) 조회 List recentTodos = todoRepository.findAllRecentTodosByUserId( targetId, now().minusHours(24), TodoStatus.GIVEN_UP @@ -246,20 +249,20 @@ targetId, now().minusHours(24), TodoStatus.GIVEN_UP if (latestIndex == -1 || latestIndex == recentTodos.size() - 1){ Todo first = recentTodos.get(0); if (latestIndex == -1) redisTemplate.opsForHash().put(redisKey, String.valueOf(targetId), String.valueOf(first.getId())); - return GetRecentUploadTodoResponse.from(now(), first, null, getNextId(recentTodos, 0), recentTodos.size(), awsS3Service); + return GetRecentUploadTodoResponse.from(now(), target.getProfileImageKey(), first, null, getNextId(recentTodos, 0), recentTodos.size(), awsS3Service); } //유효한 본 이력이고 아직 가장 최신 할 일을 조회하지 않은 경우 else { Todo next = recentTodos.get(latestIndex + 1); redisTemplate.opsForHash().put(redisKey, String.valueOf(targetId), String.valueOf(next.getId())); - return GetRecentUploadTodoResponse.from(now(), next, recentTodos.get(latestIndex).getId(), getNextId(recentTodos, latestIndex + 1), recentTodos.size(), awsS3Service); + return GetRecentUploadTodoResponse.from(now(), target.getProfileImageKey(), next, recentTodos.get(latestIndex).getId(), getNextId(recentTodos, latestIndex + 1), recentTodos.size(), awsS3Service); } } //Redis 에 이 전에 본 이력이 없는 경우 else { Todo first = recentTodos.get(0); redisTemplate.opsForHash().put(redisKey, String.valueOf(targetId), String.valueOf(first.getId())); - return GetRecentUploadTodoResponse.from(now(), first, null, getNextId(recentTodos, 0), recentTodos.size(), awsS3Service); + return GetRecentUploadTodoResponse.from(now(), target.getProfileImageKey(), first, null, getNextId(recentTodos, 0), recentTodos.size(), awsS3Service); } } @@ -274,9 +277,6 @@ targetId, now().minusHours(24), TodoStatus.GIVEN_UP throw new TodoException(TodoErrorCode.NOT_FOUND_TODO); } - User target = userRepository.findById(targetId) - .orElseThrow(() -> new UserException(NOT_FOUND_USER)); - if(!Objects.equals(recentTodos.get(currentIndex).getUser(), target)) { throw new TodoException(NOT_TARGET_TODO); } @@ -289,7 +289,7 @@ targetId, now().minusHours(24), TodoStatus.GIVEN_UP Long prevId = currentIndex > 0 ? recentTodos.get(currentIndex - 1).getId() : null; Long nextId = getNextId(recentTodos, currentIndex); - return GetRecentUploadTodoResponse.from(now(), recentTodos.get(currentIndex), prevId, nextId, recentTodos.size(), awsS3Service); + return GetRecentUploadTodoResponse.from(now(), target.getProfileImageKey() ,recentTodos.get(currentIndex), prevId, nextId, recentTodos.size(), awsS3Service); } private Long getNextId(List todos, int index) { diff --git a/src/main/java/org/example/ctrlu/domain/todo/dto/response/GetRecentUploadTodoResponse.java b/src/main/java/org/example/ctrlu/domain/todo/dto/response/GetRecentUploadTodoResponse.java index 4e97d1f..a2fcf0b 100644 --- a/src/main/java/org/example/ctrlu/domain/todo/dto/response/GetRecentUploadTodoResponse.java +++ b/src/main/java/org/example/ctrlu/domain/todo/dto/response/GetRecentUploadTodoResponse.java @@ -10,6 +10,7 @@ public record GetRecentUploadTodoResponse( String title, + String profileImage, String startImage, String endImage, LocalTime challengeTime, @@ -19,9 +20,10 @@ public record GetRecentUploadTodoResponse( Long prevId, int totalCount ) { - public static GetRecentUploadTodoResponse from(LocalDateTime now, Todo todo, Long prevId, Long nextId, int totalCount, AwsS3Service awsS3Service) { + public static GetRecentUploadTodoResponse from(LocalDateTime now,String profileImage, Todo todo, Long prevId, Long nextId, int totalCount, AwsS3Service awsS3Service) { return new GetRecentUploadTodoResponse( todo.getTitle(), + awsS3Service.generateGetPresignedUrl(profileImage), awsS3Service.generateGetPresignedUrl(todo.getStartImage()), awsS3Service.generateGetPresignedUrl(todo.getEndImage()), todo.getChallengeTime(),