Class ProductManager
java.lang.Object
ru.bitel.bgbilling.modules.tv.server.ProductManager
- All Implemented Interfaces:
ru.bitel.common.worker.Recyclable
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final Comparator<ProductManager.Entry>
Cортировка по приоритету, чтобы с более высоким приоритетом обсчитывалось раньше, чтобы при нехватке денег продлялось то что важнее. -
Constructor Summary
ConstructorDescriptionProductManager
(ru.bitel.bgbilling.kernel.container.managed.ServerContext context, int moduleId) -
Method Summary
Modifier and TypeMethodDescriptionint
int
precalculateAccount
(int contractId, Date dateTo) Будущая наработка для определения рекомендуемой к оплате суммы.precalculateAccountDetail
(int contractId, Date dateTo) Будущая наработка для определения рекомендуемой к оплате суммы.precalculateServiceCost
(int contractId, Date dateTo) productActivate
(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList) Deprecated.productActivate
(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList, boolean customer) Активация продуктаvoid
productDelete
(Product product, boolean sync, List<ProductEntry> productEntryList) productsProlongate
(ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffContext tvTariffContext, ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffWorkerContext tvTariffWorkerContext, TvTarifficationManager tvTarifficationManager, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, ru.bitel.bgbilling.kernel.tariff.server.tree.TariffModuleTreeSet tariffTreeSet, TvAccountRuntimeMap tvAccountRuntimeMap, Date currentTime, ProlongationType type) Основной метод продления периода продукта.productsProlongate
(ConnectionSet connectionSet, int contractId, BigDecimal balance, BigDecimal limit, ProlongationType type) productsProlongate
(ConnectionSet connectionSet, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, Date time, ProlongationType type) protected void
recalculate
(int contractId, Date timeFrom, Date timeTo) void
recycle()
void
setPrimaryPriority
(int primaryPriority) void
setSecondaryPriority
(int secondaryPriority)
-
Field Details
-
ENTRY_COMPARATOR
Cортировка по приоритету, чтобы с более высоким приоритетом обсчитывалось раньше, чтобы при нехватке денег продлялось то что важнее. Более большой priority - в начале. Также, если продукт зависит от другого продукта - он ближе к концу, чем тот, от которого он зависит.
-
-
Constructor Details
-
ProductManager
public ProductManager(ru.bitel.bgbilling.kernel.container.managed.ServerContext context, int moduleId) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
-
Method Details
-
getPrimaryPriority
public int getPrimaryPriority() -
setPrimaryPriority
public void setPrimaryPriority(int primaryPriority) -
getSecondaryPriority
public int getSecondaryPriority() -
setSecondaryPriority
public void setSecondaryPriority(int secondaryPriority) -
recycle
public void recycle()- Specified by:
recycle
in interfaceru.bitel.common.worker.Recyclable
-
productsProlongate
public BigDecimal productsProlongate(ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffContext tvTariffContext, ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffWorkerContext tvTariffWorkerContext, TvTarifficationManager tvTarifficationManager, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, ru.bitel.bgbilling.kernel.tariff.server.tree.TariffModuleTreeSet tariffTreeSet, TvAccountRuntimeMap tvAccountRuntimeMap, Date currentTime, ProlongationType type) throws ru.bitel.bgbilling.common.BGException Основной метод продления периода продукта.- Parameters:
tvTariffContext
-tvTariffWorkerContext
-tvTarifficationManager
-contractRuntime
-contractId
-balance
-limit
-convergenceBalance
-balanceInsuffient
-tariffTreeSet
-tvAccountRuntime
-tvAccountId
-currentTime
-type
- 0 - продление при активации или окончании периода,
1 - попытка продления заблокированного при платеже, 2 - планировщик- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
productsProlongate
public BigDecimal productsProlongate(ConnectionSet connectionSet, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, Date time, ProlongationType type) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
productsProlongate
public BigDecimal productsProlongate(ConnectionSet connectionSet, int contractId, BigDecimal balance, BigDecimal limit, ProlongationType type) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
productActivate
@Deprecated public BigDecimal productActivate(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException Deprecated.Активация продукта- Parameters:
productSpec
-productSpecActivationMode
-product
-sync
- - нужно ли синхронизировать на MW (возможно не нужно, если активация идет через приставку и MW обратилась к нам, а мы подтвердили что можно активировать)productEntryList
-- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
ru.bitel.bgbilling.common.BGMessageException
-
productActivate
public BigDecimal productActivate(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList, boolean customer) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException Активация продукта- Parameters:
productSpec
-productSpecActivationMode
-product
-sync
- - нужно ли синхронизировать на MW (возможно не нужно, если активация идет через приставку и MW обратилась к нам, а мы подтвердили что можно активировать)productEntryList
-customer
-- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
ru.bitel.bgbilling.common.BGMessageException
-
productDelete
public void productDelete(Product product, boolean sync, List<ProductEntry> productEntryList) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
recalculate
-
precalculateAccount
public BigDecimal precalculateAccount(int contractId, Date dateTo) throws ru.bitel.bgbilling.common.BGException Будущая наработка для определения рекомендуемой к оплате суммы.- Parameters:
contractId
-dateTo
-- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
SQLException
-
precalculateAccountDetail
public TvTarifficationManager.CalculateResult precalculateAccountDetail(int contractId, Date dateTo) throws ru.bitel.bgbilling.common.BGException Будущая наработка для определения рекомендуемой к оплате суммы.- Parameters:
contractId
-dateTo
-- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
SQLException
-
precalculateServiceCost
public ServiceCostCache precalculateServiceCost(int contractId, Date dateTo) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-