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