Package ru.bitel.bgbilling.modules.cerbercrypt.server.bean

# Class CardPacketManager

java.lang.Object
ru.bitel.bgbilling.modules.cerbercrypt.server.bean.CardPacketManager

    public class CardPacketManager
    extends java.lang.Object

Менеджер картпакетов.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `CardPacketManager​(java.sql.Connection con, int mid)` |
  `CardPacketManager​(java.sql.Connection con, int mid, int userId)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `boolean` | `checkCardPackets​(UserCard card)` | Проверка выпадения картапакетов (уже существующих в БД) из интервала активности карты.
  `java.util.List<CardPacket>` | `checkConflictSamePackets​(java.lang.Integer userCardId, java.lang.Integer packetId, java.util.Date dateFrom, java.util.Date dateTo, java.lang.Integer selfCardPacketId)` | проверяет картпакет на конфликты с таким же пакетом существующим на какую-то из дат периода возвращает найденные конфликтующие картпакеты, или пустой список, null быть не может точно такой же исключается, если указан selfCardPacketId, т.е. чтобы сам с собой не обнаружил пересечение (например есть в БД а мы редактируем его же)
  `void` | `closeCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> close, java.util.Date closeDate, java.util.Calendar now, boolean check)` |
  `void` | `deleteCardPacket​(int cardPacketId)` | Удаление кардпакета по его id.
  `void` | `deleteCardPackets​(int usercardId)` | Удаление всех кардпакетов юзеркарты по id юзеркарты.
  `java.util.List<CardPacket>` | `getActiveCardPacketList​(java.util.Calendar date, java.lang.Integer userCardId)` | Список активных картапакетов
  `java.util.List<CardPacket>` | `getActiveCardPacketList​(java.util.Calendar date, java.util.Collection<java.lang.Integer> userCardIds)` | Список активных (по дате и статусу) картпакетов для нескольких карт.
  `java.util.List<CardPacket>` | `getCalculateCardPacketList​(java.util.Date fromDate, java.util.Date toDate, java.lang.String cids, java.lang.String ucids, java.lang.String pids)` | Получение картапакетов, существующих в определенный период времени для определенных договоров, сортировка по коду карты.
  `CardPacket` | `getCardPacket​(int usercardId, int packetId, java.util.Date date)` | Получение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого).
  `CardPacket` | `getCardPacketById​(int cardPacketId)` | Кардпакет по его id.
  `java.util.List<CardPacket>` | `getCardPacketList​(int userCardId)` | Список всех картпакетов что привязаны к указанной юзеркарте.
  `java.util.List<CardPacket>` | `getCardPacketList​(int cid, int usercardId, int objectId, java.util.Date date, boolean virtualCinema)` |
  `java.util.List<CardPacket>` | `getCardPacketList​(int cid, int usercardId, java.util.Date date, boolean virtualCinema)` |
  `java.util.List<CardPacket>` | `getCardPacketList​(int cid, java.util.Date date)` | Список картпакетов договора
  `java.util.List<CardPacket>` | `getCardPacketList​(java.util.Calendar date)` | Получение картапакетов существующих в определенную дату.
  `java.util.List<CardPacket>` | `getCardPacketListByPacketId​(int packetId)` | Возвращает все картпакеты, использующие указанный пакет.
  `java.util.List<CardPacket>` | `getContractActiveCardPacketList​(java.util.Calendar date, int cid)` | Deprecated. getStatusedCardPacketList( date, cid, CardPacket.STATUS_ACTIVE )
  `java.util.List<CardPacket>` | `getFutureCardPacketList​(int cid, int usercardId, java.util.Date date)` | Получение всех будущих (дата начала больше указанной) кардпакетов юзеркарты по id юзеркарты и cid.
  `java.util.List<CardPacket>` | `getStatusedCardPacketList​(java.util.Calendar date, int cid, int cardPacketStatus)` | Список определённого статуса картпакетов договора на конкретную дату
  `boolean` | `haveCardPackets​(int userCardId)` | Возвращает привязаны ли к карте пакеты.
  `protected static boolean` | `isEqualSubscribe​(java.util.List<CardPacket> list1, java.util.List<CardPacket> list2)` |
  `void` | `openCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int usercardId, java.util.List<CardPacket> add, java.util.Calendar now, boolean check)` |
  `void` | `removeCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> remove, java.util.Calendar now, boolean check)` |
  `void` | `replaceCardPackets​(int cid, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose)` | Замена текущей подписки на новую.
  `void` | `replaceCardPacketsUserCard​(UserCard uc, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose)` | Замена текущей подписки на новую.
  `void` | `synchronizeCardPacketFromTo​(int uidSrc, int uidDest, java.util.Set<java.lang.Integer> ignorePackets, java.util.Date newDateFrom)` | Клонирование всей подписки с одной карты на другую.
  `void` | `truncatePacketsToCard​(UserCard uc)` | Костыль.
  `void` | `updateCardPacket​(CardPacket cardPacket)` | Обновление/добавление кардпакета.
  `void` | `updateCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> update, java.util.Calendar now, boolean check)` |

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

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

- ## Constructor Details

  - ### CardPacketManager

    public CardPacketManager​(java.sql.Connection con, int mid)

  - ### CardPacketManager

    public CardPacketManager​(java.sql.Connection con, int mid, int userId)

- ## Method Details

  - ### updateCardPacket

    public void updateCardPacket​(CardPacket cardPacket) throws ru.bitel.bgbilling.common.BGException
    Обновление/добавление кардпакета.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacketById

    public CardPacket getCardPacketById​(int cardPacketId) throws ru.bitel.bgbilling.common.BGException
    Кардпакет по его id.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deleteCardPacket

    public void deleteCardPacket​(int cardPacketId) throws ru.bitel.bgbilling.common.BGException
    Удаление кардпакета по его id.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deleteCardPackets

    public void deleteCardPackets​(int usercardId) throws ru.bitel.bgbilling.common.BGException
    Удаление всех кардпакетов юзеркарты по id юзеркарты.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacketList

    public java.util.List<CardPacket> getCardPacketList​(int cid, int usercardId, java.util.Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacketList

    public java.util.List<CardPacket> getCardPacketList​(int cid, int usercardId, int objectId, java.util.Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getFutureCardPacketList

    public java.util.List<CardPacket> getFutureCardPacketList​(int cid, int usercardId, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Получение всех будущих (дата начала больше указанной) кардпакетов юзеркарты по id юзеркарты и cid.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### haveCardPackets

    public boolean haveCardPackets​(int userCardId) throws ru.bitel.bgbilling.common.BGException
    Возвращает привязаны ли к карте пакеты.
    Parameters:
      `userCardId` - ид юзеркарты.
    Returns:
      true - привязаны.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### checkCardPackets

    public boolean checkCardPackets​(UserCard card) throws ru.bitel.bgbilling.common.BGException
    Проверка выпадения картапакетов (уже существующих в БД) из интервала активности карты.
    Parameters:
      `card` - юзеркарта
    Returns:
      - true если все выпадает хоть один
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCalculateCardPacketList

    public java.util.List<CardPacket> getCalculateCardPacketList​(java.util.Date fromDate, java.util.Date toDate, java.lang.String cids, java.lang.String ucids, java.lang.String pids) throws ru.bitel.bgbilling.common.BGException
    Получение картапакетов, существующих в определенный период времени для определенных договоров, сортировка по коду карты. Если cids null/пустой, то не учитывается, по всем договорам. Внимание: не учитываются статусы, зависимости, привязки подчинённых к "основным" итд, только период действия учитываются и список договоров. ВНУТРИ: сортировка по коду карты ОБЯЗАТЕЛЬНА!, на это завязан алгоритм обсчета.
    Parameters:
      `fromDate` - начало периода, если null то не проверяется (бесконечно)
      `toDate` - окончание периода, если null то не проверяется (бесконечно)
      `cids` - список кодов договоров через запятую, если нет - то игнорируются.
      `ucids` - список юзеркарт через запятую, доп.фильтр, если нет - то игнорируются (все карты договора берутся).
      `pids` - список кодов пакетов через запятую, если нет - игнорируются (все пакеты), добавлено для проверки на пересечение с конфликтными
    Returns:
      Лист картапакетов, не null.
    Throws:
      `java.sql.SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacketList

    public java.util.List<CardPacket> getCardPacketList​(java.util.Calendar date) throws ru.bitel.bgbilling.common.BGException
    Получение картапакетов существующих в определенную дату.
    Parameters:
      `date` - дата
    Returns:
      Лист картапакетов.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getActiveCardPacketList

    public java.util.List<CardPacket> getActiveCardPacketList​(java.util.Calendar date, java.lang.Integer userCardId) throws ru.bitel.bgbilling.common.BGException
    Список активных картапакетов
    Parameters:
      `userCardId` - ид юзер_карты, если null - фильтр не используется
      `date` - дата
    Returns:
      список
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getActiveCardPacketList

    public java.util.List<CardPacket> getActiveCardPacketList​(java.util.Calendar date, java.util.Collection<java.lang.Integer> userCardIds) throws ru.bitel.bgbilling.common.BGException
    Список активных (по дате и статусу) картпакетов для нескольких карт.
    Parameters:
      `userCardIds` - ид юзер_карт, если null - фильтр не используется
      `date` - дата
    Returns:
      список
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getStatusedCardPacketList

    public java.util.List<CardPacket> getStatusedCardPacketList​(java.util.Calendar date, int cid, int cardPacketStatus) throws ru.bitel.bgbilling.common.BGException
    Список определённого статуса картпакетов договора на конкретную дату
    Parameters:
      `date` - дата
      `cid` - код договора
      `cardPacketStatus` - статус картпакета(!)
    Returns:
      список картпакетов.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractActiveCardPacketList

    @Deprecated public java.util.List<CardPacket> getContractActiveCardPacketList​(java.util.Calendar date, int cid) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    getStatusedCardPacketList( date, cid, CardPacket.STATUS_ACTIVE )
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacket

    public CardPacket getCardPacket​(int usercardId, int packetId, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Получение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого). Подразумевается, что не больше одного (иначе берётся первый попавшийся). Для пакетов обычных дата округляется до дня, для virtual_cinema не округляется.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacketList

    public java.util.List<CardPacket> getCardPacketList​(int cid, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Список картпакетов договора
    Parameters:
      `cid` - договор
      `date` - дата на которую должен быть периодом, или null если не учитывать
    Returns:
      список картпакетов
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacketList

    public java.util.List<CardPacket> getCardPacketList​(int userCardId) throws ru.bitel.bgbilling.common.BGException
    Список всех картпакетов что привязаны к указанной юзеркарте.
    Parameters:
      `userCardId` - id юзеркарты, должно быть задано.
    Returns:
      список всех картпакетов.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getCardPacketListByPacketId

    public java.util.List<CardPacket> getCardPacketListByPacketId​(int packetId) throws ru.bitel.bgbilling.common.BGException
    Возвращает все картпакеты, использующие указанный пакет.
    Parameters:
      `packetId` - пакетИд
    Returns:
      список картпакетов
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### openCardPackets

    public void openCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int usercardId, java.util.List<CardPacket> add, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### removeCardPackets

    public void removeCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> remove, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### closeCardPackets

    public void closeCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> close, java.util.Date closeDate, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateCardPackets

    public void updateCardPackets​(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,​Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> update, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### synchronizeCardPacketFromTo

    public void synchronizeCardPacketFromTo​(int uidSrc, int uidDest, java.util.Set<java.lang.Integer> ignorePackets, java.util.Date newDateFrom) throws ru.bitel.bgbilling.common.BGException
    Клонирование всей подписки с одной карты на другую. Используется в мультируме, например. Делаться старается умно и подразумевается что многократный вызов делать лишнего не будет. Делаем все, не только активные.
    Parameters:
      `uidSrc` - ид юзер_карты откуда копировать
      `uidDest` - ид юзер_карты куда копировать
      `ignorePackets` - ид пакетов которые игнорировать при переносе
      `newDateFrom` - дата, которую ставить как dateFrom для создаваемых пакетов, если null то оставлять как на оригинальной карте
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### isEqualSubscribe

    protected static boolean isEqualSubscribe​(java.util.List<CardPacket> list1, java.util.List<CardPacket> list2)

  - ### truncatePacketsToCard

    public void truncatePacketsToCard​(UserCard uc) throws ru.bitel.bgbilling.common.BGException
    Костыль. Предназначние: "обрезка пакетов карты под её период". Выполняется изначально при закрытии "update" зависимой карты, ибо иначе ругается, что пакеты выходят за пределы. На будущее подумать: 1) вынести такой вопрос при закрытии и на обычные карты, т.е. при закрытии если с периодами беда спросить "подрезать пакеты" 2) отказаться от этого и просто не проверять пакеты для зависимых карт при закрытии.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### replaceCardPackets

    public void replaceCardPackets​(int cid, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose) throws ru.bitel.bgbilling.common.BGException
    Замена текущей подписки на новую. Закрытие текущей (если есть), удаление будущей (если есть), и открытие указанной. Для автодействий.
    Parameters:
      `cid` - На всех картах договора.
      `dateFrom` - От указанной даты. [!] Предполагается, что дата должна быть как минимум "сегодня".
      `newPacketIds` - новые пакеты для открытия.
      `commentOpen` - комментарий новой подписки - каждого пакета.
      `commentClose` - комментарий закрытой подписки - каждого пакета.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### replaceCardPacketsUserCard

    public void replaceCardPacketsUserCard​(UserCard uc, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose) throws ru.bitel.bgbilling.common.BGException
    Замена текущей подписки на новую. Закрытие текущей (если есть), удаление будущей (если есть), и открытие указанной. Для автодействий. Для отдельной юзеркарты.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### checkConflictSamePackets

    public java.util.List<CardPacket> checkConflictSamePackets​(java.lang.Integer userCardId, java.lang.Integer packetId, java.util.Date dateFrom, java.util.Date dateTo, java.lang.Integer selfCardPacketId) throws ru.bitel.bgbilling.common.BGException
    проверяет картпакет на конфликты с таким же пакетом существующим на какую-то из дат периода возвращает найденные конфликтующие картпакеты, или пустой список, null быть не может точно такой же исключается, если указан selfCardPacketId, т.е. чтобы сам с собой не обнаружил пересечение (например есть в БД а мы редактируем его же)
    Throws:
      `ru.bitel.bgbilling.common.BGException`