ru.bitel.bgbilling.plugins.dispatch.server.dao

## Class SubscriptionDao

- java.lang.Object
- - ru.bitel.bgbilling.plugins.dispatch.server.dao.SubscriptionDao

-     public class SubscriptionDao
      extends java.lang.Object

  DAO для работы с подписками на рассылки напрямую. Вместо работы с этим DAO рекомендуется работать с веб-сервисом DispatchService

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SubscriptionDao(java.sql.Connection con)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `delete(int subscriptionId)` Удаляет подписку по её коду.
    `void` | `deleteByDispatch(int id)` Удаляет подписки для данного типа рассылок.
    `Subscription` | `deleteByHash(java.lang.String hash)` Фактически - отписка от рассылки для определенного контакта по хешу этой подписки.
    `void` | `deleteContractSubscriptions(int contractId)` Удаляет подписки договора.
    `void` | `generateHashes(Subscription subscription)` Генерирует хеш для подписки и заносит его в БД.
    `Subscription` | `get(int id)` Возвращает подписку по её коду.
    `Subscription` | `getByHash(java.lang.String hashString)` Получение подписки на рассылку по ее хешу
    `java.util.List<Subscription>` | `getList(int dispatchId, int contractId)`
    `java.util.List<Subscription>` | `getList(int dispatchId, int contractId, java.lang.Boolean active)` Возвращает список подписок по условиям.
    `boolean` | `isContactSubscribed(int contactId)` Проверяет, подписан ли контакт с данным кодом хотя бы на одну рассылку.
    `void` | `update(Subscription subscription)` Обновляет подписку.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### SubscriptionDao

          public SubscriptionDao(java.sql.Connection con)

  - ### Method Detail

    - #### get

          public Subscription get(int id)
                           throws ru.bitel.bgbilling.common.BGException

      Возвращает подписку по её коду.
      Parameters:
        `id` - код подписки
      Returns:
        экземпляр подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибки

    - #### getList

          public java.util.List<Subscription> getList(int dispatchId,
                                                      int contractId)
                                               throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getList

          public java.util.List<Subscription> getList(int dispatchId,
                                                      int contractId,
                                                      java.lang.Boolean active)
                                               throws ru.bitel.bgbilling.common.BGException

      Возвращает список подписок по условиям.
      Parameters:
        `dispatchId` - если dispatchId > 0, то возвращает только подписки на эту рассылку.
        `contractId` - если contractId > 0, то возвращает только подписки данного договора.
        `active` - true - возвращает только активные подписки, false - все. Под активностью подразумевается наличие установленной галочки Активна.
      Returns:
        список подписок
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибок

    - #### delete

          public void delete(int subscriptionId)
                      throws ru.bitel.bgbilling.common.BGException

      Удаляет подписку по её коду.
      Parameters:
        `subscriptionId` - код подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибок

    - #### deleteByDispatch

          public void deleteByDispatch(int id)
                                throws ru.bitel.bgbilling.common.BGException

      Удаляет подписки для данного типа рассылок.
      Parameters:
        `id` - код рассылки
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибок

    - #### isContactSubscribed

          public boolean isContactSubscribed(int contactId)
                                      throws ru.bitel.bgbilling.common.BGException

      Проверяет, подписан ли контакт с данным кодом хотя бы на одну рассылку.
      Parameters:
        `contactId` - код контакта.
      Returns:
        true - есть минимум одна подписка, false - нет ни одной подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибки

    - #### update

          public void update(Subscription subscription)
                      throws ru.bitel.bgbilling.common.BGException

      Обновляет подписку.
      Parameters:
        `subscription` - экземпляр подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибки

    - #### deleteContractSubscriptions

          public void deleteContractSubscriptions(int contractId)
                                           throws ru.bitel.bgbilling.common.BGException

      Удаляет подписки договора.
      Parameters:
        `contractId` - код договора.
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибки

    - #### deleteByHash

          public Subscription deleteByHash(java.lang.String hash)
                                    throws ru.bitel.bgbilling.common.BGException

      Фактически - отписка от рассылки для определенного контакта по хешу этой подписки. Хеш подписки вычисляется как MD5(код подписки + код контакта).
      Parameters:
        `hash` - хеш подписки.
      Returns:
        экземпляр подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибки

    - #### getByHash

          public Subscription getByHash(java.lang.String hashString)
                                 throws ru.bitel.bgbilling.common.BGException

      Получение подписки на рассылку по ее хешу
      Parameters:
        `hashString` - хеш подписки. вычисляется как MD5(код подписки + код контакта)
      Returns:
        экземпляр подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### generateHashes

          public void generateHashes(Subscription subscription)
                              throws ru.bitel.bgbilling.common.BGException

      Генерирует хеш для подписки и заносит его в БД. Хеш необходим для дальнейшей возможности отписаться от email-рассылки. Вычисляется как MD5 от строки "<код подписки>+<код контакта>".
      Parameters:
        `subscription` - подписка на рассылку с контактами, для которых формируется хеш.
      Throws:
        `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибки