Дин.код для синхронизации pairing с внешнего cas
Материал из BiTel WiKi
DimOn (Обсуждение | вклад) |
DimOn (Обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
- | Скрипт предназначен для синхронизации значения pairing_module в БД со значением уже установленным в CAS-сервере. Показывается пример того, как можно работать с API активаторов каждого протокола (см. DigitalTVServiceActivator) из скрипта. Данный пример | + | Скрипт предназначен для синхронизации значения pairing_module в БД со значением уже установленным в CAS-сервере. Показывается пример того, как можно работать с API активаторов каждого протокола (см. DigitalTVServiceActivator) из скрипта. Данный пример предназначен для ручного запуска из редактора дин.кода. Каждый перезапуск пересинхронизирует и пересохраняет заново. |
<source lang=java> | <source lang=java> |
Текущая версия на 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 и для других версий может быть неактуальна! Вам нужно самостоятельно поправить решение под свои нужды или воспользоваться помощью на форуме. Будем признательны, если внизу страницы или отдельной статьёй вы разместите исправленное решение для другой версии или подсказки что надо исправить.