FreelanceBot

Форк
0
40 строк · 1.3 Кб
1
package telegramBot.util;
2

3
import telegramBot.dto.OrderDto;
4
import telegramBot.entity.Order;
5

6
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.Set;
9
import java.util.concurrent.ConcurrentHashMap;
10
import java.util.function.Function;
11
import java.util.function.Predicate;
12
import java.util.stream.Collectors;
13

14
public class OrderUtil {
15

16
    public static OrderDto toDto(Order order){
17
        String title = order.getTitle();
18
        String link = order.getLink();
19
        String exchangeName = order.getExchange().getName();
20
        String exchangeLink = order.getExchange().getLink();
21
        String subscription = order.getSubscription().getLanguage();
22
        return new OrderDto(title, link, exchangeName, exchangeLink, subscription);
23
    }
24

25
    public static List<OrderDto> toDtos(List<Order> orders) {
26
        List<OrderDto> result = new ArrayList<>();
27
        for (Order order : orders) {
28
            result.add(toDto(order));
29
        }
30
        return result.stream()
31
                .filter(distinctByKey(OrderDto::getLink))
32
                .collect(Collectors.toList());
33
    }
34

35
    public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
36
        Set<Object> seen = ConcurrentHashMap.newKeySet();
37
        return t -> seen.add(keyExtractor.apply(t));
38
    }
39

40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.