diff --git a/src/main/java/com/aisip/OnO/backend/Dto/User/UserResponseDto.java b/src/main/java/com/aisip/OnO/backend/Dto/User/UserResponseDto.java index 2d95039..fe39176 100644 --- a/src/main/java/com/aisip/OnO/backend/Dto/User/UserResponseDto.java +++ b/src/main/java/com/aisip/OnO/backend/Dto/User/UserResponseDto.java @@ -22,6 +22,8 @@ public class UserResponseDto { @Enumerated(EnumType.STRING) private UserType userType; + private boolean firstLogin; + private LocalDateTime createdAt; private LocalDateTime updatedAt; diff --git a/src/main/java/com/aisip/OnO/backend/converter/UserConverter.java b/src/main/java/com/aisip/OnO/backend/converter/UserConverter.java index 394e003..4243928 100644 --- a/src/main/java/com/aisip/OnO/backend/converter/UserConverter.java +++ b/src/main/java/com/aisip/OnO/backend/converter/UserConverter.java @@ -6,6 +6,10 @@ public class UserConverter { public static UserResponseDto convertToResponseDto(User user) { + return convertToResponseDto(user, false); + } + + public static UserResponseDto convertToResponseDto(User user, boolean firstLogin) { if (user == null) { return null; @@ -17,6 +21,7 @@ public static UserResponseDto convertToResponseDto(User user) { .userEmail(user.getEmail()) .userIdentifier(user.getIdentifier()) .userType(user.getType()) + .firstLogin(firstLogin) .updatedAt(user.getUpdatedAt()) .createdAt(user.getCreatedAt()) .build(); diff --git a/src/main/java/com/aisip/OnO/backend/service/UserServiceImpl.java b/src/main/java/com/aisip/OnO/backend/service/UserServiceImpl.java index d2c0b16..5ba7004 100644 --- a/src/main/java/com/aisip/OnO/backend/service/UserServiceImpl.java +++ b/src/main/java/com/aisip/OnO/backend/service/UserServiceImpl.java @@ -10,6 +10,9 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.time.Duration; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; import java.util.Optional; import java.util.UUID; @@ -32,7 +35,7 @@ public UserResponseDto registerOrLoginUser(String email, String name, String ide user.setIdentifier(identifier); user.setType(userType); User resultUser = userRepository.save(user); - return UserConverter.convertToResponseDto(resultUser); + return UserConverter.convertToResponseDto(resultUser, true); } return UserConverter.convertToResponseDto(optionalUser.get()); @@ -40,9 +43,25 @@ public UserResponseDto registerOrLoginUser(String email, String name, String ide public UserResponseDto getUserById(Long userId) { - User user = userRepository.findById(userId).orElse(null); + Optional optionalUser = userRepository.findById(userId); + + if(optionalUser.isPresent()){ + + User user = optionalUser.get(); + LocalDateTime createdAtDateTime = user.getCreatedAt(); // LocalDateTime으로 변경 + LocalDateTime now = LocalDateTime.now(); + + // 두 시간 간의 차이를 계산하여 1시간 이내인지 확인 + Duration duration = Duration.between(createdAtDateTime, now); - return UserConverter.convertToResponseDto(user); + if (duration.toHours() < 1) { + return UserConverter.convertToResponseDto(user, true); + } + + return UserConverter.convertToResponseDto(user); + } + + return null; } @Override