Class CardPacketManager

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

public class CardPacketManager extends Object
Менеджер картпакетов.
  • Constructor Details

    • CardPacketManager

      public CardPacketManager(Connection con, int mid)
    • CardPacketManager

      public CardPacketManager(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 List<CardPacket> getCardPacketList(int contractId, int usercardId, Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getCardPacketList

      public List<CardPacket> getCardPacketList(int contractId, int usercardId, int objectId, Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getFutureCardPacketList

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

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

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

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

      public List<CardPacket> getStatusedCardPacketList(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 List<CardPacket> getContractActiveCardPacketList(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, Date date) throws ru.bitel.bgbilling.common.BGException
      Получение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого). Подразумевается, что не больше одного (иначе берётся первый попавшийся). Для пакетов обычных дата округляется до дня, для virtual_cinema не округляется.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getCardPacketList

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

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

      public 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, Map<Integer,Packet> packetMap, int cid, int usercardId, List<CardPacket> add, Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • removeCardPackets

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

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

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

      public void synchronizeCardPacketFromTo(int uidSrc, int uidDest, Set<Integer> ignorePackets, 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(List<CardPacket> list1, 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, Date dateFrom, Set<Integer> newPacketIds, String commentOpen, 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, Date dateFrom, Set<Integer> newPacketIds, String commentOpen, String commentClose) throws ru.bitel.bgbilling.common.BGException
      Замена текущей подписки на новую. Закрытие текущей (если есть), удаление будущей (если есть), и открытие указанной. Для автодействий. Для отдельной юзеркарты.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • checkConflictSamePackets

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