AddModuleProcessorКод:
package ru.bitel.bgbilling.modules.tv.dyn.addactions;
import java.util.Date;
import java.util.Set;
import java.lang.Object;
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.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.modules.tv.dyn.TvDynUtils;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.Preferences;
import ru.bitel.common.ParameterMap;
import ru.bitel.common.sql.ConnectionSet;
import bitel.billing.server.contract.bean.ContractModuleManager;
import bitel.billing.server.contract.bean.ContractParameterManager;
import ru.bitel.common.Utils;
public class AddModuleProcessor
extends EventScriptBase
{
/**
* ID дополнительного действия.
*/
private static final int ACTION_ID = 18;
/**
* ID модуля TV.
*/
private static final int MODULE_ID = 18;
private static final int EMAIL_ID = 7;
/**
* ID типа аккаунта.
*/
private static final int TV_ACCOUNT_SPEC_ID = 1;
@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 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
{
ContractParameterManager cpm = new ContractParameterManager( connectionSet.getConnection() );
String email = TvDynUtils.getPhone( cpm, e.getContractId(), EMAIL_ID );
if (email != null && email.contains( "9" ))
{
email = email.replaceAll( ".*<(.+?)>.*", "$1" );
}
if(Utils.isBlankString( email ) || !email.contains( "9" ))
{
// e.addReport( "В параметрах договора не указан E-mail. Перейдите в параметры, нажмите правка и укажите свой E-mail." );
e.addReport( "В параметрах договора не указан телефон. Перейдите в параметры, нажмите правка и укажите свой Телефон." );
return;
}
cmm.addContractModule( e.getContractId(), MODULE_ID );
ServerContext context = ServerContext.get();
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( 1 );
serv.setContractId( e.getContractId() );
serv.setDateFrom( new Date() );
serv.setDateTo( null );
serv.setStatus( TvAccount.STATUS_ACTIVE );
if( deviceId > 0 )
{
serv.setDeviceId( deviceId );
}
else
{
e.addReport( "Не указан const.device.id в конфигурации типа аккаунта." );
return;
}
tvAccountService.tvAccountUpdate( serv, true, true, 0 );
e.addReport( "Услуга Смотрешка-TV активирована. Ваш логин: " + serv.getLogin() + " , пароль отправлен в SMS на указанный в договоре номер. \n\r ");
e.addReport( " Для просмотра ТВ, Вам необходимо активировать подписку на пакет телеканалов. Для этого перейдите в меню - TV-подписки и нажмите -Активировать подписку- и выберите нужный Вам пакет.");
}
}
AddModuleMooviКод:
package ru.bitel.bgbilling.modules.tv.dyn.addactions;
import java.util.Date;
import java.util.Set;
import java.lang.Object;
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.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.modules.tv.dyn.TvDynUtils;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.Preferences;
import ru.bitel.common.ParameterMap;
import ru.bitel.common.sql.ConnectionSet;
import bitel.billing.server.contract.bean.ContractModuleManager;
import bitel.billing.server.contract.bean.ContractParameterManager;
import ru.bitel.common.Utils;
public class AddModuleMoovi
extends EventScriptBase
{
/**
* ID дополнительного действия.
*/
private static final int ACTION_ID = 18;
/**
* ID модуля TV.
*/
private static final int MODULE_ID = 18;
private static final int EMAIL_ID = 7;
/**
* ID типа аккаунта.
*/
private static final int TV_ACCOUNT_SPEC_ID = 2;
@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 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
{
ContractParameterManager cpm = new ContractParameterManager( connectionSet.getConnection() );
String email = TvDynUtils.getPhone( cpm, e.getContractId(), EMAIL_ID );
if (email != null && email.contains( "9" ))
{
email = email.replaceAll( ".*<(.+?)>.*", "$1" );
}
if(Utils.isBlankString( email ) || !email.contains( "9" ))
{
// e.addReport( "В параметрах договора не указан E-mail. Перейдите в параметры, нажмите правка и укажите свой E-mail." );
e.addReport( "В параметрах договора не указан телефон. Перейдите в параметры, нажмите правка и укажите свой Телефон." );
return;
}
cmm.addContractModule( e.getContractId(), MODULE_ID );
ServerContext context = ServerContext.get();
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( 2 );
serv.setContractId( e.getContractId() );
serv.setDateFrom( new Date() );
serv.setDateTo( null );
serv.setStatus( TvAccount.STATUS_ACTIVE );
if( deviceId > 0 )
{
serv.setDeviceId( deviceId );
}
else
{
e.addReport( "Не указан const.device.id в конфигурации типа аккаунта." );
return;
}
tvAccountService.tvAccountUpdate( serv, true, true, 0 );
e.addReport( " Услуга IP-телевидения Moovi активирована. Ваш логин: " + serv.getLogin() + " , пароль: " + serv.getPassword() + "<br />");
e.addReport( " Сохраните их в надежном месте! <br /> " );
e.addReport( " Подписываясь на пакет ТВ, Вы принимаете условия предоставления услуг и оплаты по <a href='?action=GetCards&mid=contract&id=tv-moovi.xsl&title=0JTQvtCz0L7QstC-0YAgSVBUViDQnNC10LTQuNCw0J7Qv9C10YDQsNGC0L7RgA==p'>Договору оферты. Скачать. </a> <br />");
e.addReport( " Для просмотра ТВ, Вам необходимо активировать подписку на пакет телеканалов. Для этого перейдите в меню - TV-подписки и нажмите -Активировать подписку- и выберите нужный Вам пакет. <br />");
e.addReport( " Если пункт TV подписки не отображается, выйдите из личного кабинета и войдите по новой. Не забудьте сохранить или записать пароль.");
}
}