BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 июн 2025, 03:50

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 05 дек 2008, 18:27 
Не в сети

Зарегистрирован: 29 окт 2008, 18:03
Сообщения: 212
Карма: 0
сабж.
есть ли возможность у новых договоров генерировать одинаковый пасс на стату и на инет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2008, 17:43 
Не в сети

Зарегистрирован: 29 окт 2008, 18:03
Сообщения: 212
Карма: 0
up


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 дек 2008, 18:15 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
m2pod писал(а):
есть ли возможность у новых договоров генерировать одинаковый пасс на стату и на инет?

т.е. вбивать пароль для dialup логина == паролю на статистику или наоборот?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2008, 18:38 
Не в сети

Зарегистрирован: 29 окт 2008, 18:03
Сообщения: 212
Карма: 0
вобщем то без разницы, что одному присвоить второй, что второму первый, надо сделать так чтобы они были одинаковыми при создании договора


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2008, 19:04 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
m2pod писал(а):
вобщем то без разницы, что одному присвоить второй, что второму первый, надо сделать так чтобы они были одинаковыми при создании договора

сделать скрипт на событие "договор создан" в котором написать что-то в духе:
Код:
import java.util.*;
import java.sql.*;

DIALUP_MID = 1;

cid = event.getContractID();

query = "UPDATE contract SET pswd = (SELECT pswd FROM user_login_" + DIALUP_MID + " WHERE cid = ?) WHERE id = ?";
ps = con.prepareStatement(query);
ps.setInt(1, cid);
ps.setInt(2, id);
ps.executeUpdate();
и получите желаемое ;)

внимание! код не проверен! но по идее должен работать ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 дек 2008, 17:00 
Не в сети

Зарегистрирован: 29 окт 2008, 18:03
Сообщения: 212
Карма: 0
Sourced file: inline evaluation of: ``import java.util.*; import java.sql.*; DIALUP_MID = 1; cid = event.get . . . '' : Undefined argument: id Sourced file: inline evaluation of: ``import java.util.*; import java.sql.*; DIALUP_MID = 1; cid = event.get . . . '' : Undefined argument: id : at Line: 11 : in file: inline evaluation of: ``import java.util.*; import java.sql.*; DIALUP_MID = 1; cid = event.get . . . '' : ( 2 , id )

at bsh.BSHArguments.getArguments(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:158)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:247)
at bitel.billing.server.script.bean.event.EventProcessor.run(EventProcessor.java:163)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 дек 2008, 17:20 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
упс! :) в предыдущем сообщении я просто не дописал одну букву "с", т.е. написал:
Код:
ps.setInt(2, id);
а надо было:
Код:
ps.setInt(2, cid);
надеюсь Вы меня простите за очепятку ... вот абсолютно рабочий вариант:
Код:
import java.util.*;
import java.sql.*;

RADIUS_MID = 1;

cid = event.getContractID();

query = "INSERT INTO user_alias_" + RADIUS_MID + " SELECT ul.id, c.title FROM contract c LEFT JOIN user_login_" + RADIUS_MID + " ul ON (ul.cid = c.id) WHERE c.id = ?";
ps = con.prepareStatement(query);
ps.setInt(1, cid);
ps.executeUpdate();

query = "UPDATE contract SET pswd = (SELECT pswd FROM user_login_" + RADIUS_MID + " WHERE cid = ?) WHERE id = ?";
ps = con.prepareStatement(query);
ps.setInt(1, cid);
ps.setInt(2, cid);
ps.executeUpdate();
1-й запрос добавляет алиас == названию договора когда логин создается сразу при создании договора, из шаблона
2-й запрос делает пароль на статистику == паролю логина/алиаса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 дек 2008, 17:28 
Не в сети

Зарегистрирован: 29 окт 2008, 18:03
Сообщения: 212
Карма: 0
создание алиаса у нас делается так
import bitel.billing.server.call.bean.Login;
import bitel.billing.server.radius.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.event.*;
import java.util.*;

cid = event.getContractID();
cm = new ContractManager( con );


contract = cm.getContractByID( cid );

if( contract == null )
{
error( "Contract not found!" );
return;
}
// Ищем пароль пользователя
title = contract.getTitle();

rs = con.prepareStatement( "SELECT id FROM user_login_1 WHERE cid=?" );
rs.setInt( 1, cid );
rs = rs.executeQuery();
rs.first();
id = rs.getInt(1);

//Обновление комментария
com = con.prepareStatement("UPDATE contract SET comment = 'Новый' WHERE id=?");
com.setInt(1,cid);
print(cid);
com.executeUpdate();
//Комментарий

insert = con.prepareStatement( "INSERT user_alias_1 (login_id, login_alias) VALUES (?,?)" );
insert.setInt(1, id );
insert.setString(2, "u"+title);
insert.executeUpdate();

в коментарий дописывается "Новый" чтобы знать какие договора весят на стартовых тарифах.

а за скриптик спасибо, работает :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 дек 2008, 17:41 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
To snark
Допишите, если не трудно, пример в раздел:
http://wiki.bgbilling.ru/index.php/%D0% ... 1.80.D0.B0
Как пример обработки события "Договор создан" вполне себе хороший и обучающий )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 дек 2008, 17:47 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
m2pod писал(а):
создание алиаса у нас делается так

а теперь сравните с моим ... у меня всего один запрос в БД делается ;)

2 Администратор
обязательно! сейчас вот с микротиком разберусь и засяду писать статьи ;)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

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


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

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