forum.bitel.ru http://forum.bitel.ru/ |
|
Смена ТП с подписками через ЛК http://forum.bitel.ru/viewtopic.php?f=60&t=11715 |
Страница 2 из 2 |
Автор: | Bazhutyan [ 29 июн 2016, 03:23 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
skn писал(а): мне как бы не понятна задача запрета смены тарифа при недостатке денег т.е. на новый тариф нельзя перейти если не хватает денег, а если и на текущем тариф не хватает, что делать? и если на текущем можно с недостатком денег на балансе существовать, почему нельзя также и на новый перейти и там остаться с недостатком... Ну такой пример - 100 р. на балансе и на текущем тарифе абонент может продолжать работать. Если перейдёт на новый, на котором подписка 200р стОит, то уйдёт в минус и работать не сможет. |
Автор: | skn [ 29 июн 2016, 12:07 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Bazhutyan писал(а): skn писал(а): мне как бы не понятна задача запрета смены тарифа при недостатке денег т.е. на новый тариф нельзя перейти если не хватает денег, а если и на текущем тариф не хватает, что делать? и если на текущем можно с недостатком денег на балансе существовать, почему нельзя также и на новый перейти и там остаться с недостатком... Ну такой пример - 100 р. на балансе и на текущем тарифе абонент может продолжать работать. Если перейдёт на новый, на котором подписка 200р стОит, то уйдёт в минус и работать не сможет. ну в минус не уйдет, просто подписка не активируется, а если у него и на текущую не хватает тогда, что клиенту делать? |
Автор: | Bazhutyan [ 17 авг 2016, 14:06 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Нужен совет. На текущий момент сделал такую логику: На договорах заранее добавлены все возможные для использования подписки. В ТП присутствует только одна, используемая на данном тарифе. Клиент производит смену ТП в ЛК. По событию смены ТП из ЛК создаю новый учётный период для подписки. Учётный период создаётся со временем начала действия ТП, которое клиент указал в ЛК, т.е. учётный период создаётся в будущем. До наступления времени начала действия ТП, клиент может отменить переход на ТП в ЛК. Что можно в этом случае сделать с учётным периодом подписки? Отменить нельзя. Удалить нельзя (или можно через sql, но неизвестно в какие проблемы это выльется). Наверное было бы правильным не создавать учётный период в будущем, но тогда к какому событию можно привязать создание учётного периода подписки? |
Автор: | skn [ 17 авг 2016, 15:38 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
так как ТП активируются с точностью до суток то может просто сделать скрипт который будет запускаться по планировщику каждый день в 00 часов и будет создавать учетные периоды для нужных подписок |
Автор: | Bazhutyan [ 18 авг 2016, 03:24 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
skn писал(а): так как ТП активируются с точностью до суток то может просто сделать скрипт который будет запускаться по планировщику каждый день в 00 часов и будет создавать учетные периоды для нужных подписок Да, похоже что при создании подписки в будущем ломается какая-то логика модуля, потому-что в 00 часов приходит событие окончания подписки вместо события активации. А возможно-ли при описанной мной схеме (когда все подписки заведены на договоре, а в ТП только одна из них), что активацию учётного периода надо будет делать только один единственный раз, когда клиент впервые переходит на договор с подписками? На подписке стоит автопродление. Если в прошлом уже был активирован учётный период, клиент через какое-то время опять перешел на другой ТП с другой подпиской или вообще на ТП без подписок, а затем опять же через какое-то время вернулся на ТП с подпиской у которой уже был в прошлом активирован учётный период, то из-за автопродления новый учётный период создастся автоматически же? |
Автор: | skn [ 18 авг 2016, 10:41 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
автопродление происходит только по событию, в текущей реализации, по приходу платежа и по окончанию предыдущего учетного периода, можно добавить событие "автопродление подписок", а это событие кидать из какого нибудь скрипта в нужные моменты |
Автор: | Bazhutyan [ 25 авг 2016, 07:20 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Помогите разобраться с событиями. На договоре есть подписка, денег на продление хватает. Происходит в 00 часов окончание подписки и тут же её продление. Вот что вижу server.mq.log: Код: 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014 08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedTopicEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013011 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013011 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.api.server.event.InetAccountingPeriodModifiedEvent] moduleId: 13; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013018 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014 08-25/00:00:13 INFO [event-proc-p-2-t-1] BalanceEventProcessor - Process event cid:21922; event:Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014 08-25/00:00:13 INFO [event-proc-p-2-t-1] Module - Sending state disable to inetServ[id: 1] 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 13; pluginId: no; cid: 21922; scid: -1; userId: 0; deviceId: 2; inetServId: 1; connectionId: 0; state: 0; accessCod 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408 08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985 08-25/00:00:14 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedTopicEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985 08-25/00:00:14 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985 08-25/00:00:14 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985 08-25/00:00:14 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 08-25/00:00:14 DEBUG [ActiveMQ Session Task] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985 08-25/00:00:14 INFO [ActiveMQ Session Task] ContractRuntimeMap - Taked event: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985 08-25/00:00:16 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040016237 Вот что вижу в scripts.log: Код: 08-25/00:00:13 INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004 on cid=21922 subscriptionId=1 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[74]: set Close contract status on cid=21922 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[93]: lastRegistrationPeriod=24.08.2016 00:00:13 - 25.08.2016 00:00:13 fromDate=2016-08-24 00:00:13.0 toDate=2016-08-25 00:00:13.0 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[103]: found inet accounting period id=3911, trying to close it at 2016-08-25 00:00:13.0 on cid=21922 08-25/00:00:13 INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 11 08-25/00:00:13 INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408 on cid=21922 subscriptionId=1 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[68]: current contract cid=21922 status=3 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[76]: set Active contract status on cid=21922 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[83]: subscription.getId()=1 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[94]: lastRegistrationPeriod=25.08.2016 00:00:23 - 26.08.2016 00:00:23 fromDate=2016-08-25 00:00:23.0 toDate=2016-08-26 00:00:23.0 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=1 prevSubscription.isActive()=false 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[109]: prevRegistrationPeriodList.size() = 1 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=2 prevSubscription.isActive()=false 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[106]: prevRegistrationPeriodList is null 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[147]: periodList=[] 08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[174]: account period for cid=21922 is created with id=4172 and fromDate=2016-08-25 00:00:23.0 and toDate=Fri Aug 26 00:00:22 PETT 2016 08-25/00:00:13 INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 5 08-25/00:00:14 INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent 08-25/00:00:14 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 on cid=21922 subscriptionId=1 08-25/00:00:14 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[74]: set Close contract status on cid=21922 08-25/00:00:16 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[93]: lastRegistrationPeriod=25.08.2016 00:00:23 - 26.08.2016 00:00:23 fromDate=2016-08-25 00:00:23.0 toDate=2016-08-26 00:00:23.0 08-25/00:00:16 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[103]: found inet accounting period id=4172, trying to close it at 2016-08-26 00:00:23.0 on cid=21922 08-25/00:00:16 INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 2009 08-25/00:00:17 INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent 08-25/00:00:17 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983 on cid=21922 subscriptionId=1 08-25/00:00:17 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[68]: current contract cid=21922 status=3 08-25/00:00:17 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[76]: set Active contract status on cid=21922 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[83]: subscription.getId()=1 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[94]: lastRegistrationPeriod=25.08.2016 00:00:23 - 26.08.2016 00:00:23 fromDate=2016-08-25 00:00:23.0 toDate=2016-08-26 00:00:23.0 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=1 prevSubscription.isActive()=false 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[109]: prevRegistrationPeriodList.size() = 1 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=2 prevSubscription.isActive()=false 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[106]: prevRegistrationPeriodList is null 08-25/00:00:17 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[147]: periodList=[4172: 25.08.2016 00:00:23 - 26.08.2016 00:00:22] 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[154]: found accounting period, trying to close it on cid=21922 by closeDate=Thu Aug 25 00:00:22 PETT 2016 08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[174]: account period for cid=21922 is created with id=4173 and fromDate=2016-08-25 00:00:23.0 and toDate=Fri Aug 26 00:00:22 PETT 2016 Почему-то происходит двойной вызов события по закрытию периода и по открытию: Код: 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004 08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408 08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983 08-25/00:00:14 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 Код: 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004 on cid=21922 subscriptionId=1 08-25/00:00:13 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408 on cid=21922 subscriptionId=1 08-25/00:00:14 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 on cid=21922 subscriptionId=1 08-25/00:00:17 INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983 on cid=21922 subscriptionId=1 В mySubscriptionRegistrationPeriodEndEvent я изменяю статус договора на Закрыт, ставлю окончание учётного inet-периода равным дате окончания подписки. Вызываю context.publishAfterCommit(new InetAccountingPeriodModifiedEvent(INET_MID, cid, USER_ID, currentAccountingPeriod, changedAccountingPeriod)); С самой подпиской ничего не делаю. В mySubscriptionActivateEvent я изменяю статус договора на Активный и создаю новый учётный inet-период с периодом, равным новой подписке. Почему могут дублироваться события? |
Автор: | Bazhutyan [ 30 авг 2016, 07:02 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Разработчики, может кто-то прокомментировать предыдущий мой пост по дублированию события SubscriptionRegistrationPeriodEndEvent. Еще одна проблема у меня - предположим на текущий момент есть активная подписка с датой окончания завтра. Активируется новая подписка и необходимо чтобы первая подписка стала неактивной. Для этого я создаю новый период с датой окончания равным дате старта новой подписки и вызываю setPeriod. Но проблема в том, что старый-то период никуда не делся, он остался в БД и триггер по этому периоду остался и job, т.е. события по нему произойдут всё-равно. Вот как сделать, чтобы события не происходили? |
Автор: | skn [ 30 авг 2016, 11:13 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Прерывание подписки в данный момент не предусмотрено. |
Автор: | Bazhutyan [ 30 авг 2016, 17:01 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
skn писал(а): Прерывание подписки в данный момент не предусмотрено. Можем ли мы обсудить с вами платную доработку нужного нам функционала модуля Подписок? А если через sql изменить период, удалить job и триггер? |
Автор: | barguzin2 [ 31 авг 2016, 09:52 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Прерывать подписку не есть правильно. Ведь за неё списаны средства в полном объеме. Я сделал, что при изменении подписки из ЛК - новая добавляется только с момента завершения активного периода старой и на новую вешается job активации. ТП тоже можно сменить только датой завершения старой подписки. В ТП прописаны все подписки, на договор добавляется нужная. Достаточность средств не отслеживаем, клиенту приходят уведомления о балансе за 3 дня до продления с информацией о стоимости продления. Нет средств для продления - подписка не активируется, нет активной подписки - договор блокируется. Написана кучка обработчиков для этого дела. Всё отлажено и работает чики-пики. |
Автор: | Bazhutyan [ 31 авг 2016, 10:17 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП. Руководство готово заплатить за доработку функционала. |
Автор: | barguzin2 [ 31 авг 2016, 13:16 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Хорошо, такая ситуация: подписка длится месяц, тариф - 1 Мбит/с, произошло списание подписки за весь месяц вперед. И вот клиент хочет перейти на 2Мбит/с через 5 дней, хотя остается до конца еще 25 дней. Что делать? списывать за новую подписку снова за месяц? А ему это понравится? Вам точно Subscription нужен? |
Автор: | skn [ 31 авг 2016, 17:52 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Bazhutyan писал(а): Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП. Руководство готово заплатить за доработку функционала. а чем вам мешает старая подписка? зачем ее обязательно закрывать? |
Автор: | skn [ 01 сен 2016, 13:32 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
по поводу повторений событий... Код: 08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004 Судя по фразе "Caught from BGScheduler " событие кидается из планировщика, но в базовом варианте это событие кидается только из job`а... Т.е. второе событие возможно кидается из какого то скрипта, запускаемого из плаинировщика. возможно в скрипте запускаемом в планировщике идет работа с job (например, добавляется) |
Автор: | Amir [ 01 сен 2016, 15:28 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Планировщик на отдельной машине? |
Автор: | Bazhutyan [ 01 сен 2016, 16:40 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Нет, планировщик на этой же машине. Скрипт из планировщика отпадает, т.к. эти события вызываются в момент окончания подписки, в произвольныне вообщем-то моменты времени и даже если бы был скрипт в планировщике, вряд ли бы он каждый раз мог совпадать с этими моментами. если вы хоть раз запустили в планировщике скрипт который добавляет job то после этого в планировщике будет работать вторая копия JobSheduler, которая будет вычитывать те же задания из БД что и первая копия, и они оба будут пытаться их выполнить. Вторая копия JobSheduler будет работать до перезагрузки шедулера. |
Автор: | Bazhutyan [ 01 сен 2016, 16:42 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Первое событие как раз из BGScheduler приходит, что согласитесь странно... |
Автор: | Bazhutyan [ 01 сен 2016, 16:50 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
skn писал(а): Bazhutyan писал(а): Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП. Руководство готово заплатить за доработку функционала. а чем вам мешает старая подписка? зачем ее обязательно закрывать? По событию окончания подписки статус договора закрывается. Абонент может переходить с одного тарифа на другой каждый день, в итоге старых подписок может быть много и по окончании каждой из них договор закроется. |
Автор: | skn [ 01 сен 2016, 17:06 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Bazhutyan писал(а): skn писал(а): Bazhutyan писал(а): Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП. Руководство готово заплатить за доработку функционала. а чем вам мешает старая подписка? зачем ее обязательно закрывать? По событию окончания подписки статус договора закрывается. Абонент может переходить с одного тарифа на другой каждый день, в итоге старых подписок может быть много и по окончании каждой из них договор закроется. насколько я понимаю закрытие договора происходит скриптом, что мешает в этом скрипте проверять есть ли другие подписки с более поздним сроком окончанием, и если есть то не закрывать статус договора |
Автор: | stark [ 01 сен 2016, 17:07 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Bazhutyan писал(а): Первое событие как раз из BGScheduler приходит, что согласитесь странно... Там вроде нашли в чем дело.. А то что от планировщика - это нормально, может такое происходить в некоторых случаях. Т.е задачу может отработать либо сервер или планировщик. Но не должны оба - это исправляют. |
Автор: | skn [ 01 сен 2016, 17:15 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Bazhutyan писал(а): Первое событие как раз из BGScheduler приходит, что согласитесь странно... а у шедулера случаем не появился job.log |
Автор: | Bazhutyan [ 01 сен 2016, 17:17 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Файл имеете ввиду? Нет такого. |
Автор: | skn [ 01 сен 2016, 17:19 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Bazhutyan писал(а): Файл имеете ввиду? Нет такого. а что в sheduler.mq.log |
Автор: | Arcad77 [ 11 сен 2016, 18:11 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Господа! Может вопрос не в тему но про смену ТП. У нас два ТП: ТП_Действующий и ТП_Новый. Смену ТП настроил через группы, сама смена работает, но необходимо Провести "Добровольно-принудительный переход" то есть ТП_Новый на ТП_Действующий меняться не должен. А они или не меняются (в логе - "Тариф не в этой группе") или "Новый" меняется на "Действующий" Подскажите как периоды правильно выставить? |
Автор: | barguzin2 [ 12 сен 2016, 15:16 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
В редакторе тарифа ТП_Действующий убрать галочку "v используется". Причём тут периоды ? |
Автор: | Arcad77 [ 12 сен 2016, 19:27 ] |
Заголовок сообщения: | Re: Смена ТП с подписками через ЛК |
Спасибо помогло! А периоды в Группе ТП есть, я с начало там крутил. |
Страница 2 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |