forum.bitel.ru http://forum.bitel.ru/ |
|
Обработчик в тарифах http://forum.bitel.ru/viewtopic.php?f=19&t=8535 |
Страница 1 из 1 |
Автор: | skyb [ 28 сен 2013, 07:09 ] |
Заголовок сообщения: | Обработчик в тарифах |
А подскажите как работает обработчик в тарифах, я так понял можно повесить класс на ветку и что то делать в этот момент? |
Автор: | snark [ 17 окт 2013, 06:35 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Примерчик бы не помешал бы, согласись ![]() |
Автор: | Cromeshnic [ 17 окт 2013, 06:43 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Код: package ru.dsi.bgbilling.modules.inet.dyn.tariff.server;
import ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeNode; import ru.bitel.bgbilling.kernel.tariff.tree.server.TreeContext; import ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime; import ru.bitel.bgbilling.modules.inet.tariff.server.InetTariffContext; import ru.bitel.bgbilling.modules.inet.tariff.server.InetTariffRequest; import ru.bitel.bgbilling.modules.inet.tariff.server.InetTariffWorkerContext; import ru.bitel.common.ParameterMap; import ru.bitel.common.Utils; import java.util.Set; /** * Узел тарифа - фильтр по типам сервиса. */ public class ServTypeTariffTreeNode extends TariffTreeNode<InetTariffRequest, InetTariffContext, TreeContext, InetTariffWorkerContext> { private Set<Integer> servTypes; public ServTypeTariffTreeNode(int id, ParameterMap parameterMap) { super(id, parameterMap); this.servTypes = Utils.toIntegerSet(parameterMap.get("servTypes", "")); } @Override protected int executeImpl(Long treeNodeId, Long parentTreeNodeId, InetTariffRequest req, InetTariffContext ctx, TreeContext treeContext, InetTariffWorkerContext workerContext) { //TODO //http://forum.bgbilling.ru/viewtopic.php?p=65223#p65223 InetServRuntime inetServRuntime = req.inetServRuntime; if(inetServRuntime!=null){ if(this.servTypes.contains(inetServRuntime.getInetServ().getTypeId())){//Наш клиент, обрабатываем return 1; } } return 0; } } |
Автор: | skyb [ 17 окт 2013, 10:10 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Cromeshnic а от куда брать какой класс использовать? я так понимаю ты декомпилишь? |
Автор: | Cromeshnic [ 17 окт 2013, 10:19 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
- Пишешь свой класс в дин коде, расширяющий TariffTreeNode (у меня в примере - код моего такого класса). - Прописываешь его в узле-обработчике полностью в поле "Класс" : ru.dsi.bgbilling.modules.inet.dyn.tariff.server.ServTypeTariffTreeNode - В конфиге узла указываешь параметры, например, в моём случае: Код: servTypes=1,2,3 - ... - PROFIT! |
Автор: | Amir [ 17 окт 2013, 14:49 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Да, и там неспроста каска на иконке. |
Автор: | Cromeshnic [ 17 окт 2013, 15:05 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Да, зря рассказал. Это такой тест - сам догадался, как пользоваться, значит сумеешь ![]() |
Автор: | skyb [ 17 окт 2013, 15:05 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Amir писал(а): Да, и там неспроста каска на иконке. А описание более подробное как все работает будет? |
Автор: | Amir [ 17 окт 2013, 15:16 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Нет - это на свой страх и риск (как, впрочем, и договаривались, когда просили данную ветку тарифа) ![]() Если описывать - придется полностью описывать систему тарификации, а это все-таки внутрення кухня, которую мы не хотим обременять поддержкой и обратной совместимостью сторонних скриптов. К тому же тарификация может вызываться очень часто. Что-то простое, как в примере выше, с использованием только тех данных, что передаются в метод еще можно, а что-то сложное там делать я бы не рекомендовал. |
Автор: | skyb [ 17 окт 2013, 15:20 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
да мне нада то при переходе с одного(включенного трафика) на привышенный трафик отправить письмо, был бы даже раз за скилет кода, куда можно было бы вставить свой =) |
Автор: | Amir [ 17 окт 2013, 15:28 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Так тариф на каждый байт может вызываться - это на каждый байт письмо будет посылаться, или надо делать записи в БД, что уже посылали письмо, что, как я писал выше, будет уже плохо. Как вариант - можно попробовать сделать через опции Inet и ServiceActivator - появилась опция - послали письмо через ServiceActivator. |
Автор: | stark [ 28 окт 2013, 20:35 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
skyb писал(а): да мне нада то при переходе с одного(включенного трафика) на привышенный трафик отправить письмо, был бы даже раз за скилет кода, куда можно было бы вставить свой =) ага, чтобы ваш отправлящик писем повесил всю тарификацию, пока отправка по таймауту не отвалится ? Я начинаю боятся за этот узел, может его удалить в следующем обновлении от греха. |
Автор: | Cromeshnic [ 28 окт 2013, 21:11 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Можно не отображать его в списке при добавлении в интерфейсе, а сам гуи оставить. Люди не будут задавать вопросов, а знающие смогут добавить ручками в базу сами. |
Автор: | barguzin2 [ 28 окт 2013, 22:29 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Не-не, не надо удалять. Оставим это как недокументированную возможность ![]() |
Автор: | skyb [ 29 окт 2013, 06:33 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
stark писал(а): skyb писал(а): да мне нада то при переходе с одного(включенного трафика) на привышенный трафик отправить письмо, был бы даже раз за скилет кода, куда можно было бы вставить свой =) ага, чтобы ваш отправлящик писем повесил всю тарификацию, пока отправка по таймауту не отвалится ? Я начинаю боятся за этот узел, может его удалить в следующем обновлении от греха. да не же, я спросил, как его заюзать, амир объяснил что может поломаться и смотреть в другую сторону лучше, я оставил этот моент |
Автор: | LёLik [ 10 фев 2017, 17:00 ] |
Заголовок сообщения: | Re: Обработчик в тарифах |
Подскажите, не появилось ли какой-нибудь фичи в 6.2, чтобы реализовать логику "inet:Превышение по трафику" -> письмо клиенту/менеджеру или делать, как описывал Amir "опция/ServiceActivator"? ЗЫ: Видимо нет. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |