BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 04 июн 2024, 02:21

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Собственные DispatchConditions
СообщениеДобавлено: 12 май 2014, 06:21 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
skn писал(а):
Cromeshnic писал(а):
Какие-то второстепенные вещи обсуждаете.
Речь вообще о возможности добавлять собственные условия рассылок для ЛК и, по возможности, клиента.


я с трудом представляю как это реализовать
1) как вставить задание этих условий в ЛК и клиенте
2) эти условия кто то должен анализировать и обрабатывать, например для отсылки уведомлений о превышение трафика это в сервер аккаутинга надо добавлять обработчик или событие по каждому факту поступления инфы о новом трафике (а этих событий может быть вагон и маленькая тележка...), если по наработке то значит надо обрабатывать события изменения баланса, а они могут быть не только связаны с наработкой...


1) В ЛК мы сами можем вставить - не проблема. В клиент в общем случае конечно сложно. Но я ж и не прошу - просто сделайте проверку на null (сейчас будет NPE, если он не найдёт панельки для класса условий). Либо вообще не рисовать кастомные услвия (редактировать только в ЛК), либо сделать универсальную затычку: текстовое поле для ввода данных в виде конфига param=value.
2) Это тоже наша головная боль. Вообще, условия и триггеры на отправку - разные вещи. У вас же есть тип рассылки "по событию" - ну и вот. А как выстрелить это событие - уже сами придумаем. Можно по шедулеру проверять раз в 5 минут, можно скриптами отлавливать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Собственные DispatchConditions
СообщениеДобавлено: 12 май 2014, 18:31 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
skn писал(а):
Cromeshnic писал(а):
Какие-то второстепенные вещи обсуждаете.
Речь вообще о возможности добавлять собственные условия рассылок для ЛК и, по возможности, клиента.


я с трудом представляю как это реализовать
1) как вставить задание этих условий в ЛК и клиенте
2) эти условия кто то должен анализировать и обрабатывать, например для отсылки уведомлений о превышение трафика это в сервер аккаутинга надо добавлять обработчик или событие по каждому факту поступления инфы о новом трафике (а этих событий может быть вагон и маленькая тележка...), если по наработке то значит надо обрабатывать события изменения баланса, а они могут быть не только связаны с наработкой...


1) В ЛК мы сами можем вставить - не проблема. В клиент в общем случае конечно сложно. Но я ж и не прошу - просто сделайте проверку на null (сейчас будет NPE, если он не найдёт панельки для класса условий). Либо вообще не рисовать кастомные услвия (редактировать только в ЛК), либо сделать универсальную затычку: текстовое поле для ввода данных в виде конфига param=value.
2) Это тоже наша головная боль. Вообще, условия и триггеры на отправку - разные вещи. У вас же есть тип рассылки "по событию" - ну и вот. А как выстрелить это событие - уже сами придумаем. Можно по шедулеру проверять раз в 5 минут, можно скриптами отлавливать.


покажите NPE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Собственные DispatchConditions
СообщениеДобавлено: 13 май 2014, 11:57 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Я ещё не пробовал - только смотрел jar-файлы сервера и клиента на предмет возможности.

Вот что вижу в клиенте при построении панелек редактирования условий для договора:

В ContractDispatchConditionsPanel:
Код:
for (DispatchCondition condition : dispatch.getConditions())
    {
      ReferredModule refModule = (ReferredModule)condition.getClass().getAnnotation(ReferredModule.class);
      this.panelMap.add(ContractConditionPanelFactory.getPanel(condition.getClass(), (ClientContext)getContext(),
        refModule.value(), condition.getModuleId()));
    }

...

  public void setPreferences(Preferences prefs)
  {
    for (AbstractContractConditionPanel value : this.panelMap)
    {
      value.load(prefs);
    }
  }



Смотрим getPanel ConditionPanelFactory:
Код:
public static AbstractDispatchConditionPanel getPanel(Class<? extends DispatchCondition> clazz, String module, int mid)
  {
    AbstractDispatchConditionPanel instance = null;

    Class panelClass = (Class)factoryMap.get(clazz);

    if (panelClass == null)
    {
      return null;
    }

    ...

  }


Т.е. getPanel возвращает null, который добавляется в ArrayList panelMap, и NPE будет тут:

Код:
    for (AbstractContractConditionPanel value : this.panelMap)
    {
      value.load(prefs);
    }


(ArrayList разрешает добавлять null)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.032s | 21 Queries | GZIP : On ]