...
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/** * Построение и конструирование сообщения для отправки */ public static final class BotMessage { /** * ID договоров, для которых должно будет быть отправлено сообщение */ private Set<Integer> contracts; /** * ID пользователей в мессенджерах. */ private List<Long> userIds; /** * Фильтр по меткам договора. Если установлен список с метками, * то отправка будет только по договорам, у которых есть хотя бы одна указанная в списке метка. * * Данный фильтр распространяется только на тот список договоров, которые были переданы в contracts */ private Set<Integer> contractLabelIds; /** * Если значение установлено, то сообщение будет отправлено только для участников указанного бота, * иначе для всех ботов */ private int botId; /** * Простой текст сообщения. * Если так же есть Dialog, то данный текст будет создан в виде текстового элемента диалога * и добавлен к самому диалогу */ private String text; /** * Экземпляр диалога, который построен в модуле BotManager. * Если отсутствует, то будет взят текст сообщения */ private BotDialog dialog; private BotMessage() {} public static BotMessage createMessage() { return new BotMessage(); } public BotMessage setContracts(Set<Integer> contracts) { this.contracts = contracts; return BotMessage.this; } /** * Добавляет договор в список для отправки, * если список пуст, то отправка будет только для этого договора */ public BotMessage setContract(int contractId) { if( this.contracts == null ) this.contracts = new HashSet<>(); this.contracts.add( contractId ); return BotMessage.this; } public BotMessage setContractLabelIds( List<Integer> labelIds ) { this.contractLabelIds = new HashSet<>(labelIds); return BotMessage.this; } public BotMessage setUserIds(List<Long> userIds) { this.userIds = userIds; return BotMessage.this; } public BotMessage addUserId(long userId) { if( userIds == null ) userIds = new ArrayList<>(); userIds.add( userId ); return BotMessage.this; } public BotMessage setBotId( int botid ) { this.botId = botid; return BotMessage.this; } public BotMessage setText( String text ) { this.text = text; return BotMessage.this; } public BotMessage setDialog( BotDialog dialog ) { this.dialog = dialog; return BotMessage.this; } } |
Если передаётся список id договоров, то их id в мессенджерах будут браться из статистики в ботах, если ведение статистики не было включено в конфигурации модуля, то для какого-то договора сообщение может не быть отправлено, даже если клиент авторизовался через бота.