forum.bitel.ru http://forum.bitel.ru/ |
|
Универсальный конвертер в БГБ (dialup) http://forum.bitel.ru/viewtopic.php?f=25&t=3529 |
Страница 1 из 1 |
Автор: | snark [ 03 фев 2010, 17:52 ] |
Заголовок сообщения: | Универсальный конвертер в БГБ (dialup) |
Суть такова ... Как то надо было сконвертировать довольно большую базу юзеров из старого (не stasoft-овского!) nibs-а в БГБ, в результате чего и родился этот конвертер. Почему "универсальный"? Потому что чуть поправив код можно конвертировать в БГБ практически все что угодно Хочу предупредить сразу - это писалось и отработало для БГБ версии 4.5, поэтому если Вы решили использовать конвертер для свежеустановленной 4.6 или 5.0 - конвертер не сработает! Выхода 2: либо ставить 4.5, конвертировать и делайть апгрейд, либо править запросы в коде конвертера. Итак, есть БД следующего вида: Код: -- таблица с тарифами CREATE TABLE packets ( gid smallint(5) unsigned NOT NULL auto_increment, # ID тарифа, на его основе # тарифы будут приравнены к тарифам в БГБ -- ... -- tos tinyint(1) NOT NULL default '0', # комбинация двух этих полей do_with_tos tinyint(1) NOT NULL default '1', # отвечает за "пред" и "пост" оплату -- ... -- ) TYPE=MyISAM; -- -------------------------------------------------------- -- таблица с юзерами CREATE TABLE users ( uid smallint(5) unsigned NOT NULL auto_increment, # ID пользователя gid smallint(5) unsigned NOT NULL default '1', # тариф пользователя user varchar(64) NOT NULL default '', # логин пользователя - в БГБ это номер (не id!) договора и алиас в dialup password varchar(64) NOT NULL default '', # пароль - в БГБ это будет пароль на доступ к статистике и пароль логина/алиаса в dialup deposit double(12,6) NOT NULL default '0.000000', # деньги на счету - в БГБ это будет входящий остаток add_date date NOT NULL default '0000-00-00', # дата создания логина - в БГБ это дата начала действия договора -- ... -- ) TYPE=MyISAM; которую надо конвертнуть в БГБ. Для этого в БГБ создаем минимум 2 шаблона для договоров - для "пред" и "пост" оплаты, т.е. с режимами "дебет и "кредит", в которых указываем услуги, тарифы и т.д. и т.п., т.е. делаем все так как будто никакого конвертера нет и в помине, т.к. конвертер сам будет брать юзера из нибса и создавать в БГБ договор на основе шаблона тем самым привязывая услуги, устанавливая тарифы и т.д. ... единственное что не будет делать конвертер - брать название договора из шаблона, т.к. названием договора будет служить логин из нибса. Почему? Нибс - это похаканный rlm_sql для FreeRADIUS, а там конвергенции - ноль, там юзер = логин. Итак, Вы все создали. Что дальше? Дальше надо в БД нибса создать таблицу которая будет служить стоп-краном останавливающим повторную конвертацию: Код: CREATE TABLE IF NOT EXISTS db_convert ( done tinyint(1) unsigned NOT NULL default '0' ) ENGINE=MyISAM; INSERT INTO db_convert VALUES (0); После чего открываете convert.php и в нем:
Замечания? Вопросы? Предложения? Пишите! P.S. Код писался давно (все руки не доходили откоментить и выложить ) и на скорую руку, поэтому особо не судите за то что нет кнопочки "сконвертировать", т.к. писалось для одноразового использования, за то что я что-то забыл упомянуть, т.к. пропросту подзабыл ну или за что-то еще ... |
Автор: | dimOn [ 03 фев 2010, 18:27 ] |
Заголовок сообщения: | Re: Универсальный конвертер в БГБ (dialup) |
Клёво! Но вот у нас таких "универсальных: подправил где надо и пользуй" конвертеров куча Многие из них лежат в вики. Пишется под каждого случая отдельно. Потому что конкретно очень сложно написать универсальное что-то, при этом более-менее функциональное. Пробовали |
Автор: | snark [ 03 фев 2010, 19:05 ] |
Заголовок сообщения: | Re: Универсальный конвертер в БГБ (dialup) |
когда я писал "универсальный", я имел ввиду что он делает всего лишь одно - он может взять из А, положить в Б и все это несложно переделать под себя ... все довольно легко изменить прежде всего благодаря языку (пхп для освоения пороще чем ява будет), а т.к. там еще и либа для работы с БД сама решает что и как в БД ложить, то типизацией человек вообще может не забивать себе голову |
Автор: | Fate [ 11 апр 2010, 16:48 ] |
Заголовок сообщения: | Re: Универсальный конвертер в БГБ (dialup) |
dimOn писал(а): Клёво! Но вот у нас таких "универсальных: подправил где надо и пользуй" конвертеров куча Многие из них лежат в вики. Пишется под каждого случая отдельно. Потому что конкретно очень сложно написать универсальное что-то, при этом более-менее функциональное. Пробовали А можно эту кучу посмотреть? На вики для 5.0 только один конвертер, и то в нем нет переноса баланса пользователя... |
Автор: | dimOn [ 12 апр 2010, 12:35 ] |
Заголовок сообщения: | Re: Универсальный конвертер в БГБ (dialup) |
Fate писал(а): А можно эту кучу посмотреть? На вики для 5.0 только один конвертер, и то в нем нет переноса баланса пользователя... Ну так доделайте Перенос баланса - не самая сложная вещь.Про "кучу" было упомянуто не в том смысле, что их много универсальных под все случаи и для каждого формата данных, а к тому, что под каждого клиента пишутся отдельные. Посмотреть скорее нельзя, потому что много смысла для вас не будет никакого, а выкладывать всё - это будет путано как-то. |
Автор: | nolka4 [ 12 апр 2010, 16:20 ] |
Заголовок сообщения: | Re: Универсальный конвертер в БГБ (dialup) |
написали бы скрипт для переноса баланса из 4.5 в 4.6 |
Автор: | stark [ 12 апр 2010, 16:24 ] |
Заголовок сообщения: | Re: Универсальный конвертер в БГБ (dialup) |
nolka4 писал(а): написали бы скрипт для переноса баланса из 4.5 в 4.6 написали что ? версия 4.5 и 4.6 обращается у одной и той же таблице . |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |