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

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

(Различия между версиями)
Перейти к: навигация, поиск
м
 
(1 промежуточная версия не показана)
Строка 1: Строка 1:
-
Скрипт предназначен для синхронизации значения pairing_module в БД со значением уже установленным в CAS-сервере. Показывается пример того, как можно работать с API активаторов каждого протокола (см. DigitalTVServiceActivator) из скрипта. Данный пример предназначено для ручного запуска из редактора дин.кода. Каждый перезапуск пересинхронизирует и пересохраняет заново.
+
Скрипт предназначен для синхронизации значения pairing_module в БД со значением уже установленным в CAS-сервере. Показывается пример того, как можно работать с API активаторов каждого протокола (см. DigitalTVServiceActivator) из скрипта. Данный пример предназначен для ручного запуска из редактора дин.кода. Каждый перезапуск пересинхронизирует и пересохраняет заново.
<source lang=java>
<source lang=java>
Строка 60: Строка 60:
{
{
System.out.println("\tpairing (cas): none");
System.out.println("\tpairing (cas): none");
 +
// здесь можно сделать очищение pairing в бд, если его нет в cas
}
}
}
}

Текущая версия на 13:14, 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");
					// здесь можно сделать очищение pairing в бд, если его нет в cas
				}
			}
			else
			{
				System.out.println("\terror: "+result.getMessage());
			}
		}
	}
}

--dimOn 13:11, 12 декабря 2014 (UTC)

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

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