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

# Class SubscriptionDao

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

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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SubscriptionDao(Connection con)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `delete(int subscriptionId)`
  Удаляет подписку по её коду.
  `void`
  `deleteByDispatch(int id)`
  Удаляет подписки для данного типа рассылок.
  `Subscription`
  `deleteByHash(String hash)`
  Фактически - отписка от рассылки для определенного контакта по хешу этой подписки.
  `void`
  `deleteContractSubscriptions(int contractId)`
  Удаляет подписки договора.
  `void`
  `generateHashes(Subscription subscription)`
  Генерирует хеш для подписки и заносит его в БД.
  `Subscription`
  `get(int id)`
  Возвращает подписку по её коду.
  `Subscription`
  `getByHash(String hashString)`
  Получение подписки на рассылку по ее хешу
  `List<Subscription>`
  `getList(int dispatchId, int contractId)`
  `List<Subscription>`
  `getList(int dispatchId, int contractId, 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 Details

  - ### SubscriptionDao

    public SubscriptionDao(Connection con)

- ## Method Details

  - ### get

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

  - ### getList

    public List<Subscription> getList(int dispatchId, int contractId) throws SQLException
    Throws:
      `SQLException`

  - ### getList

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

  - ### delete

    public void delete(int subscriptionId) throws SQLException
    Удаляет подписку по её коду.
    Parameters:
      `subscriptionId` - код подписки
    Throws:
      `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибок
      `SQLException`

  - ### deleteByDispatch

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

  - ### isContactSubscribed

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

  - ### update

    public void update(Subscription subscription) throws SQLException, ru.bitel.bgbilling.common.BGException
    Обновляет подписку.
    Parameters:
      `subscription` - экземпляр подписки
    Throws:
      `ru.bitel.bgbilling.common.BGException` - в случае sql-ошибки
      `SQLException`

  - ### deleteContractSubscriptions

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

  - ### deleteByHash

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

  - ### getByHash

    public Subscription getByHash(String hashString) throws SQLException
    Получение подписки на рассылку по ее хешу
    Parameters:
      `hashString` - хеш подписки. вычисляется как MD5(код подписки + код контакта)
    Returns:
      экземпляр подписки
    Throws:
      `SQLException`

  - ### generateHashes

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