Class BonusProgramDynamicBase
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
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........
Содержит наиболее нужные методы для работы с бонусами и дин.программами.
Для возможности использования методов в потомках(то есть вашей дин.программе/классе), необходимо вызвать в методе onEvent(если будете использовать) соответствующий метод потомка(то есть этого класса) - super.onEvent........
-
Field Summary
Modifier and TypeFieldDescriptionprotected int
Fields inherited from class ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase
err, out
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
accrualOfBonus
(Connection con, BonusProgram program) Начисление бонусов.abstract void
accrualOfBonusImpl
(Connection con, BonusProgram program) Тут реализуется начисление бонусов, ну или еще чего, что нужно будет сделать программе по планировщику для динамических программ.getContractPrograms
(Class<? extends BonusProgramDynamicBase> clazz, Date date) Получить все программы данной дин. программы для выбранного договора.Получить параметр программы.getPeriodForBonusPayment
(BonusProgram program) getProgramContract
(int programId, Date date) Получить программу договора по ид программы.getWebBonusStrings
(Connection con, BonusContractProgram program) Каждая дин. программа может вернут список строк которые будут отображаться в ЛК.void
onEvent
(ru.bitel.bgbilling.kernel.event.common.Event event, Setup setup, ConnectionSet set) int
updatePayment
(BigDecimal sum, BonusProgram program) Совершение платежа, данный метод сам учтет период активности бонусного платежа.void
updateProgramData
(int programId) void
updateProgramData
(int programId, int contractId, Map<String, String> mapL) Сохранение/обновлене данных для договора по выбранной программе.Methods inherited from class ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase
doExternalScript, error, print, setErrorStream, setOutputStream
Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
getLogger, logError
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
-
bonusDao
-
con
-
contractId
protected int contractId
-
-
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 interfaceEventScript<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 interfaceBonusProgramSpecification
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
Каждая дин. программа может вернут список строк которые будут отображаться в ЛК.- 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
- Parameters:
program
- - бонусная программа.- Returns:
- активый период для бонусного платежа.
-
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
Получить параметр программы. Внимаение, мап вытаскивается только один раз, при первом обращение, соответственно если вы обновили некоторый параметр , то это изменение не будет отражено в данном методе( только если вы не воспользовались тем же мапом, что и советую ).- 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
- Throws:
SQLException
-