Код:
package ru.skyb.scripts.behavior;
import java.util.Date;
import java.util.List;
import java.util.Set;
import ru.bitel.oss.systems.inventory.product.common.bean.Product;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.event.events.AdditionalActionEvent;
import ru.bitel.bgbilling.kernel.event.events.GetAdditionalWebActionListEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServ;
import ru.bitel.bgbilling.modules.inet.api.common.service.InetServService;
import ru.bitel.bgbilling.modules.tv.api.common.bean.TvAccount;
import ru.bitel.bgbilling.modules.tv.api.common.bean.TvAccountSpec;
import ru.bitel.bgbilling.modules.tv.api.common.service.TvAccountService;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.Preferences;
import ru.bitel.common.sql.ConnectionSet;
import bitel.billing.server.contract.bean.ContractModuleManager;
import ru.bitel.bgbilling.kernel.event.events.*;
import ru.bitel.oss.systems.order.product.common.service.*;
public class TVAgreement
extends EventScriptBase
{
/**
* ID дополнительного действия.
*/
private static final int ACTION_ID = 1;
/**
* ID модуля TV.
*/
private static final int MODULE_ID = 32;
/**
* ID типа аккаунта.
*/
private static final int TV_ACCOUNT_SPEC_ID = 1;
/**
* ID модуля INET.
*/
private static final int INET_MODULE_ID = 21;
@Override
public void onEvent( Event event, Setup setup, ConnectionSet connectionSet )
throws Exception
{
if( event instanceof GetAdditionalWebActionListEvent )
{
GetAdditionalWebActionListEvent e = (GetAdditionalWebActionListEvent)event;
ContractModuleManager cmm = new ContractModuleManager( connectionSet.getConnection() );
Set<Integer> mids = cmm.getContractModuleSet( e.getContractId() );
if( mids.contains( MODULE_ID ) )
{
return;
}
((GetAdditionalWebActionListEvent)event).addAction( ACTION_ID, "Активировать IPTV" );
}
else if ( event instanceof GetAdditionalActionListEvent )
{
GetAdditionalActionListEvent listEvent = (GetAdditionalActionListEvent) event;
listEvent.addAction( ACTION_ID, "Активировать IPTV" );
}
else if( event instanceof AdditionalActionEvent )
{
AdditionalActionEvent e = (AdditionalActionEvent)event;
ContractModuleManager cmm = new ContractModuleManager( connectionSet.getConnection() );
Set<Integer> mids = cmm.getContractModuleSet( e.getContractId() );
if( mids.contains( MODULE_ID ) )
{
return;
}
activate( connectionSet, cmm, e );
}
}
private void activate( final ConnectionSet connectionSet, final ContractModuleManager cmm, final AdditionalActionEvent e )
throws BGException
{
cmm.addContractModule( e.getContractId(), MODULE_ID );
ServerContext context = ServerContext.get();
InetServService wsServ = context.getService( InetServService.class, INET_MODULE_ID );
List<InetServ> servList = wsServ.inetServList( e.getContractId() );
if ( servList.size() == 0 )
{
print( "сервис отсутствует" );
e.addReport( "Ошибка, обратитесь в абонентский отдел" );
return;
}
TvAccountService tvAccountService = context.getService( TvAccountService.class, MODULE_ID );
final TvAccountSpec servType = context.getDirectory( TvAccountSpec.class, MODULE_ID ).get( TV_ACCOUNT_SPEC_ID );
Preferences servTypeConfig = new Preferences( servType.getConfig(), "\n\r" );
int deviceId = servTypeConfig.getInt( "const.device.id", -1 );
final TvAccount serv = new TvAccount();
serv.setSpecId( TV_ACCOUNT_SPEC_ID );
serv.setContractId( e.getContractId() );
serv.setDateFrom( new Date() );
serv.setDateTo( null );
serv.setStatus( TvAccount.STATUS_ACTIVE );
for( InetServ is : servList )
{
if (is.getDateTo() == null && (is.getTypeId() == 6 || is.getTypeId() == 3 || is.getTypeId() == 5 ))
{
serv.setLogin(is.getLogin());
serv.setPassword(is.getPassword());
print("is.getLogin() " + is.getLogin());
}
}
if( deviceId > 0 )
{
serv.setDeviceId( deviceId );
}
else
{
e.addReport( "Не указан const.device.id в конфигурации типа аккаунта." );
return;
}
tvAccountService.tvAccountUpdate( serv, false, false, 0 );
TvAccount root = tvAccountService.tvAccountTree( e.getContractId() );
print("serv " + root.getChildren());
e.addReport( "Услуга IPTV активирована. Ваш логин: " + serv.getLogin() + ", пароль: " + serv.getPassword() );
//TvAccount root = tvAccountService.tvAccountTree( e.getContractId() );
ProductOrderService productOrderService = context.getService( ProductOrderService.class, 0 );
ProductOrderService productOrderServiceMax = context.getService( ProductOrderService.class, 0 );
Product product = new Product();
product.setContractId( e.getContractId() );
for( TvAccount tvAccount : root.getChildren() ) {
product.setAccountId( tvAccount.getId() );
}
product.setDeviceState( product.STATE_ENABLED );
product.setProductSpecId( 19 );
product.setActivationModeId( 5 );
product.setTimeFrom( new Date() );
product.setComment( "Активировано клиентом" );
productOrderService.productActivate( product, false, false );
Product max = new Product();
max.setContractId( e.getContractId() );
for( TvAccount tvAccount : root.getChildren() ) {
max.setAccountId( tvAccount.getId() );
}
max.setDeviceState( max.STATE_ENABLED );
max.setProductSpecId( 10 );
max.setActivationModeId( 2 );
max.setTimeFrom( new Date() );
max.setComment( "Активировано клиентом" );
productOrderServiceMax.productActivate( max, false, false );
}
}
вылетает ошибка
Код:
05-06/19:03:05 ERROR [http-bio-0.0.0.0-8443-exec-3] ScriptEventListener - Eval error: java.security.PrivilegedActionException: java.lang.Exception: ru.bitel.bgbilling.kernel.event.EventProcessorException: ru.bitel.bgbilling.common.BGException: Невозможно активировать продукт на приостановленном аккаунте.
java.util.concurrent.ExecutionException: java.security.PrivilegedActionException: java.lang.Exception: ru.bitel.bgbilling.kernel.event.EventProcessorException: ru.bitel.bgbilling.common.BGException: Невозможно активировать продукт на приостановленном аккаунте.
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:267)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScript(DynamicScriptEventListener.java:149)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.notify(DynamicScriptEventListener.java:117)
at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:907)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:876)
at bitel.billing.server.contract.action.ActionAdditionalAction.doAction(ActionAdditionalAction.java:48)
at bitel.billing.server.Executer.doModule(SourceFile:600)
at bitel.billing.server.Executer$1.run(SourceFile:199)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at bitel.billing.server.Executer.doPost(SourceFile:193)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at ru.bitel.common.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.security.PrivilegedActionException: java.lang.Exception: ru.bitel.bgbilling.kernel.event.EventProcessorException: ru.bitel.bgbilling.common.BGException: Невозможно активировать продукт на приостановленном аккаунте.
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1.call(DynamicScriptEventListener.java:241)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)
Caused by: java.lang.Exception: ru.bitel.bgbilling.kernel.event.EventProcessorException: ru.bitel.bgbilling.common.BGException: Невозможно активировать продукт на приостановленном аккаунте.
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:200)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.access$001(DynamicScriptEventListener.java:204)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1$1.run(DynamicScriptEventListener.java:247)
... 8 more
Caused by: ru.bitel.bgbilling.kernel.event.EventProcessorException: ru.bitel.bgbilling.common.BGException: Невозможно активировать продукт на приостановленном аккаунте.
at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:245)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:907)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:876)
at ru.bitel.oss.systems.order.product.server.service.ProductOrderServiceImpl.productActivate(ProductOrderServiceImpl.java:597)
at ru.skyb.scripts.behavior.TVAgreement.activate(TVAgreement.java:162)
at ru.skyb.scripts.behavior.TVAgreement.onEvent(TVAgreement.java:83)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:196)
... 10 more
Caused by: ru.bitel.bgbilling.common.BGException: Невозможно активировать продукт на приостановленном аккаунте.
at ru.bitel.bgbilling.modules.tv.api.server.ProductManager.productActivate(ProductManager.java:816)
at ru.bitel.bgbilling.modules.tv.api.server.Module.notify(Module.java:181)
at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)
... 16 more
что ему не нравится?
_________________
Код:
Клиент: вер. 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Стиль программирования - пьяный мастерстер
Разработка мобильных приложений