Skip to content

Latest commit

 

History

History
26 lines (19 loc) · 1.72 KB

TODO.md

File metadata and controls

26 lines (19 loc) · 1.72 KB

SwapRequest для пользователей

Проблема: нужно чтобы у пользователя была возможность просматривать свои заявка на обмен в очереди.

Сейчас реализовано в виде Map<User, User> внутри entity SwapContainer:

    @ElementCollection(targetClass=User.class, fetch = FetchType.EAGER)
    @MapKeyColumn(name="userMap")
    private Map<User , User> swapMap;

    public void addSwapRequest(User user, User target){
        swapMap.put(user, target);
        if (user.equals(swapMap.get(target))){
            queue.swap(user, target);
        }
    }

С точки зрения лишь обмена мест в серверном режиме это удобно, так как по ключу мы уже можем проверить, существует ли обратная заявка, тем не менее, при этом совершенно невозможно (очень затратно) найти все заявки поданные пользователем.

Предлагаемое решение: Создать класс SwapRequest, который имеет отношение ManyToOne с User.

Таким образом, каждый пользователь может иметь несколько заявок (внутри которых указан кто является целью и в какой очереди).

Затем нужно добавить в метод api/check вызов проверки заявок (возвращает список заявок, можно создать какую-нибудь вспомогательную модель)