forum.bitel.ru
http://forum.bitel.ru/

Добавить пакет всем
http://forum.bitel.ru/viewtopic.php?f=61&t=13185
Страница 1 из 1

Автор:  mhollow [ 14 янв 2019, 13:23 ]
Заголовок сообщения:  Добавить пакет всем

Привет
Создали новый пакет в продуктах в модуле IPTV (iptvportal)
Как его добавить разом всем договорам у которых подключен модуль IPTV?
Спасибо.

Автор:  mhollow [ 15 янв 2019, 18:17 ]
Заголовок сообщения:  Re: Добавить пакет всем

Главный чтоле в отпуске опять?) Аль приболел часом?))

Автор:  Phricker [ 15 янв 2019, 18:27 ]
Заголовок сообщения:  Re: Добавить пакет всем

Не, я просто боюсь, что на предложение запилить скрипт, который будет добавлять всем пакет, и кинуть ссылкой в javadoc, вы будете плеваться тем, что труЪ программисты не называют "динамически подгружаемый код Java" © скриптами

Автор:  mhollow [ 15 янв 2019, 18:33 ]
Заголовок сообщения:  Re: Добавить пакет всем

Нельзя ли обойтись более простыми средствами, например SQL запросом?

Автор:  Phricker [ 15 янв 2019, 18:50 ]
Заголовок сообщения:  Re: Добавить пакет всем

SQL запросы не бросают событий, на которые подписаны приложения биллинга.
Возможно будет достаточно после SQL запроса перезагрузить TVAccess/TVAccounting, чтобы они перечитали и синхронизировали сервисы, но я бы не рисковал.

Автор:  mhollow [ 15 янв 2019, 19:01 ]
Заголовок сообщения:  Re: Добавить пакет всем

Ну можно добавить через SQL в биллинг и добавить в MW тоже как-то так.
Этим обеспечить синхронизацию пакетов
Или как-то пнуть приложения чтобы они синхронизировали всех после добавления в биллинг. Кажется такая возможность где-то была.
А вообще надо групповую операцию на эту тему.
Неужели я первый кто с этим столкнулся? Сегодня не было пакета, завтра он появился, и у нас 100500 клиентов? Хочется же как-то без гемора решить этот глупый вопрос.

Автор:  mhollow [ 16 янв 2019, 20:04 ]
Заголовок сообщения:  Re: Добавить пакет всем

Так я правильно понимаю что если делать с помощью SQL, то достаточно добавить пакет в две таблицы inv_product и inv_product period?
Ну и наверное перезапустить приложения?

Автор:  Amir [ 18 янв 2019, 20:24 ]
Заголовок сообщения:  Re: Добавить пакет всем

Если нужно добавить всем бесплатный пакет, то лучше сделать через ветку "Установка опции".
IptvPortalOrderManager поддерживает такое включение продуктов.

Автор:  mhollow [ 18 янв 2019, 20:30 ]
Заголовок сообщения:  Re: Добавить пакет всем

То есть в тарифе прописать опцию - пакет?
А если платный?

Автор:  Amir [ 18 янв 2019, 20:31 ]
Заголовок сообщения:  Re: Добавить пакет всем

Цитата:
Так я правильно понимаю что если делать с помощью SQL, то достаточно добавить пакет в две таблицы inv_product и inv_product period?
Ну и наверное перезапустить приложения?
Вроде бы должно быть достаточно, но timeTo в inv_product_period должен быть на 1 сек. меньше timeFrom, чтобы биллинг попытался продлить данный продукт и после этого дал задание включить его на MW.
Т.е. начисление и создание задания происходит в одном месте, нет какой-то задачи планировщика, которая бы постоянно проверяла периоды продуктов.

Автор:  Amir [ 18 янв 2019, 20:36 ]
Заголовок сообщения:  Re: Добавить пакет всем

Цитата:
То есть в тарифе прописать опцию - пакет?
Да.

Цитата:
А если платный?
Можем добавить групповую операцию (где-нибудь на следующей неделе).
Можно сделать скрипт и вызывать через API. Например, новый ЛК активирует так:
Код:
         Product product = new Product();
         product.setContractId( getContractId() );
         product.setAccountId( tvAccountId );
         product.setProductSpecId( productSpecId );
         product.setActivationModeId( productSpecActivationModeId );
         product.setComment( "Активировано клиентом" );

         productOrderService.productActivate( product, null, true, true );
https://bgbilling.ru/v7.0/javadoc/ru/bitel/oss/systems/order/product/common/service/ProductOrderService.html#productActivate-ru.bitel.oss.systems.inventory.product.common.bean.Product-java.util.Date-boolean-boolean-

Автор:  mhollow [ 18 янв 2019, 20:38 ]
Заголовок сообщения:  Re: Добавить пакет всем

Будем более лучше одобрять групповую операцию пожалуйста))

Автор:  mhollow [ 19 янв 2019, 00:27 ]
Заголовок сообщения:  Re: Добавить пакет всем

Добавить через опцию плохо получается.
Добавили продукт. В биллинге под id 29, в MW с таким же названием, но там ID конечно другой.
Далее создали опцию в тарифе с этим продуктом.
После этого биллинг попытался включить всем клиентам этого тарифа этот продукт, но

лог с MW

2019-01-18 20:47:38,683 ------------------------------------------------------------
2019-01-18 20:47:38,683 command: insert into subscriber_package (package_id, expired_on, enabled, domain_id, subscriber_id) values (%(var0)s,%(var1)s,%(var2)s,%(var3)s,%(var4)s) returning %(var5)s
2019-01-18 20:47:38,683 ------------------------------------------------------------
2019-01-18 20:47:38,683 vars: {'var5': 'id', 'var4': 490159, 'var1': None, 'var0': 29, 'var3': 72, 'var2': True}
2019-01-18 20:47:38,683 ------------------------------------------------------------
2019-01-18 20:47:38,722 Exception in user code:
2019-01-18 20:47:38,722 ------------------------------------------------------------
Traceback (most recent call last):
File "./utils/jsonsql.py", line 752, in execute_command
File "/usr/lib64/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/lib64/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/lib64/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
IntegrityError: insert or update on table "subscriber_package" violates foreign key constraint "subscriber_package_domain_id_fkey1"
DETAIL: Key (domain_id, package_id)=(72, 29) is not present in table "package".

И это понятно, потому что в мидле у этого пакета ID совсем не 29 а например 604

Что мы сделали не так?

Автор:  mhollow [ 22 янв 2019, 16:25 ]
Заголовок сообщения:  Re: Добавить пакет всем

Или может быть уже реализована групповая операция? Намекните хоть, чтоле)

Автор:  Amir [ 22 янв 2019, 17:37 ]
Заголовок сообщения:  Re: Добавить пакет всем

Цитата:
Или может быть уже реализована групповая операция? Намекните хоть, чтоле)
Нет, групповой операции еще нет.

Цитата:
И это понятно, потому что в мидле у этого пакета ID совсем не 29 а например 604
Была ошибка в дин. классе IptvPortalOrderManager. Выложили обновление. Можно просто обновить дин. класс (без обновления модуля, класс взять из tv_7.x_yyy.zip/dyn), перекомпилировать и нажать "Перечитать конфигурацию на серверах".

Автор:  mhollow [ 22 янв 2019, 18:10 ]
Заголовок сообщения:  Re: Добавить пакет всем

Если не трудно, сообщите пожалуйста, когда будет готова групповая операция. Потому что для платных пакетов это все равно не катит.
Спасибо.

Автор:  mhollow [ 22 янв 2019, 22:10 ]
Заголовок сообщения:  Re: Добавить пакет всем

Обновил дин.класс.
Теперь при добавлении опции на тариф, добавляет с правильным ID. Но меееедленно. ПО нескольку договоров в минуту.
Скажите, по какому принципу происходит добавление? Так он несколько дней будет добавлять этот бедный пакет.
При удалении опции зато моментально сразу и у всех не церемонясь.

Ну и как только что выяснилось, добавляется пакет при добавлении опции не всем договорам у которых есть этот тариф. А совсем даже не всем. Без всякой видимой причины. Чуть ли не рандомно. Кому-то этот пакет в мидле просто не добавился. Все это как-то малопонятно и очень глючно.

Автор:  mhollow [ 30 янв 2019, 18:23 ]
Заголовок сообщения:  Re: Добавить пакет всем

Не реализована ли еще групповая операция по добавлению пакета?

Автор:  Amir [ 08 фев 2019, 00:49 ]
Заголовок сообщения:  Re: Добавить пакет всем

Выложили обновление для 7.1
Как и для других групповых действий, желательно забекапить указанные таблицы и сначала вызвать действие только для одного договора.
Если на договоре нет аккаунта, или он закрыт по периоду, то он будет пропущен. Если на аккаунте уже есть такой активный продукт на указанное время, то он будет пропущен.

Автор:  Amir [ 08 фев 2019, 00:58 ]
Заголовок сообщения:  Re: Добавить пакет всем

Цитата:
Теперь при добавлении опции на тариф, добавляет с правильным ID. Но меееедленно. ПО нескольку договоров в минуту.
Скажите, по какому принципу происходит добавление? Так он несколько дней будет добавлять этот бедный пакет.
При удалении опции зато моментально сразу и у всех не церемонясь.
Оба действия выполняются одними и теми же подсистемами.
Тарификатор TvAccounting периодически тарифицирует аккаунты и отслеживает изменение продуктов-опций (accounting.worker.1.tracking.account в https://docs.bitel.ru/pages/viewpage.ac ... d=43386399).
TvAccess выполняет синхронизацию, добавляя или удаляя продукт-пакет (или выполняет полную синхронизацию, сравнивая с данными из MW).

Т.е. не должно быть разницы в скорости активации/деактивации. Возможно нужно смотреть логи синхронизации в TvAccess.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/