|
|
@@ -14,8 +14,11 @@ import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static java.time.LocalDateTime.now;
|
|
|
|
|
|
@@ -23,6 +26,7 @@ import static java.time.LocalDateTime.now;
|
|
|
@Repository
|
|
|
public class StockRepository {
|
|
|
|
|
|
+ public static final LocalDateTime LAST_FIVE_DAYS = LocalDateTime.now().minusDays(5);
|
|
|
private final QuoteRepository repository;
|
|
|
private final StockClient client;
|
|
|
private final String key;
|
|
|
@@ -33,8 +37,12 @@ public class StockRepository {
|
|
|
this.key = key;
|
|
|
}
|
|
|
|
|
|
- public List<Quote> findLike(String query) {
|
|
|
- return repository.findByNameContaining(query);
|
|
|
+ public Set<Quote> findLike(String query) {
|
|
|
+ Set<Quote> quotes = repository.findByNameContaining(query, LAST_FIVE_DAYS);
|
|
|
+ Set<String> addedCodes = new HashSet<>();
|
|
|
+ return quotes.stream()
|
|
|
+ .filter(quote -> addedCodes.add(quote.getCode()))
|
|
|
+ .collect(Collectors.toSet());
|
|
|
}
|
|
|
|
|
|
public Quote findByCode(String code) {
|