BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 мар 2024, 11:34

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 16 ноя 2017, 13:33 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
собственно есть необходимость при переключении со статуса "в подключении" на "активен" менять лимит, раньше как то работало нахождение статуса с которого происходит изменение, сейчас почему то нет. События пробовал оба, как "Статус договора изменен", так и "Изменение статуса договора", результат 1, всегда определяется только тот статус на который меняется.
Код:
  Сервер: вер. 7.0.1254 / 26.07.2017 15:23:24
    os: Linux; java: Java HotSpot(TM) Server VM, v.1.8.0_152

Код:
@Override
    public void onEvent(ContractStatusChangingEvent event, Setup setup, ConnectionSet set)
            throws Exception {
        logger.info("Поехали");
        logger.info("Старый статус");
        logger.info("origStatusStatus = " + event.getOriginalStatus().getStatus());
        logger.info("origStatusId = " + event.getOriginalStatus().getId());
        logger.info("origStatusDateFrom = " + event.getOriginalStatus().getDateFrom());
        logger.info("origStatusDateTo = " + event.getOriginalStatus().getDateTo());
        logger.info("origStatusComment = " + event.getOriginalStatus().getComment());
        logger.info("Новый статус");
        logger.info("newStatusStatus = " + event.getStatus().getStatus());
        logger.info("newStatusId = " + event.getStatus().getId());
        logger.info("newStatusDateFrom = " + event.getStatus().getDateFrom());
        logger.info("newStatusDateTo = " + event.getStatus().getDateTo());
        logger.info("newStatusComment = " + event.getStatus().getComment());
    }

Код:
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - Поехали
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - Старый статус
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - origStatusStatus = 0
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - origStatusId = 0
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - origStatusDateFrom = Wed Nov 01 00:00:00 MSK 2017
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - origStatusDateTo = null
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - origStatusComment = Статус 01.11.2017
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - Новый статус
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - newStatusStatus = 0
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - newStatusId = 0
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - newStatusDateFrom = Wed Nov 01 00:00:00 MSK 2017
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - newStatusDateTo = null
11-16/10:18:50  INFO [dyn-clss-evnt-lstnr-p-6-t-21] TestSkyb - newStatusComment = Статус 01.11.2017

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
или так
Код:
import org.apache.log4j.Logger;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.limit.common.service.ContractLimitService;
import ru.bitel.bgbilling.kernel.event.events.ContractStatusChangingEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

import java.math.BigDecimal;
import java.sql.Connection;

/*
*Изменение лимита при активации абонента
*/

public class TestSkyb
        extends EventScriptBase<ContractStatusChangingEvent> {

    private static Logger logger = Logger.getLogger(TestSkyb.class);

    @Override
    public void onEvent(ContractStatusChangingEvent event, Setup setup, ConnectionSet set)
            throws Exception {
        logger.info("Поехали");
        Connection con = set.getConnection();
        int contractId = event.getContractId();
        ServerContext context = ServerContext.get();
        ContractLimitService contractLimitService = context.getService(ContractLimitService.class, 0);
        logger.info("origStatus = " + event.getOriginalStatus().getStatus());
        logger.info("newStatus = " + event.getStatus().getId());
        if(event.getOriginalStatus().getStatus() == 5 && event.getStatus().getId() == 0 ){
            logger.info("Меняем лимит");
            contractLimitService.updateContractLimitPeriod(contractId, new BigDecimal(-1000), 5, "Смена лимита");
        }
    }
}

новый и старый статусы одинаковые
Код:
Поехали
origStatus = 0
newStatus = 0

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
OriginalStatus это не "статус который был" и никогда таковым не был, это статус который был до изменения основного статуса. Написано же в явадоке
Цитата:
Он будет равен (не ссылочно, а значением) статусу {@link #getStatus()}, если не использовалась никакая логика смены статусов скриптом или там не менялся приходящий статус.

_________________
I'm clever. I've got a computer.


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
старый статус получить в событии на данный момент можно только из БД, и только в синхронном событии, очевидно (т.е. в ContractStatusChangingEvent да)

_________________
I'm clever. I've got a computer.


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
я уже думал почему бы не передавать и "старый статус" в события, но потому что, строго говоря, нет никакого "старого статуса" т.к. эти события срабатывают и не изменения задним числом и будущим числом, когда текущий статус вообще не затрагивается даже, а срабатывает перетирание какое-то и несколько старых промежутков статуса например перетираются новым. что именно здесь будет "старым статусом"?

_________________
I'm clever. I've got a computer.


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

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


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

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


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

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