BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
СообщениеДобавлено: 30 июл 2015, 20:18 
Не в сети
Клиент

Зарегистрирован: 30 янв 2013, 11:27
Сообщения: 305
Карма: 0
Господа!
На скриншоте представлен договор, по которому мы временно понизили лимит.
При попытке авторизоваться текущий остаток на счете почему то сравнивается с лимитом до понижения
Код:
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetApplication - inetServ[id=3685] balance is out of limit: -240.97 [-200.00]

И отработал механизм RejectToAcept
Код:
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Return code=0

И выдался IP из подсети 10.254.X.X !!!
Код:
Framed-IP-Address=10.254.31.54


У нас для договоров с нормальным балансом выдается из подсети 10.0.X.X
а должникам посредством RejectToAcept из подсети 10.254.X.X

Код:
Packet type: Access-Request
Identifier: 7
Authenticator: {0D CF A2 3E 91 A8 D4 04 57 37 94 12 2C DB 4C B3}
Attributes:
  User-Name=0006001fce109dc5:000e00bf000801515445431403043903
  NAS-Port-Id=3/3 vlan-id 191 clips 378593
  NAS-Identifier=RedBack
  User-Password=Redback
  NAS-IP-Address=172.16.98.7
  NAS-Port=50528256
  Service-Type=5
  Calling-Station-Id=d4ca6d84fb75
  NAS-Port-Type=5
  Platform-Type=6
  Medium-Type=11
  Agent-Remote-Id={00 06 00 1F CE 10 9D C5}
  UNKNOWN[2352-202]={3D 3D 07 01 D4 CA 6D 84 FB 75}
  UNKNOWN[2352-202]={0C 0C 09 46 6F 78 32 30 31 31 54 53}
  Agent-Circuit-Id={00 0E 00 BF 00 08 01 51 54 45 43 14 03 04 39 03}
  OS-Version=12.1.1.10
  Mac-Addr=d4-ca-6d-84-fb-75
  NAS-Real-Port=855638207
  UNKNOWN[3561--1]={02 0A 00 06 00 1F CE 10 9D C5}
  UNKNOWN[3561--1]={01 12 00 0E 00 BF 00 08 01 51 54 45 43 14 03 04 39 03}
Common options: {agentRemoteId=14030439, interfaceId=3, deviceState=1}
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetNas - Found agentDevice:474
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetNas - Search serv on deviceId=474; interfaceId=3
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - [username=0006001fce109dc5:000e00bf000801515445431403043903] Authenticated as inetServId:3685
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetApplication - TariffOptionMap: {}
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetApplication - inetServ[id=3685] balance is out of limit: -240.97 [-200.00]
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Write new waiting connection to DB
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - New connection id=765165
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Return code=0
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetConnectionKeyMap - Put auth accept 10.254.31.54
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetDhcpHelperProcessor - Put auth accept 2:474:3:D4CA6D84FB75 10.254.31.54
07-30/16:53:19  INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Accept
Identifier: 7
Authenticator: {}
Attributes:
  Reply-Message=12
  Framed-IP-Address=10.254.31.54
  DHCP-Max-Leases=1
  Service-Name:1=RSE-SVC-EXT
  Service-Options:1=1
  Service-Parameter:1=Rate=1000 Burst=250000
  IP-Interface-Name=dhcpclients

Process time auth: 959


Лимит понижался вызовом вот этой функции по SOAP
Код:
public String my_setLimitPeriod(int cid, BigDecimal limit, int period)
{
    try
      {
              Connection conn = getConnection();
              ContractManager cm = new ContractManager(conn);     
              Contract c = cm.getContractById(cid);
              BigDecimal current_limit = c.getBalanceLimit();
              BigDecimal new_limit = current_limit.add(limit);

              LimitManager limitManager = new LimitManager(conn);
              limitManager.updateContractLimit(0, new_limit, cid, "Понижение лимита (обещанный платеж)", String.valueOf(period)); //меняем лимит:
              //добавляем задание на возвращение лимита:
              Calendar calendar = java.util.Calendar.getInstance(java.util.TimeZone.getDefault(), java.util.Locale.getDefault());
              Date closeDate = calendar.getTime();

              calendar.add(6, period);
              LimitChangeTask task = new LimitChangeTask();
              task.setContractId(cid);
              task.setDate(calendar);
              task.setUserId(0);
              task.setSubSumm(limit);
              limitManager.addMoveTask(task);
             
              Payment fakePayment = new Payment();//гененрируем событие изменения лимита:
              fakePayment.setContractID(cid);
              fakePayment.setPaymentTypeID(-1);
              fakePayment.setDate(new Date());
              fakePayment.setUserID(-1);
              EventProcessor.getInstance().publish( new PaymentEvent(0, fakePayment));

              ContractStatus status = new ContractStatus();
              status.setContractId( cid );
             status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
              status.setDateFrom( closeDate );
              status.setComment( "Установлено принудительно при понижении лимита (обещанный платеж)" );       
              ContractStatusManager statusManager = new ContractStatusManager( conn );
              statusManager.changeStatus( status.clone(), User.USER_SERVER );   
              return "Ok!";
             }
            catch (Exception ex)
            {
              ex.printStackTrace();
              String errorStr = "Error! "+ ex.toString();
              return errorStr;
            }
}


Код:
 bill вер. 6.0 сборка 353 от 11.06.2015 16:20:02
  card вер. 6.0 сборка 230 от 09.02.2015 18:40:44
  inet вер. 6.0 сборка 1504 от 12.06.2015 13:31:25


Вложения:
limit.jpg
limit.jpg [ 320.85 КБ | Просмотров: 5167 ]


Последний раз редактировалось Угрюмов Роман 03 авг 2015, 19:30, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2015, 13:51 
Не в сети
Клиент

Зарегистрирован: 30 янв 2013, 11:27
Сообщения: 305
Карма: 0
Как оповестить Радиус сервер что произошло на договоре понижение лимита? Ночью у меня работало два задания: Восстановление лимитов и начисление Npay абонплат. После того как эти задания отработали в 3 часа утра тестовый договор успешно авторизовался.
Код:
07-31/03:10:35  INFO [rdsLstnr-p-9-t-2] InetApplication - inetServ[id=3685] balance ok: -249.00 [-2200.00]

и выдал IP из нормальной подсети
Код:
  Framed-IP-Address=10.0.82.160


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2015, 13:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Код:
ServerContext context = ServerContext.get();
 context.publishAfterCommit(new SystemLimitChangedEvent(cid, limit));
            context.publishAfterCommit(new LimitChangedEvent(cid, limit));

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2015, 19:29 
Не в сети
Клиент

Зарегистрирован: 30 янв 2013, 11:27
Сообщения: 305
Карма: 0
Заработало!!! Phricke, но могли бы вы в личку кинуть номер сберовкой карты, я вам хоть на пиво переведу в благодарность! Спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2015, 19:35 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Эм...
Да я ничего и не сделал :)
Не стоит благодарности, тем более за такую мелочь.
Пользуйтесь.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2015, 19:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Хотя можете в карму плюс поставить :D

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2015, 19:49 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
И возможно как совет на будущее.
Открываете клиент в дебаге.
Выполняете необходимое вам действие.
Открываете лог. Находите экшн который вызвался.
Распаковываете из папки lib/app нужное вам (в данном случае это kernel.jar) обычным архиватором.

Ищите в нем по названию экшна.
В вашем случае это ActionUpdateContractLimit
Открываете любым удобным декомпилятором (я пользуюсь jd gui и встроенным в IDEA) и смотрите :)

Изображение

Да и в любом случае удобно смотреть когда пишешь что-то свое )))

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


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

Зарегистрирован: 30 янв 2013, 11:27
Сообщения: 305
Карма: 0
Спасибо! Сейчас буду учится!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2015, 16:03 
Не в сети

Зарегистрирован: 31 дек 2009, 14:40
Сообщения: 46
Карма: 0
Phricker писал(а):
И возможно как совет на будущее.
Открываете клиент в дебаге.
Выполняете необходимое вам действие.
Открываете лог. Находите экшн который вызвался.
Распаковываете из папки lib/app нужное вам (в данном случае это kernel.jar) обычным архиватором.

Ищите в нем по названию экшна.
В вашем случае это ActionUpdateContractLimit
Открываете любым удобным декомпилятором (я пользуюсь jd gui и встроенным в IDEA) и смотрите :)



Дабы не плодить новую тему, задам вопрос здесь.
А не подскажите , уважаемый Phricker, как посмотреть код экшена UpdateContractLimitManage ?
Задача такова, что хочу посмотреть, где кодится блокировка/разблокировка возможности понижения лимита для клиента.

Вот часть дебага:
Код:
http://192.168.0.6:8080/bgbilling/executer?id=6972&module=contract&value=1&action=UpdateContractLimitManage&BGBillingSecret=ZOCOreZbBPnitkVCkM7101Bg&cid=6972&
[ length = 106 ] xml = <?xml version="1.0" encoding="windows-1251"?><data secret="819B586C7DF3C4DC50B210E8DB2301A0" status="ok"/>
http://192.168.0.6:8080/bgbilling/executer?module=contract&order=0&pageSize=25&action=ContractLimitManage&BGBillingSecret=eAKXvFk73oajF9A8ZjCeyYMb&cid=6972&pageIndex=1&
[ length = 909 ] xml = <?xml version="1.0" encoding="windows-1251"?><data secret="60D9709D705F63F76B515564E65F967A" status="ok"><table allRecord="9" mode="1" pageCount="1" pageIndex="1" pageSize="25" recordCount="9"><data><row date="06.09.2015 17:59:02" user="admin [ admin ]" value="заблокировано"/><row date="06.09.2015 17:50:53" user="admin [ admin ]" value="разблокировано"/><row date="06.09.2015 17:48:31" user="admin [ admin ]" value="заблокировано"/><row date="06.09.2015 17:44:07" user="admin [ admin ]" value="разблокировано"/><row date="06.09.2015 17:43:42" user="admin [ admin ]" value="заблокировано"/><row date="28.06.2015 16:53:22" user="admin [ admin ]" value="разблокировано"/><row date="24.06.2015 19:10:29" user="Сервер" value="заблокировано"/><row date="18.01.2015 09:59:53" user="admin [ admin ]" value="разблокировано"/><row date="04.01.2015 17:58:51" user="Сервер" value="заблокировано"/></data></table></data>



Какой jar нужно посмотреть, чтоб увидеть код этого экшена ?
Что-то в kernel.jar такого класса не нашел...

пс С джавой на вы, поэтому прошу сильно не издеваться )
сервер 6.0, сборка 1381


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2015, 16:22 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
kernel.jar распаковываете как обычный архив. и поиском в нем
\kernel\bitel\billing\server\contract\action\ActionUpdateContractLimitManage.class

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2015, 16:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Еще можно смотреть прямо в IDE (F4 в Intellij idea. В Eclipse помоему плагин был нужен), но мне было удобнее смотреть в jd gui, т.к. я поиск делаю в TC.
Изображение

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2015, 16:49 
Не в сети

Зарегистрирован: 31 дек 2009, 14:40
Сообщения: 46
Карма: 0
упс, экшен не такой искал )
Сейчас нашел.
Phricker, благодарствую!


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

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


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

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


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

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