Дин.код для синхронизации pairing с внешнего cas

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
DimOn (Обсуждение | вклад)
(Новая страница: «Скрипт предназначен для синхронизации значения pairing_module в БД со значением уже установленн…»)
Следующая правка →

Версия 13:10, 12 декабря 2014

Скрипт предназначен для синхронизации значения pairing_module в БД со значением уже установленным в CAS-сервере. Показывается пример того, как можно работать с API активаторов каждого протокола (см. DigitalTVServiceActivator) из скрипта. Данный пример предназначено для ручного запуска из редактора дин.кода. Каждый перезапуск пересинхронизирует и пересохраняет заново.

package ru.bitel.bgbilling.modules.cerbercrypt;
 
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
 
import java.sql.Connection;
import java.util.Calendar;
 
import ru.bitel.bgbilling.kernel.module.common.bean.User;
import ru.bitel.bgbilling.modules.cerbercrypt.common.bean.Card;
import ru.bitel.bgbilling.modules.cerbercrypt.server.DigitalTVServiceActivator;
import ru.bitel.bgbilling.modules.cerbercrypt.server.DigitalTVServiceActivator.ServiceActivationResult;
import ru.bitel.bgbilling.modules.cerbercrypt.server.bean.CardManager;
import ru.bitel.bgbilling.server.util.ModuleSetup;
import ru.bitel.bgbilling.server.util.Setup;
 
public class PairingSynchronizer
	extends GlobalScriptBase
{
	private static final int CERBERCRYPT_MID = 666;
 
	@Override
	public void execute( Setup setup, ConnectionSet connectionSet )
		throws Exception
	{
		Connection con = connectionSet.getConnection();
		ModuleSetup moduleSetup = Setup.getSetup().getModuleSetup(CERBERCRYPT_MID);
		DigitalTVServiceActivator sa = DigitalTVServiceActivator.newInstance( moduleSetup, con, CERBERCRYPT_MID, Calendar.getInstance() );
		//
		CardManager cm = new CardManager(con, CERBERCRYPT_MID, User.USER_SERVER);
		for( Long number : cm.getAllCardNumbers() )
		{
			System.out.println("=>card: "+number);
			ServiceActivationResult result = sa.getPairing(number.longValue());
			if(result.isResult())
			{
				String caspairing = result.getMessage();
				Card card = cm.getCard(number);
				String dbpairing = card.getPairingModule();
 
				if(caspairing!=null)
				{
					System.out.println("\tpairing (cas): "+caspairing);
					if(!caspairing.equals(dbpairing))
					{
						card.setPairingModule(caspairing);
						cm.updateCard(card);
						System.out.println("\tupdate card pairing (db): "+dbpairing+"->"+caspairing);
					}
					else
					{
						System.out.println("\tnot need to update");
					}
				}
				else
				{
					System.out.println("\tpairing (cas): none");
				}
			}
			else
			{
				System.out.println("\terror: "+result.getMessage());
			}
		}
	}
}

Внимание! Данное решение/метод/статья относится к версии 6.1 и для других версий может быть неактуальна! Вам нужно самостоятельно поправить решение под свои нужды или воспользоваться помощью на форуме. Будем признательны, если внизу страницы или отдельной статьёй вы разместите исправленное решение для другой версии или подсказки что надо исправить.

Личные инструменты