java.lang.Object
ru.bitel.bgbilling.plugins.bonus.server.dao.BonusDao

public class BonusDao
extends java.lang.Object
  • Field Details

    • log

      protected org.apache.logging.log4j.Logger log
    • con

      protected java.sql.Connection con
    • pluginTurnOn

      public static int pluginTurnOn
    • flagBalanceCanBeNegative

      public static final boolean flagBalanceCanBeNegative
      Флаг определяющий, можно ли уводить в минус.
  • Constructor Details

    • BonusDao

      public BonusDao​(java.sql.Connection con)
  • Method Details

    • getPaymentTypeList

      public java.util.List<BonusPaymentType> getPaymentTypeList​(boolean usedOnly) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      usedOnly -
      Returns:
      - если usedOnly==true,то вернет только используемые
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getChargesLinkedPayments

      public java.util.List<BonusCharge> getChargesLinkedPayments​(int cid, java.util.List<BonusPayment> paymentList, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      paymentList -
      Returns:
      - вернет список расходов которые были повешаны на дынные приходы на конкретную дату.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updatePaymentType

      public void updatePaymentType​(BonusPaymentType paymentType) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • deletePaymentType

      public void deletePaymentType​(int paymentId) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • isUsePaymentType

      public boolean isUsePaymentType​(int paymentId) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      paymentId -
      Returns:
      - true если есть платежи с таким типом
      Throws:
      ru.bitel.bgbilling.common.BGException
    • isUseChargeType

      public boolean isUseChargeType​(int chargeId) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      chargeId -
      Returns:
      - true если есть расходы с таким типом
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getPaymentList

      public java.util.List<BonusPayment> getPaymentList​(int cid, java.util.Date dateFrom, java.util.Date dateTo) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      dateFrom - - от даты
      dateTo - - до даты
      Returns:
      вернет платежи в промежутке данных дат, есл и
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getPaymentsAll

      public java.util.List<BonusPayment> getPaymentsAll​(int cid) throws ru.bitel.bgbilling.common.BGException
      Вернет все платежи для данного договора
      Parameters:
      cid -
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getPaymentsActiveAndPositive

      public java.util.List<BonusPayment> getPaymentsActiveAndPositive​(int cid, java.util.Date date, java.util.HashMap<java.lang.Integer,​java.math.BigDecimal> residueSumMap) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      date - - на какой момент
      cid - - номер договора
      residueSumMap - - мап c остатками средств у платежей, можно передать null,если эти данные не нужны(ключ - id платежа, значение - остаток средсв у платежа).
      Returns:
      вернет активные(то есть dateFrom
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getPaymentsActiveToDate

      public java.util.List<BonusPayment> getPaymentsActiveToDate​(int cid, java.util.Date date, java.util.HashMap<java.lang.Integer,​java.math.BigDecimal> residueSumMap) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      date -
      residueSumMap - - мап c остатками средств у платежей, можно передать null,если эти данные не нужны(ключ - id платежа, значение - остаток средсв у платежа).
      Returns:
      - список платежей активные на дату - date
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getPaymentsToActiveInFuture

      public java.util.List<BonusPayment> getPaymentsToActiveInFuture​(int cid, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      date - - на дату(обычно текущее)
      Returns:
      - список платежей еще не активных на дынный момент
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getCharge

      public BonusCharge getCharge​(int contractChargeId) throws ru.bitel.bgbilling.common.BGException
      Вернет бонусный расход который был повешан на конкретный расход договора.
      Parameters:
      contractChargeId - - ид расхода договора
      Returns:
      если результат успешный то BonusChargee, иначе  null.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getChargeList

      public java.util.List<BonusCharge> getChargeList​(int cid, java.util.Date dateFrom, java.util.Date dateTo) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      dateFrom - - от даты
      dateTo - - до даты
      Returns:
      вернет список расходов в промежутке dateFrom и dateTo(с точностью до дня), если одна из дат == null, то вернет все
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getChargesAll

      public java.util.List<BonusCharge> getChargesAll​(int cid) throws ru.bitel.bgbilling.common.BGException
      Вернет все расходы
      Parameters:
      cid -
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updatePayment

      public void updatePayment​(int userId, int cid, BonusPayment payment) throws ru.bitel.bgbilling.common.BGException
      Создание платежа. После совершения платежа, в платеже будет реальный его id.
      Либо, если id > 0, обновление даты завершения платежа.
      Parameters:
      userId - - пользователь совершив
      cid - - код договора
      payment - - бонусный платеж
      Throws:
      ru.bitel.bgbilling.common.BGException
    • addCharge

      public void addCharge​(int userId, int cid, BonusCharge charge) throws ru.bitel.bgbilling.common.BGException
      Добавление расхода
      Parameters:
      userId -
      cid - - номер договора
      charge - - расход. После добаления, id будет присвоено значение.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • deletePayment

      public void deletePayment​(int paymentId) throws ru.bitel.bgbilling.common.BGException
      Удаление прихода
      Parameters:
      paymentId - - ид прихода
      Throws:
      ru.bitel.bgbilling.common.BGException
    • deleteCharge

      public void deleteCharge​(int chargeId) throws ru.bitel.bgbilling.common.BGException
      Удаление расхода.
      Parameters:
      chargeId - - ид расхода
      Throws:
      ru.bitel.bgbilling.common.BGException
    • deleteChargeAccordingToContractChargeId

      public void deleteChargeAccordingToContractChargeId​(int contractChargeId) throws ru.bitel.bgbilling.common.BGException
      Удаление расхода по ид расхода договора.
      Parameters:
      chargeId - - ид расхода
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getPaymentDetailsList

      public java.util.List<BonusPayment> getPaymentDetailsList​(int chargeId) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      chargeId - - ид расхода
      Returns:
      вернет список платежей у которых данный расход списывал средства, в поле сумма у приходов будет сумма которую данный расход списал, а не сумма всего прихода.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getChargeDetailsList

      @Deprecated public java.util.List<BonusCharge> getChargeDetailsList​(int paymentId) throws ru.bitel.bgbilling.common.BGException
      Deprecated.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getDetailsChargeList

      public java.util.List<BonusDetailCharge> getDetailsChargeList​(int paymentId) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      paymentId - - ид бонусного платежа
      Returns:
      вернет список расходов которые списывали средства с данного прихода, поле суммы у расхода будет занесенно сумма расхода конкретно для этого прихода, а не та сумма которую списал данный расход.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • deleteDeatails

      public void deleteDeatails​(int id) throws ru.bitel.bgbilling.common.BGException
      Удаление деталей расхода по его ид.
      Parameters:
      id - - ид детали расхода.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • isUsePaymentsInDetailsTable

      public boolean isUsePaymentsInDetailsTable​(int paymentId)
      Parameters:
      paymentId - - ид платежа
    • addDetailsItem

      public void addDetailsItem​(int chargeId, int paymentId, java.math.BigDecimal sum) throws ru.bitel.bgbilling.common.BGException
      Добавит детали расхода, какую сумму какой расход списал с конкретного платежа.
      Parameters:
      chargeId - - ид расхода.
      paymentId - - ид прихода.
      sum - - сумма списание с данного расхода.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updateDetailsCharge

      public void updateDetailsCharge​(int id, int paymentId, java.math.BigDecimal sum) throws ru.bitel.bgbilling.common.BGException
      Обновление записи bonus_details_charge.
      Parameters:
      id - - код bonus_details_charge. Не путать с bonus_contract_charge.
      paymentId - - код платежа с которого списывает данная часть расхода.
      sum - - сумма.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getBalance

      public java.math.BigDecimal getBalance​(int cid, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      date - - на какую дату
      Returns:
      вернет баланс на конкретную дату
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getBalance

      public java.math.BigDecimal getBalance​(int cid, java.util.Date date, java.lang.Integer chargeId, boolean withFutureCharge) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      date - - на какую дату
      chargeId - - если не null, ид бонусного расхода который не будет учитываться.
      withFutureCharge - - если = true, то вернет баланс с учетом будущих расходов у приходов которые были активны на тот момент. Если баланс берется на текущий момент, то разницы не должно быть.
      Returns:
      вернет баланс на конкретную дату
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getNotActiveBalanceStill

      public java.math.BigDecimal getNotActiveBalanceStill​(int cid, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      date - - на какую дату
      Returns:
      - сумму еще не активных платежей, которые будут доступны в будущем
      Throws:
      ru.bitel.bgbilling.common.BGException
    • pluginInclude

      public boolean pluginInclude​(int cid) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      Returns:
      вернет true- если плагин включен у данного договора
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updatePluginInclude

      public void updatePluginInclude​(int cid, boolean include) throws ru.bitel.bgbilling.common.BGException
      Включение/выкл. плагина у договора.
      Parameters:
      cid - - номер договора.
      include - - если true то вкл. плагина у договора.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updateProgram

      public void updateProgram​(BonusProgram program) throws ru.bitel.bgbilling.common.BGException
      Обновление или создание бонусной программы.
      Parameters:
      program - - бонусная программ.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • checkProgramPeriodOnCrossing

      public boolean checkProgramPeriodOnCrossing​(BonusProgram program) throws ru.bitel.bgbilling.common.BGException
      Проверка на пересечения нового периода бонусной программы с периодом программы у договоров.
      Parameters:
      program - - бонусная программа у который выставлен проверяемый период.
      Returns:
      - true если пересечение имеет место или program==null или период==null или dateFrom==null.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getProgram

      public BonusProgram getProgram​(int id) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      id - - ид бонусной программы
      Returns:
      бонусную программу, если существует, иначе null.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getProgramList

      public java.util.List<BonusProgram> getProgramList​(java.util.Date date, int programTypeId) throws ru.bitel.bgbilling.common.BGException
      Возврощает заведенные бонусные программы.
      Parameters:
      date - - вернет активные программы на эту дату, если = null, то вернет все програамы вне зависемости от активности.
      programTypeId - - вернет программы только данного типа, если = 0, то вернет все программы вне зависемости от типа.
      Returns:
      - список бонусных программ.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getProgramCotractList

      public java.util.List<BonusContractProgram> getProgramCotractList​(int cid) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора.
      Returns:
      список бонусных програма у данного договора.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getProgramCotractList

      public java.util.List<BonusContractProgram> getProgramCotractList​(int cid, int programTypeId, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора.
      programTypeId - - тип программы. Если < 1, то вернет все программы. На момент создание метода существует только 2 типа программ: операционный=1 и динамический=2.
      date - - активную на дату, если передать null, то вернет за все время.
      Returns:
      список бонусных программ у данного договора.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updateProgramContract

      public void updateProgramContract​(BonusContractProgram contractProgram) throws ru.bitel.bgbilling.common.BGException
      Обновление или добовление бонусной программы для договора.
      Parameters:
      contractProgram - - бонусная программа для договора.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • programInContractList

      @Deprecated public java.util.List<java.lang.Integer> programInContractList​(int idProgram, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Deprecated.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getContractsOfThisProgram

      public java.util.List<java.lang.Integer> getContractsOfThisProgram​(int idProgram, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      idProgram - - ид программы.
      date - - на какое время, если null то вернет за все время.
      Returns:
      список ид договоров у которых активна данная бонусная программа на момент date.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • checkContractOnProgramType

      public boolean checkContractOnProgramType​(int cid, int programType, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
      Parameters:
      cid - - номер договора
      programType - - тип программы(пока статик поля в BonusProgram)
      date - на какую дату проверку
      Returns:
      если у договора есть активные программы с данным типом бонусной программы то true
      Throws:
      ru.bitel.bgbilling.common.BGException
    • deleteProgram

      public void deleteProgram​(int programId) throws ru.bitel.bgbilling.common.BGException
      Удаление бонусной программы.
      Parameters:
      programId - - ID бонусной программы.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getProgramAction

      public BonusProgramSpecification getProgramAction​(BonusProgram bonusProgram)
      Получение программы действий для бонусной программы.
      Returns:
      соответствующий класс конкретной программы.
    • getProgramSpecificationForDynamicProgram

      public BonusProgramSpecification getProgramSpecificationForDynamicProgram​(java.lang.String className)
      Вернет спецификацию для динамической программы по ее полному имени.
      Returns:
      в случае успеха BonusProgramSpecification, иначе null.
    • updateDataProgramOfContract

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

      public java.util.Map<java.lang.String,​java.lang.String> getDataProgramOfContract​(int programId, int contractId) throws java.sql.SQLException
      Получение мапа с данными для договора по выбранной программе.
      Parameters:
      programid - - код программы.
      contractId - - код договора.
      Returns:
      map с данными, всегда не null.
      Throws:
      java.sql.SQLException