Class BonusProgramDynamicBase

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

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

    Fields
    Modifier and Type Field Description
    BonusDao bonusDao  
    java.sql.Connection con  
    int contractId  
    java.util.Map<java.lang.String,​java.lang.String> map  

    Fields inherited from class ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase

    err, out
  • Constructor Summary

    Constructors
    Constructor Description
    BonusProgramDynamicBase()  
  • Method Summary

    Modifier and Type Method Description
    void accrualOfBonus​(java.sql.Connection con, BonusProgram program)
    Начисление бонусов.
    abstract void accrualOfBonusImpl​(java.sql.Connection con, BonusProgram program)
    Тут реализуется начисление бонусов, ну или еще чего, что нужно будет сделать программе по планировщику для динамических программ.
    java.util.List<BonusContractProgram> getContractPrograms​(java.lang.Class<? extends BonusProgramDynamicBase> clazz, java.util.Date date)
    Получить все программы данной дин. программы для выбранного договора.
    java.lang.String getParam​(java.lang.String param, int programId)
    Получить параметр программы.
    Period getPeriodForBonusPayment​(BonusProgram program)  
    BonusContractProgram getProgramContract​(int programId, java.util.Date date)
    Получить программу договора по ид программы.
    abstract java.util.List<java.lang.String> getWebBonusStrings​(java.sql.Connection con, BonusContractProgram program)
    Каждая дин. программа может вернут список строк которые будут отображаться в ЛК.
    void onEvent​(Event event, Setup setup, ConnectionSet set)  
    int updatePayment​(java.math.BigDecimal sum, BonusProgram program)
    Совершение платежа, данный метод сам учтет период активности бонусного платежа.
    int updatePaymnent​(java.math.BigDecimal sum, BonusProgram program)  
    void updateProgramData​(int programId)  
    void updateProgramData​(int programId, int cid, java.util.Map<java.lang.String,​java.lang.String> mapL)
    Сохранение/обновлене данных для договора по выбранной программе.

    Methods inherited from class ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase

    doExternalScript, error, print, setErrorStream, setOutputStream

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface ru.bitel.bgbilling.plugins.bonus.common.bean.BonusProgramSpecification

    getTitle
  • Field Details

    • map

      public java.util.Map<java.lang.String,​java.lang.String> map
    • bonusDao

      public BonusDao bonusDao
    • con

      public java.sql.Connection con
    • contractId

      public int contractId
  • Constructor Details

    • BonusProgramDynamicBase

      public BonusProgramDynamicBase()
  • Method Details

    • onEvent

      public void onEvent​(Event event, Setup setup, ConnectionSet set) throws java.lang.Exception
      Specified by:
      onEvent in interface EventScript<Event>
      Throws:
      java.lang.Exception
    • accrualOfBonus

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

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

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

      public java.util.List<BonusContractProgram> getContractPrograms​(java.lang.Class<? extends BonusProgramDynamicBase> clazz, java.util.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, java.util.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​(java.math.BigDecimal sum, BonusProgram program) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updatePayment

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

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

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

      public void updateProgramData​(int programId) throws java.sql.SQLException
      Throws:
      java.sql.SQLException