Class BonusProgramDynamicBase

java.lang.Object
ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase<ru.bitel.bgbilling.kernel.event.common.Event>
ru.bitel.bgbilling.plugins.bonus.common.bean.BonusProgramDynamicBase
All Implemented Interfaces:
EventScript<ru.bitel.bgbilling.kernel.event.common.Event>, BonusProgramSpecification

public abstract class BonusProgramDynamicBase extends EventScriptBase<ru.bitel.bgbilling.kernel.event.common.Event> implements BonusProgramSpecification
Базовый класс для дин. классов реализующих бонусную программу.
Содержит наиболее нужные методы для работы с бонусами и дин.программами.
Для возможности использования методов в потомках(то есть вашей дин.программе/классе), необходимо вызвать в методе onEvent(если будете использовать) соответствующий метод потомка(то есть этого класса) - super.onEvent........
  • Field Details

  • Constructor Details

    • BonusProgramDynamicBase

      public BonusProgramDynamicBase()
  • Method Details

    • onEvent

      public void onEvent(ru.bitel.bgbilling.kernel.event.common.Event event, Setup setup, ConnectionSet set) throws Exception
      Specified by:
      onEvent in interface EventScript<ru.bitel.bgbilling.kernel.event.common.Event>
      Throws:
      Exception
    • accrualOfBonus

      public void accrualOfBonus(Connection con, BonusProgram program) throws SQLException, ru.bitel.bgbilling.common.BGException
      Description copied from interface: BonusProgramSpecification
      Начисление бонусов. Каждая программа берет на себя начисление бонусов для всех договоров и защищается от возможного двойного начисления( для этого есть таблица bonus_program_log ). Запуск производится планировщиком задач.
      Specified by:
      accrualOfBonus in interface BonusProgramSpecification
      program - бонус. программа в которой содержатся параметры программы и т.д.
      Throws:
      SQLException
      ru.bitel.bgbilling.common.BGException
    • accrualOfBonusImpl

      public abstract void accrualOfBonusImpl(Connection con, BonusProgram program) throws SQLException, ru.bitel.bgbilling.common.BGException
      Тут реализуется начисление бонусов, ну или еще чего, что нужно будет сделать программе по планировщику для динамических программ.
      Parameters:
      con -
      program - - бонус. программа в которой содержатся параметры программы и т.д.
      Throws:
      SQLException
      ru.bitel.bgbilling.common.BGException
    • getWebBonusStrings

      public abstract List<String> getWebBonusStrings(Connection con, BonusContractProgram program)
      Каждая дин. программа может вернут список строк которые будут отображаться в ЛК.
      Parameters:
      con -
      program - - бонус. программаж договора в которой содержатся сама программа, период для программы и contractId.
      Returns:
      список или null, если ни чего не собираетесь отображать.
    • getContractPrograms

      public List<BonusContractProgram> getContractPrograms(Class<? extends BonusProgramDynamicBase> clazz, Date date) throws ru.bitel.bgbilling.common.BGException
      Получить все программы данной дин. программы для выбранного договора.
      Parameters:
      clazz - - класс дин. программы.
      bonusDao -
      date - - активную на дату, если передать null, то вернет за все время.
      Returns:
      список программ для данного договора.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getProgramContract

      public BonusContractProgram getProgramContract(int programId, Date date) throws ru.bitel.bgbilling.common.BGException
      Получить программу договора по ид программы. Отличие от обычной программы только в том что в программе договора содержаться период для договора. Внимание! Если метод используется при вызове планировщика( то есть методом accrualOfBonus), то не забудьте установить contracrId, перед вызовом.
      Parameters:
      programId - - код программы.
      date - - активную на дату, если передать null, то вернет за все время.
      Returns:
      - если contractId не установлен, то вернет null.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getPeriodForBonusPayment

      public Period getPeriodForBonusPayment(BonusProgram program)
      Parameters:
      program - - бонусная программа.
      Returns:
      активый период для бонусного платежа.
    • updatePaymnent

      public int updatePaymnent(BigDecimal sum, BonusProgram program) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updatePayment

      public int updatePayment(BigDecimal sum, BonusProgram program) throws ru.bitel.bgbilling.common.BGException
      Совершение платежа, данный метод сам учтет период активности бонусного платежа. Дата платежа будет выставлена текущей.
      Parameters:
      bonusDao -
      sum - - сумма платежа в бонусах.
      program - - бонусная программа.
      Returns:
      - код(id) платежа.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getParam

      public String getParam(String param, int programId) throws ru.bitel.bgbilling.common.BGException
      Получить параметр программы. Внимаение, мап вытаскивается только один раз, при первом обращение, соответственно если вы обновили некоторый параметр , то это изменение не будет отражено в данном методе( только если вы не воспользовались тем же мапом, что и советую ).
      Parameters:
      param - - код запрашиваемого параметра.
      programId - - код программы.
      Returns:
      параметр или null если его нет.
      Throws:
      SQLException
      ru.bitel.bgbilling.common.BGException
    • updateProgramData

      public void updateProgramData(int programId, int contractId, Map<String,String> mapL) throws SQLException
      Сохранение/обновлене данных для договора по выбранной программе.
      Parameters:
      programId - - код программы.
      contractId - - код договора.
      mapL - - непосредственно сами данные которые нужно сохранить.
      Throws:
      SQLException
    • updateProgramData

      public void updateProgramData(int programId) throws SQLException
      Throws:
      SQLException