Биллинговая система Nodeny

Главная категория => Общий раздел => Тема начата: vantoo от 13 Февраля 2013, 18:55:47



Название: Объединение биллингов
Отправлено: vantoo от 13 Февраля 2013, 18:55:47
Возникла необходимость перенести все данные из одного биллинга Nodeny в другой.
Перенести нужно как минимум данные абонента, тариф, баланс, доп. поля.
Какие трудности могут возникнуть при этом? Возможно у кого-то есть наработки
по данной задаче?
Спасибо!


Название: Re: Объединение биллингов
Отправлено: Redmen от 13 Февраля 2013, 19:17:25
В какой другой биллинг?


Название: Re: Объединение биллингов
Отправлено: stix от 13 Февраля 2013, 19:45:00
Возникла необходимость перенести все данные из одного биллинга Nodeny в другой.
Перенести нужно как минимум данные абонента, тариф, баланс, доп. поля.
Какие трудности могут возникнуть при этом? Возможно у кого-то есть наработки
по данной задаче?
Спасибо!
делайте экспорт определенных таблиц, да и все.

все банально просто.
экспорт-импорт

баги могут возникнуть с паролями, но есть варианты как этого избежать


Название: Re: Объединение биллингов
Отправлено: Cell от 13 Февраля 2013, 21:11:04
да конечно.... прям экспорт и импорт )))
А косяки с алиасными записями? А совпадение айдишников клиентов в дополнительных полях? А карточки (если есть)? А платежи? А совпадение айдишников тарифов? - это то что бросилось сразу в глаза. Малой кровью не получится. Нужно скрипт писать. С допданными там вообще "рак мозга" т.е. я хз как поступить.  


Название: Re: Объединение биллингов
Отправлено: stix от 13 Февраля 2013, 21:50:48
Ну тут нужно уточнить, в какой другой....это фундаментельно различит.
я конвертеры писал, огромных проблем не возникало.

по-большому счету объединить даже две базы не составит прям уж так большого труда.
а с доп данными тут нужно спросить, чего нужно переносить, я на php формировал массив с данными абонента, потом этим массивом заполнял уже существующую базу.
несколько тысяч абонентов.

хотя как показывает практика, что кажется на первый взгляд не сложным, на деле оказывается нуегонах.

Cell, смотря какая цена вопроса, я думаю справишься !  ;)


Название: Re: Объединение биллингов
Отправлено: Cell от 13 Февраля 2013, 21:56:17
Ну согласись, что это уже не экспорт и импорт? А уже мозг напрячь.... Подумать, написать что-то на чем-то - хоть на шелле. Простого решения нет. Есть решение через скрипт, которого тоже походу нет и его надо делать.


Название: Re: Объединение биллингов
Отправлено: stix от 13 Февраля 2013, 22:05:18
да, тут я погорячился сказав импорт-экспорт )

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

куча регулярных выражений, вложенных запросов, условных операторов и вложенных форичей и чарсет превращений

на пхп, синглтоном.

ну такое....было чем заниматься )


Название: Re: Объединение биллингов
Отправлено: ser970 от 13 Февраля 2013, 22:30:46
есть скриты...
читаем из базы в текстовый - id+максимальный ид в базе куда переносим...
особых проблем как бы нет = слил пару  баз в одну.


Название: Re: Объединение биллингов
Отправлено: Cell от 13 Февраля 2013, 22:54:11
Ну так можно юзеров с балансами перенести и то с проблемами ))) т.к. алиасы разъедуться и тарифы. По-любасу руками придется перебирать. Нет простых решений )) нет их. lavi тут ближе к истине.


Название: Re: Объединение биллингов
Отправлено: ser970 от 13 Февраля 2013, 22:59:03
Ну так можно юзеров с балансами перенести и то с проблемами ))) т.к. алиасы разъедуться и тарифы. По-любасу руками придется перебирать. Нет простых решений )) нет их. lavi тут ближе к истине.
не разъедутся ни алиасы, ни тафиры ,ни платежи ,ни допданые

проверено и работает.

цена вопроса 120бакс


Название: Re: Объединение биллингов
Отправлено: Cell от 13 Февраля 2013, 23:21:43
Ну так можно юзеров с балансами перенести и то с проблемами ))) т.к. алиасы разъедуться и тарифы. По-любасу руками придется перебирать. Нет простых решений )) нет их. lavi тут ближе к истине.
не разъедутся ни алиасы, ни тафиры ,ни платежи ,ни допданые

проверено и работает.

цена вопроса 120бакс
Очень самоуверенно, но цена вопроса вызывает уважение. ))) Описываю ситуацию: база номер 1 как была так и осталась, максимальный айди 600. Вторая база переносится в первую. В ней есть айди 400, 444,523,и 855 которые являются алиасами айди 377 второй базы. Внимание вопрос, как по вашей методике сделать так, чтобы указанные алиасы стали алиасами записи 600+377
А ответ прост - нужно писать скрипт с кучей если и блаблаба. Тоже самое с допданными, тарифами и платежами.)))
Но за 120 баксов я тоже такой скрипт намалюю ))
Хотя нет... не буду перебивать заработок коллеги. Тем более что у него все уже есть. )


Название: Re: Объединение биллингов
Отправлено: ser970 от 13 Февраля 2013, 23:36:20
Ну так можно юзеров с балансами перенести и то с проблемами ))) т.к. алиасы разъедуться и тарифы. По-любасу руками придется перебирать. Нет простых решений )) нет их. lavi тут ближе к истине.
не разъедутся ни алиасы, ни тафиры ,ни платежи ,ни допданые

проверено и работает.

цена вопроса 120бакс
Очень самоуверенно, но цена вопроса вызывает уважение. ))) Описываю ситуацию: база номер 1 как была так и осталась, максимальный айди 600. Вторая база переносится в первую. В ней есть айди 400, 444,523,и 855 которые являются алиасами айди 377 второй базы. Внимание вопрос, как по вашей методике сделать так, чтобы указанные алиасы стали алиасами записи 600+377
А ответ прост - нужно писать скрипт с кучей если и блаблаба. Тоже самое с допданными, тарифами и платежами.)))
Но за 120 баксов я тоже такой скрипт намалюю ))
Хотя нет... не буду перебивать заработок коллеги. Тем более что у него все уже есть. )


не самоуверен , а уверен . ибо проверено и не один раз.
можешь рисовать - для меня это не заработок...


з.ы. Cell трудно быть богом, да?


Название: Re: Объединение биллингов
Отправлено: Efendy от 14 Февраля 2013, 00:10:53
Описываю ситуацию: база номер 1 как была так и осталась, максимальный айди 600
....
не стал въезжать в ситуацию, но по идее действительно объединить 2 базы нетрудно.

сперва в одной из баз сменить ключ шифрования паролей чтоб был такой же как в другой. затем
update users set id=id+10000;
update users set mid=mid+10000 where mid>0;
update pays set mid=mid+10000 where mid>0;
и с остальными таблицами по аналогии.

10000 - это число превышающее максимальный id в users другого била


Название: Re: Объединение биллингов
Отправлено: Cell от 14 Февраля 2013, 00:31:08
Описываю ситуацию: база номер 1 как была так и осталась, максимальный айди 600
....
не стал въезжать в ситуацию, но по идее действительно объединить 2 базы нетрудно.

сперва в одной из баз сменить ключ шифрования паролей чтоб был такой же как в другой. затем
update users set id=id+10000;
update users set mid=mid+10000 where mid>0;
update pays set mid=mid+10000 where mid>0;
и с остальными таблицами по аналогии.

10000 - это число превышающее максимальный id в users другого била
Ну это идея интереснее, по крайней мере в каком направлении двигаться.


Название: Re: Объединение биллингов
Отправлено: ser970 от 14 Февраля 2013, 01:04:09
Цитата: ser970
это не первый раз когда ведешь  как бог . типа я круче всех - показать темы ? или сам поймешь?
У тебя видимо искаженное представление о Боге. Дальше не буду развивать эту тему по религиозным соображениям.
Можешь не трудится показывать темы. Я кажется понимаю что ты имеешь ввиду, но словами выразить не можешь )))
Может я где-то перегибаю палку с своих суждениях, но я при этом выражаю свою точку зрения... только свою и ни чью больше. И нигде, заметь нигде нет ни слова о том, что это абсолютная истина. Чаще всего все мои посты сопровождаются словом ИМХО смысл которого можно узнать в гугле. Так что не примеряй то что я пишу прямо на себя. Можешь помочь - помогай, не можешь - не помогай а не будь такой загадочный. Сначала цену называешь, потом говоришь что это не заработок. ))) Норм заработок, только топик не на это расчитан, а на то, что помогут люди и подскажут человеку что делать. У меня же здесь вполне определенный интерес есть, потому что в скором времени мне придется объединять две базы ))) вот я и участвую в дискуссии, которая превратилась почему-то в кидание какашками.
ок - замнем.

просто я делаю через текстовый файл - у меня так втягиваются данные из 1с.
и на этом было был сделан скрипт - ним объединяли базы и не раз.

что более менее сложно это доп поля. если делать через update, то могет возникнуть ситуация когда поля пересекаются .
притом несколько полей.
 


Название: Re: Объединение биллингов
Отправлено: Cell от 14 Февраля 2013, 01:06:54
Цитата: ser970

что более менее сложно это доп поля. если делать через update, то могет возникнуть ситуация когда поля пересекаются .
притом несколько полей.
 
Я про тоже, надо пробовать....


Название: Re: Объединение биллингов
Отправлено: 0xbad0c0d3 от 14 Февраля 2013, 01:07:57
Та не раз переносил абнов с разных биллингов, и с нодени в нодени, с платежами и с допданными, и, даже, с алиасами, и заменой тарифов - пока проблем не вижу. Делалось, конечно, скриптом, довольно таки громоздким.
P.S. Не, была проблема, абон платил по старому ППК )))


Название: Re: Объединение биллингов
Отправлено: ser970 от 14 Февраля 2013, 01:18:46
Цитата: ser970

что более менее сложно это доп поля. если делать через update, то могет возникнуть ситуация когда поля пересекаются .
притом несколько полей.
 
Я про тоже, надо пробовать....

не помню это или нет  последняя версия но логика таже

получаем текстовый файл - дальше проще


Название: Re: Объединение биллингов
Отправлено: vantoo от 14 Февраля 2013, 01:50:36
Благодарю всех отписавшихся, куда копать понял, будем разбираться.


Название: Re: Объединение биллингов
Отправлено: Cell от 14 Февраля 2013, 01:56:58
P.S. Не, была проблема, абон платил по старому ППК )))
Кстати беда....  которую решить можно только организационными мероприятиями.


Название: Re: Объединение биллингов
Отправлено: stix от 14 Февраля 2013, 09:15:02
возможно еще будет беда с дополнительными услугами )
т.к. распарсить не тривиальная задача.

потому я руками создавал ассоциативный массив


Название: Re: Объединение биллингов
Отправлено: 0xbad0c0d3 от 15 Февраля 2013, 01:04:24
что там не тривиального? oO
сделать srvs|=old_srvs<<n? где n - кол-во услуг в билле, в который переносим, в случае если услуги не дублируются?
если дублируются, то даже тот же массив { 'старое смещение' => 'новое' },
Тривиальнее некуда
а потом такие опа:
Код:
$old_srvs = unpack('N',pack("B32",'00010000000000000000000010000001'));
%fix = (
        1 => 32,
        8 => 16,
);
$new_srvs=0;
$new_srvs |= ($old_srvs & (1<<($_-1)))?exists($fix{$_})?(1<<($fix{$_}-1)):(1<<($_-1)):0 foreach (1 .. 32);
printf("%d\t%s\n%d\t%s",$old_srvs,unpack('B32',pack("N",$old_srvs)),$new_srvs,unpack('B32',pack("N",$new_srvs)));
что значит, что 1-я услуга стала 32-й, а 8-я - 16-й, все остальные - не поменялись
Код:
268435585	00010000000000000000000010000001
-1879015424 10010000000000001000000000000000


Название: Re: Объединение биллингов
Отправлено: stix от 15 Февраля 2013, 07:30:40
ну ты названия услуг еще перенеси


Название: Re: Объединение биллингов
Отправлено: 0xbad0c0d3 от 15 Февраля 2013, 11:24:55
Перенес )) Скопировал-вставил потом %srvs ....
Код:
$old_srvs = unpack('N',pack("B32",'00010000000000000000000010000001'));

%srvs_old = (
        1 => 'old service1',
        8 => 'old service1',
);
%srvs = (
        1 => 'service1',
        8 => 'service1',
);

%fix = (
        1 => 32,
        8 => 16,
);
$new_srvs=0;
foreach $s (1 .. 32){
        $srvs{$fix{$s}}=$srvs_old{$s} if exists($fix{$s});
        $new_srvs |= ($old_srvs & (1<<($s-1)))?exists($fix{$s})?(1<<($fix{$s}-1)):(1<<($s-1)):0;
}
printf("%d\t%s\t%s\n%d\t%s\n",$old_srvs,unpack('B32',pack("N",$old_srvs)),unpack('B32',pack("N",$old_srvs<<16)),$new_srvs,unpack('B32',pack("N",$new_srvs)));
print("%srvs = (\n".join("\n",map{"\t$_ => '$srvs{$_}',"} sort {$a <=> $b} keys %srvs)."\n);\n");


Название: Re: Объединение биллингов
Отправлено: Efendy от 15 Февраля 2013, 11:59:03
Стока баталий, а между прочим, N+уже успешно оттестировался на сети 2000 человек - полмесяца полет нормальный. Может усилия по объединению двух биллингов сконвертировать в "а как нам 2 биллинга перенсти в Н+"?

P.S. Ну ведь все равно рано или поздно придется это сделать? Думаете все таки успеть раньше продать сеть чем наступит этот кошмарный момент?


Название: Re: Объединение биллингов
Отправлено: elite от 15 Февраля 2013, 12:08:25
Стока баталий, а между прочим, N+уже успешно оттестировался на сети 2000 человек - полмесяца полет нормальный. Может усилия по объединению двух биллингов сконвертировать в "а как нам 2 биллинга перенсти в Н+"?

P.S. Ну ведь все равно рано или поздно придется это сделать? Думаете все таки успеть раньше продать сеть чем наступит этот кошмарный момент?
нужно номейк для генерации конфигов дхцп довести до ума, чтобы можно было работать с клиентами, у которых 2 и более ип - и можно переводить


Название: Re: Объединение биллингов
Отправлено: boomer666 от 15 Февраля 2013, 12:20:08
Стока баталий, а между прочим, N+уже успешно оттестировался на сети 2000 человек - полмесяца полет нормальный. Может усилия по объединению двух биллингов сконвертировать в "а как нам 2 биллинга перенсти в Н+"?

P.S. Ну ведь все равно рано или поздно придется это сделать? Думаете все таки успеть раньше продать сеть чем наступит этот кошмарный момент?
для переходы надо дописать скрипты чтобы с nodeny 49.32/50.32 перенести телефоны клиентов и тарифы на nodeny +
скрипты естественно платные.


Название: Re: Объединение биллингов
Отправлено: Efendy от 15 Февраля 2013, 13:10:15
Стока баталий, а между прочим, N+уже успешно оттестировался на сети 2000 человек - полмесяца полет нормальный. Может усилия по объединению двух биллингов сконвертировать в "а как нам 2 биллинга перенсти в Н+"?

P.S. Ну ведь все равно рано или поздно придется это сделать? Думаете все таки успеть раньше продать сеть чем наступит этот кошмарный момент?
нужно номейк для генерации конфигов дхцп довести до ума, чтобы можно было работать с клиентами, у которых 2 и более ип - и можно переводить
номейк сделаю, даже сейчас. Но тока объясни зачем генерить конфиг дхцп? Зачем тебе явно указывать, что у такого ипа должен быть такой мак? Сам дхцп запоминает связки мак-ип по дефолту. Оно не железно, конечно, но и не надо железно. Как я уже говорил в другом топике - важна связка мак-id клиента. Какая разница какой у клиента будет ип? Главное, что мы этот ип зафиксировали в логах.

Несколько маков на учетку - сделать проще простого. Просто удалить одну строчку. Если несколько компов - пусть покупают роутер, всем будет проще. Но, повторюсь, просто удалить строчку и будет поддержка нескольких маков на юзера. Интерфейс добавления мака вручную я сделаю


Название: Re: Объединение биллингов
Отправлено: poxy. от 15 Февраля 2013, 13:16:54
Стока баталий, а между прочим, N+уже успешно оттестировался на сети 2000 человек - полмесяца полет нормальный. Может усилия по объединению двух биллингов сконвертировать в "а как нам 2 биллинга перенсти в Н+"?

P.S. Ну ведь все равно рано или поздно придется это сделать? Думаете все таки успеть раньше продать сеть чем наступит этот кошмарный момент?
нужно номейк для генерации конфигов дхцп довести до ума, чтобы можно было работать с клиентами, у которых 2 и более ип - и можно переводить

Я тоже жду только модуль dhcp, тк вся сеть на нем работает.


Название: Re: Объединение биллингов
Отправлено: Efendy от 15 Февраля 2013, 13:34:49
Стока баталий, а между прочим, N+уже успешно оттестировался на сети 2000 человек - полмесяца полет нормальный. Может усилия по объединению двух биллингов сконвертировать в "а как нам 2 биллинга перенсти в Н+"?

P.S. Ну ведь все равно рано или поздно придется это сделать? Думаете все таки успеть раньше продать сеть чем наступит этот кошмарный момент?
нужно номейк для генерации конфигов дхцп довести до ума, чтобы можно было работать с клиентами, у которых 2 и более ип - и можно переводить

Я тоже жду только модуль dhcp, тк вся сеть на нем работает.
я могу выпустить, но пока на нем работает всего человек 15 - это пока не показатель. Всю сеть я не буду переводить, поскольку минус такой реализации в том, что авторизация клиента держится значительно дольше его реальной авторизации. Напомню, что авторизатор и радиус каждые 45 секунд посылают keep-alive и по ним понятно, что чел в сети, соединение есть. При дхцп мы такое видим тока если он продлевает аренду адреса. А по сведениям Vitalvas бывали железячки, которые меньше получаса не принимали такой период


Название: Re: Объединение биллингов
Отправлено: poxy. от 15 Февраля 2013, 13:45:08
Ну хотя бы на тест, сейчас все работает nomake+dhcpd.


Название: Re: Объединение биллингов
Отправлено: elite от 15 Февраля 2013, 14:23:26
нужно номейк для генерации конфигов дхцп довести до ума, чтобы можно было работать с клиентами, у которых 2 и более ип - и можно переводить
номейк сделаю, даже сейчас. Но тока объясни зачем генерить конфиг дхцп? Зачем тебе явно указывать, что у такого ипа должен быть такой мак? Сам дхцп запоминает связки мак-ип по дефолту. Оно не железно, конечно, но и не надо железно. Как я уже говорил в другом топике - важна связка мак-id клиента. Какая разница какой у клиента будет ип? Главное, что мы этот ип зафиксировали в логах.

Несколько маков на учетку - сделать проще простого. Просто удалить одну строчку. Если несколько компов - пусть покупают роутер, всем будет проще. Но, повторюсь, просто удалить строчку и будет поддержка нескольких маков на юзера. Интерфейс добавления мака вручную я сделаю
а что делать, если человеку надо выдавать статические реальные ип?
и что делать в ситуации, когда по дхцп выдаем реальные ип? включил человек девайс в сеть, получил ип - авторизовался/не авторизовался, а ип уже занят
имхо надо делать гостевой пул, чтобы человек сначала в нем авторизовывается, а потом уже получает настоящий ип
как такой вариант?


Название: Re: Объединение биллингов
Отправлено: Efendy от 15 Февраля 2013, 15:03:34
Так реальные ипы можно выдавать и через дхцп по дефолту. Оно ж запоминает кому что выдало. Зато появится подстраховка на случай когда ипов не хватит. Ну, в любом случае, модуль создания конфигов я уже выпустил.