item controller: don't return duplicate items in bulk lookup
This commit is contained in:
@@ -30,7 +30,9 @@ import java.time.Duration;
|
|||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -197,9 +199,16 @@ public class ItemController
|
|||||||
itemIds = Arrays.copyOf(itemIds, MAX_BATCH_LOOKUP);
|
itemIds = Arrays.copyOf(itemIds, MAX_BATCH_LOOKUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set<Integer> seen = new HashSet<>();
|
||||||
List<ItemPrice> itemPrices = new ArrayList<>(itemIds.length);
|
List<ItemPrice> itemPrices = new ArrayList<>(itemIds.length);
|
||||||
for (int itemId : itemIds)
|
for (int itemId : itemIds)
|
||||||
{
|
{
|
||||||
|
if (seen.contains(itemId))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
seen.add(itemId);
|
||||||
|
|
||||||
ItemEntry item = itemService.getItem(itemId);
|
ItemEntry item = itemService.getItem(itemId);
|
||||||
PriceEntry priceEntry = itemService.getPrice(itemId, null);
|
PriceEntry priceEntry = itemService.getPrice(itemId, null);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user