BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 18:05

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




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 25 янв 2008, 15:35 
Не в сети

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Администратор писал(а):
Вопрос не понятен, уточните.

API которые возвратят из BGBS данные о алиасе и пароле в модуле воип


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Где нужно получить логин и пароль? На странице регистрации логина?


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Администратор писал(а):
Где нужно получить логин и пароль? На странице регистрации логина?

Есть скрипт который воплняется после создания договора через веб ( регистрация пользователя) задача данного скрипта внести в базу мускуля значения равные алиасу (номеру) и паролю из модуля voip
тоесть типа
Код:
sql = dbconn.prepareStatement("INSERT INTO `sip_buddies`   VALUES  (NULL, '"Логин с биллинга"', 'dynamic', 'yes', 'friend', NULL, NULL, NULL, 'Логин с биллинга', 'yes', 'yes', 'def_users', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'пасс с билинга', NULL, 'all', 'ulaw;alaw', 'NULL', 'NULL', 5060, NULL, 1195205494, '"Логин с биллинга"')");

вот за место ( Логин с биллинга ) хотелось бы вставить фунцию API которая будет отдавать эти занчения.. типа " + User.getID(); + "
пробовал User.getLogin() User.getPassword() скрипт выполняется с ошибками может чего то я делаю не так ? вот и прошу подсказать какие функции возвратят данные значени что бы из засунуть в мускульный запрос


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
UP ну так что подскажете ?


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Можно только запросом вытащить:

Код:
cid=event.getContractID();
mid = коду модуля;

login = "";
pswd = "";

query =
  "SELECT login.pswd, alias.login_alias " +
  "FROM user_login_" + mid + " AS login " +
  "LEFT JOIN user_alias_" + mid + " AS alias ON login.id=alias.login_id " +
  "WHERE login.cid=?";
 
ps = con.prepareStatement( query );
ps.setInt( 1, cid );
rs = ps.executeQuery();
if( rs.next )
{
   pswd = rs.getString( 1 );
   login = rs.getString( 2 );
}


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Все спасибо заработало только с IF не пашет)

Код:
query = "SELECT login.pswd, alias.login_alias FROM user_login_"+ mid+" AS login LEFT JOIN user_alias_"+ mid+" AS alias ON login.id=alias.login_id WHERE login.cid= "+ cid +" ";
ps = billcon.prepareStatement( query );
rs = ps.executeQuery();
while (rs.next())
{
pswd  = rs.getString(1);
login  = rs.getInt(2);
}


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Что такое "IF"?


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Администратор писал(а):
Что такое "IF"?

Код:
if( rs.next )


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
ХМ все замечательно но есть но ))
при добавлении одного логина все работает
а если засовывать в этот договор есче логины то начинаются проблемы


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Вы разве не на скрипт создания договора через Web это вешали? Там же вроде только один логин создается..


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Администратор писал(а):
Вы разве не на скрипт создания договора через Web это вешали? Там же вроде только один логин создается..

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


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Вообще запрос вытаскивает все логин+алиасы договора.. Или у вас выдаеит только первый?


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
если брать за основу пример выдерки логонов тот что вы дали то работает только один логин тк
Код:
ps.setInt( 1, cid );

если делать так
Код:
ps = billcon.prepareStatement( query );
rs = ps.executeQuery();
if (rs.next())
{
pswd  = rs.getString(1);
login  = rs.getInt(2);
}

то вставляются почему то толька первые два, на вставку ругается тапа уже есть такое и ругается на логин последнего, пробовал в запрос на встаку добовлять ON DUPLICATE KEY UPDATE ругань пропадает, но обновляется(встовляется) толька тоже первый и второй


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
anred писал(а):
если брать за основу пример выдерки логонов тот что вы дали то работает только один логин тк
Код:
ps.setInt( 1, cid );

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


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Задача такая зашел с клиента в биллинг открыл договор и внес туда 3-7 договоров и что бы они обработались скриптом и внеслись данные этих договоров в другую базу!
к примеру
901
902
903
904
905
==
далее происходит с первыми двумя логинами ок а вот с третим и так далее ругань
Код:
Method Invocation sql.executecom.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '902' for key 2


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Вы можете весь код целиком написать ?

Может я не совем понимаю, что вы хотите, но вам нужно делать нечто подобное(я просто собрал два ваших куска кода вместе) :

Код:
cid=event.getContractID();
mid = коду модуля;

login = "";
pswd = "";

query =
  "SELECT login.pswd, alias.login_alias " +
  "FROM user_login_" + mid + " AS login " +
  "LEFT JOIN user_alias_" + mid + " AS alias ON login.id=alias.login_id " +
  "WHERE login.cid=?";
 


ps = con.prepareStatement( query );
ps.setInt( 1, cid );
rs = ps.executeQuery();

//это новая бд
String driver = "com.mysql.jdbc.Driver";
Class.forName( driver );
Connection dbconn;

PreparedStatement sql;
dbconn = DriverManager.getConnection("jdbc:mysql://aster_ip/ast_test?","login_db","pass_db");
newPs = dbconn.prepareStatement("INSERT INTO `sip_buddies`   VALUES  (NULL, ?, 'dynamic', 'yes', 'friend', NULL, NULL, NULL, ?, 'yes', 'yes', 'def_users', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ?, NULL, 'all', 'ulaw;alaw', 'NULL', 'NULL', 5060, NULL, 1195205494, ?)");


//перебираем все алиасы текущего договора
while( rs.next )
{
   pswd = rs.getString( 1 );
   login = rs.getString( 2 );
   //вставляем вновую бд (по порядку, каждый вопросик заменяется парметром)

  newPs.setString(1, login);
  newPs.setString(2, login);
  newPs.setString(3, pswd);
  newPs.setString(4, login);
  newPs..execute();

}
dbconn.close();


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


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Код:
import java.sql.*;
import java.util.*;
import java.io.*;
import bitel.billing.server.admin.bean.*;
import bitel.billing.server.admin.bean.User;
String driver = "com.mysql.jdbc.Driver";
Class.forName( driver );
Connection billcon;
PreparedStatement sql;
billcon = DriverManager.getConnection("jdbc:mysql://82.208.*.*/bgbilling?","root","*");
cid=event.getContractID();
mid = 1;
login = "";
pswd = "";
query = "SELECT login.pswd, alias.login_alias FROM user_login_"+ mid+" AS login LEFT JOIN user_alias_"+ mid+" AS alias ON login.id=alias.login_id WHERE login.cid=?";
ps = billcon.prepareStatement( query );
ps.setInt( 1, cid );
rs = ps.executeQuery();
while (rs.next())
{
pswd  = rs.getString(1);
login  = rs.getString(2);

String driver = "com.mysql.jdbc.Driver";
Class.forName( driver );
Connection dbconn;
PreparedStatement sql;
dbconn = DriverManager.getConnection("jdbc:mysql://82.208.*.*/ast_test?","root","*");
sql = dbconn.prepareStatement("INSERT INTO `sip_buddies` VALUES (NULL, '"+ login +"', 'dynamic', 'yes', 'friend', NULL, NULL, NULL, '"+ login +"', 'yes', 'yes', 'office', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '"+ pswd +"', NULL, 'all', 'ulaw;alaw', 'sip:200@192.168.100.13:5060', '192.168.100.13', 5060, NULL, 1195205494, '"+ login +"') ");
sql.executeQuery();
dbconn.close();
}

что то типа на этом в данный момент остоновился решился все в цикл загнать только результат тот же


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Сделайте так.

Код:
import java.sql.*;
import java.util.*;
import java.io.*;
import bitel.billing.server.admin.bean.*;
import bitel.billing.server.admin.bean.User;
//
driver = "com.mysql.jdbc.Driver";
Class.forName( driver );
billcon = DriverManager.getConnection("jdbc:mysql://82.208.*.*/bgbilling?","root","*");
//
cid=event.getContractID();
mid = 1;
login = "";
pswd = "";
query = "SELECT login.pswd, alias.login_alias FROM user_login_"+ mid+" AS login LEFT JOIN user_alias_"+ mid+" AS alias ON login.id=alias.login_id WHERE login.cid=?";
ps = billcon.prepareStatement( query );
ps.setInt( 1, cid );
rs = ps.executeQuery();
while (rs.next())
{
pswd  = rs.getString(1);
login  = rs.getString(2);

sql = "INSERT INTO `sip_buddies` VALUES (NULL, '"+ login +"', 'dynamic', 'yes', 'friend', NULL, NULL, NULL, '"+ login +"', 'yes', 'yes', 'office', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '"+ pswd +"', NULL, 'all', 'ulaw;alaw', 'sip:200@192.168.100.13:5060', '192.168.100.13', 5060, NULL, 1195205494, '"+ login +"') ";

print( sql + "\n" );

//billcon.createStatement().executeQuery( sql );
}

billcon.close();


А потом просто выполните по очереди распечатанные запросы и проанализируйте в чем ошибка. Как я понимаю, проблема возникает на этапе вставки данных в целевую базу, т.е. скрипт-то сам и биллинг не при чем тут..


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
а вопрос такой выдерать первым запросом из базы по login_id ? просто скармливать login_id в первый зарос и в итоге меньше проблем редактируется все же только один единственный и тогда вставлять его тоже один и не перебирать все имеющиеся


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Вы по какому событию и что все-таки делать хотите?


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

Зарегистрирован: 30 ноя 2006, 02:00
Сообщения: 186
Откуда: N.Novgorod
Карма: 12
Изменение\Добавление логина (IP Телефония)


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

Зарегистрирован: 02 дек 2006, 17:16
Сообщения: 97
Карма: 0
А не проще через радиус со * работать?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2

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


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

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


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

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