Class ProductManager

java.lang.Object
ru.bitel.bgbilling.modules.tv.server.ProductManager
All Implemented Interfaces:
AutoCloseable

public class ProductManager extends Object implements AutoCloseable
  • Field Details

    • ENTRY_COMPARATOR

      protected static final Comparator<ProductManager.Entry> 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)
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • 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

      protected void recalculate(int contractId, Date timeFrom, Date timeTo)
    • 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