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

## Class UserCardManager

- java.lang.Object
- - ru.bitel.common.dao.AbstractDao<B>
  - - ru.bitel.common.dao.AbstractIdDao<B>
    - - ru.bitel.common.model.LoggingAbstractManager<UserCard>
      - - ru.bitel.bgbilling.modules.cerbercrypt.server.bean.UserCardManager

- All Implemented Interfaces:
    java.lang.AutoCloseable

      public class UserCardManager
      extends LoggingAbstractManager<UserCard>

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class ru.bitel.common.dao.AbstractDao

      `ru.bitel.common.dao.AbstractDao.ResultSetIterator`

  - ### Field Summary

    - ### Fields inherited from class ru.bitel.common.model.LoggingAbstractManager

      `userId`

    - ### Fields inherited from class ru.bitel.common.dao.AbstractDao

      `cacheFilter, cacheJoin, cacheOrderBy, cachePaged, cachePS, cacheWhat, con, getByIdPS, logger, mid, moduleId, orderByPattern, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_LIMIT, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_WHERE, tableName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UserCardManager(java.sql.Connection con, int mid, int userId)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `deleteSlavesByBasecardId(int basecardId)` Удалить все карты, зависимые от этой базовой карты.
    `UserCard` | `findConflictCard(UserCard usercard)` Находит конфликтующую с этой картой (первую попавшуюся) карту.
    `protected UserCard` | `getFromRS(java.sql.ResultSet rs)`
    `java.util.List<UserCard>` | `getList(int cid)` Все карты договора (включая и slavecard/"мультирум копии" и основные).
    `java.util.List<UserCard>` | `getList(int cid, boolean slavecardsIncluding)` Все карты договора или только без slavecards (т.е. только "основные").
    `java.util.List<UserCard>` | `getListByDate(java.util.Calendar date)` Deprecated. use `getListByDate(Date)`
    `java.util.List<UserCard>` | `getListByDate(java.util.Date date)`
    `java.util.List<UserCard>` | `getListByGroups(long groups)`
    `java.util.List<UserCard>` | `getListByNumber(long number)` Все юзер_карты по номеру карты, вне зависимости от дат.
    `java.util.List<UserCard>` | `getListByObject(int objectId)` Возвращает список карточек, привязанных к указанному объекту договора.
    `java.util.List<UserCard>` | `getListNeedSync()` Полный список юзеркарт, в которых установлен (не снят) флаг "требуется синхронизация"
    `int[]` | `getMinAndMaxCardNumber()`
    `java.util.List<UserCard>` | `getSlavecards(int basecardId)` Получение всех подчинённых (например, "копий") карт указанной карты.
    `java.util.List<UserCard>` | `getSlavecards(UserCard basecard)` Получение всех подчинённых (например, "копий") карт указанной карты.
    `UserCard` | `getUserCard(long number, java.util.Calendar date)` Deprecated. use `getUserCard(long, Date)`
    `UserCard` | `getUserCard(long number, java.util.Date date)` Возвращает юзер_карту по номеру карты, берёт ту, которая на текущую дату, т.е. та, которая в эту дату приписана к договору.
    `java.util.Map<java.lang.Integer,UserCard>` | `getUserCardMap()` Весь мэп юзеркарт.
    `java.util.Map<java.lang.Integer,UserCard>` | `getUserCardMap(java.util.Calendar date, java.util.Collection<java.lang.Integer> userCardIds)` Мэп юзеркарт на дату.
    `java.util.Map<java.lang.Integer,UserCard>` | `getUserCardMap(int cid)`
    `java.util.List<UserCard>` | `list_join_card(java.lang.String filter, java.lang.String orderBy, java.lang.Object... params)` Реализация list(...) с дополнительным join таблицы card чтобы вытянуть оттуда в частности pairing_module.
    `static java.util.Map<java.lang.Integer,java.util.List<UserCard>>` | `makeSlavecardListMap(java.util.List<UserCard> allContractUsercards)` Генерирует мэп зависимых карт каждой карты из списка всех карт договора.
    `void` | `setSyncStatusCards(java.util.Collection<java.lang.Long> cards, boolean needSyncStatus)` Установка нескольким юзеркартам статуса нужности синхронизации.
    `void` | `setSyncStatusUsercards(java.util.Collection<java.lang.Integer> usercardsIds, boolean needSyncStatus)` Установка нескольким юзеркартам статуса нужности синхронизации.
    `protected void` | `updateImpl(UserCard b)` Этот метод каждый реализует сам со своей логикой.
    `void` | `updateSubscribe(java.util.Date date, int userCardId, boolean slavecardsProcess)` В случае удаления id в БД недоступен, так что этот метод не работает как надо, полагается заранее вычитывать usercard и отдавать его в синхронайзер, вместе с зависимыми.
    `void` | `updateSubscribe(java.util.Date date, UserCard usercard, java.util.List<UserCard> slavecards)`

    - ### Methods inherited from class ru.bitel.common.model.LoggingAbstractManager

      `delete, logListByCid, logListByOid, update`

    - ### Methods inherited from class ru.bitel.common.dao.AbstractIdDao

      `get, getAndDelete, getAndUpdate`

    - ### Methods inherited from class ru.bitel.common.dao.AbstractDao

      `close, delete, deleteImpl, eq, get, getById, getImpl, getListFromRS, getSQLOrder, getSQLOrder, getTableName, list, list, listImpl, listImpl, listImplPS, listImplPS, processException, recycle, setStatementParam`

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

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

- - ### Constructor Detail

    - #### UserCardManager

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

  - ### Method Detail

    - #### getListByDate

          @Deprecated
          public java.util.List<UserCard> getListByDate(java.util.Calendar date)
                                                             throws ru.bitel.bgbilling.common.BGException

      Deprecated. use `getListByDate(Date)`
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getListByDate

          public java.util.List<UserCard> getListByDate(java.util.Date date)
                                                 throws ru.bitel.bgbilling.common.BGException

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

    - #### getUserCard

          @Deprecated
          public UserCard getUserCard(long number,
                                                  java.util.Calendar date)
                                           throws ru.bitel.bgbilling.common.BGException

      Deprecated. use `getUserCard(long, Date)`
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getUserCard

          public UserCard getUserCard(long number,
                                      java.util.Date date)
                               throws ru.bitel.bgbilling.common.BGException

      Возвращает юзер_карту по номеру карты, берёт ту, которая на текущую дату, т.е. та, которая в эту дату приписана к договору. Если таковых несколько (по ошибке программной), то вернётся одна случайная.
      Parameters:
        `number` - номер карты
        `date` - дата, на которую выбираем карту
      Returns:
        юзер_карта
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getListByNumber

          public java.util.List<UserCard> getListByNumber(long number)
                                                   throws ru.bitel.bgbilling.common.BGException

      Все юзер_карты по номеру карты, вне зависимости от дат.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getListByGroups

          public java.util.List<UserCard> getListByGroups(long groups)
                                                   throws ru.bitel.bgbilling.common.BGException

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

    - #### getList

          public java.util.List<UserCard> getList(int cid)
                                           throws ru.bitel.bgbilling.common.BGException

      Все карты договора (включая и slavecard/"мультирум копии" и основные).
      Parameters:
        `cid` - контрактИд
      Returns:
        список карт
      Throws:
        `ru.bitel.bgbilling.common.BGException` - ошибка какая-то

    - #### list_join_card

          public java.util.List<UserCard> list_join_card(java.lang.String filter,
                                                         java.lang.String orderBy,
                                                         java.lang.Object... params)
                                                  throws ru.bitel.bgbilling.common.BGException

      Реализация list(...) с дополнительным join таблицы card чтобы вытянуть оттуда в частности pairing_module. FIXME костыльность присутствуетъ. + см. ниже.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getList

          public java.util.List<UserCard> getList(int cid,
                                                  boolean slavecardsIncluding)
                                           throws ru.bitel.bgbilling.common.BGException

      Все карты договора или только без slavecards (т.е. только "основные").
      Parameters:
        `cid` - контрактИд
        `slavecardsIncluding` - включать ли неосновные карты.
      Returns:
        список карт
      Throws:
        `ru.bitel.bgbilling.common.BGException` - ошибка какая-то

    - #### getUserCardMap

          public java.util.Map<java.lang.Integer,UserCard> getUserCardMap()
                                                                   throws ru.bitel.bgbilling.common.BGException

      Весь мэп юзеркарт. Может быть большой, осторожно. Используется в калькуляторе, например.
      Returns:
        весь мэп [юзеркардИд=>юзеркарт]
      Throws:
        `ru.bitel.bgbilling.common.BGException` - ошибка

    - #### getUserCardMap

          public java.util.Map<java.lang.Integer,UserCard> getUserCardMap(java.util.Calendar date,
                                                                          java.util.Collection<java.lang.Integer> userCardIds)
                                                                   throws ru.bitel.bgbilling.common.BGException

      Мэп юзеркарт на дату. Все или по отдельному ид.
      Parameters:
        `date` - дата
        `userCardIds` - ид карты, список
      Returns:
        мэп [юзеркардИд=>юзеркарт]
      Throws:
        `ru.bitel.bgbilling.common.BGException` - ошибка

    - #### getMinAndMaxCardNumber

          public int[] getMinAndMaxCardNumber()
                                       throws ru.bitel.bgbilling.common.BGException

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

    - #### updateSubscribe

          public void updateSubscribe(java.util.Date date,
                                      int userCardId,
                                      boolean slavecardsProcess)
                               throws ru.bitel.bgbilling.common.BGException

      В случае удаления id в БД недоступен, так что этот метод не работает как надо, полагается заранее вычитывать usercard и отдавать его в синхронайзер, вместе с зависимыми.
      Parameters:
        `date` -
        `userCardId` -
        `slavecardsProcess` -
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateSubscribe

          public void updateSubscribe(java.util.Date date,
                                      UserCard usercard,
                                      java.util.List<UserCard> slavecards)
                               throws ru.bitel.bgbilling.common.BGException

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

    - #### findConflictCard

          public UserCard findConflictCard(UserCard usercard)
                                    throws ru.bitel.bgbilling.common.BGException

      Находит конфликтующую с этой картой (первую попавшуюся) карту.
      Parameters:
        `usercard` - карта для поиска.
      Returns:
        карта, которая содержит тот же номер и активнав данный момент (на этом или другом договоре).
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateImpl

          protected void updateImpl(UserCard b)
                             throws ru.bitel.bgbilling.common.BGException,
                                    java.sql.SQLException

      Description copied from class: `ru.bitel.common.dao.AbstractDao`
      Этот метод каждый реализует сам со своей логикой.
      Для обновления вызывать update.
      Specified by:
        `updateImpl` in class `ru.bitel.common.dao.AbstractDao<UserCard>`
      Parameters:
        `b` - экземпляр модели
      Throws:
        `ru.bitel.bgbilling.common.BGException` - ошибки
        `java.sql.SQLException` - ошибки

    - #### getFromRS

          protected UserCard getFromRS(java.sql.ResultSet rs)
                                throws java.sql.SQLException,
                                       ru.bitel.bgbilling.common.BGException

      Specified by:
        `getFromRS` in class `ru.bitel.common.dao.AbstractDao<UserCard>`
      Throws:
        `java.sql.SQLException`
        `ru.bitel.bgbilling.common.BGException`

    - #### getSlavecards

          public java.util.List<UserCard> getSlavecards(UserCard basecard)
                                                 throws ru.bitel.bgbilling.common.BGException

      Получение всех подчинённых (например, "копий") карт указанной карты. В качестве basecardTitle устанавливается название/роль каждой подчинённой карты. То есть например в вебе их надо выводить, типа "мультирум-копия N1".
      Parameters:
        `cardId` - ид "базовой" карты
      Returns:
        список подчинённых карт
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getSlavecards

          public java.util.List<UserCard> getSlavecards(int basecardId)
                                                 throws ru.bitel.bgbilling.common.BGException

      Получение всех подчинённых (например, "копий") карт указанной карты. Лучше использовать `getSlavecards(UserCard)`, если уже имеется объект-карта, меньше запросов
      Parameters:
        `basecardId` - ид "базовой" карты
      Returns:
        список подчинённых карт
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### deleteSlavesByBasecardId

          public void deleteSlavesByBasecardId(int basecardId)
                                        throws ru.bitel.bgbilling.common.BGException

      Удалить все карты, зависимые от этой базовой карты.
      Parameters:
        `basecardId` - ид базовой user_card
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### makeSlavecardListMap

          public static java.util.Map<java.lang.Integer,java.util.List<UserCard>> makeSlavecardListMap(java.util.List<UserCard> allContractUsercards)

      Генерирует мэп зависимых карт каждой карты из списка всех карт договора.
      Parameters:
        `allContractUsercards` - все карты догогора (подразумевается так).
      Returns:
        мэп ид_карты => список ссылающихся на эту карту

    - #### getListByObject

          public java.util.List<UserCard> getListByObject(int objectId)
                                                   throws ru.bitel.bgbilling.common.BGException

      Возвращает список карточек, привязанных к указанному объекту договора.
      Parameters:
        `objectId` - код объекта договора
      Returns:
        список карт
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### setSyncStatusUsercards

          public void setSyncStatusUsercards(java.util.Collection<java.lang.Integer> usercardsIds,
                                             boolean needSyncStatus)
                                      throws ru.bitel.bgbilling.common.BGException

      Установка нескольким юзеркартам статуса нужности синхронизации.
      Parameters:
        `usercardsIds` - список айдишников юзеркарт
        `needSyncStatus` - значение флага для установки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### setSyncStatusCards

          public void setSyncStatusCards(java.util.Collection<java.lang.Long> cards,
                                         boolean needSyncStatus)
                                  throws ru.bitel.bgbilling.common.BGException

      Установка нескольким юзеркартам статуса нужности синхронизации. Установка идёт не по указанию юзеркарт, а по указанию номеров карт, то есть всем юзеркартам с этим номером и поставится флаг.
      Parameters:
        `cards` - список номеров карт
        `needSyncStatus` - значение флага для установки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getListNeedSync

          public java.util.List<UserCard> getListNeedSync()
                                                   throws ru.bitel.bgbilling.common.BGException

      Полный список юзеркарт, в которых установлен (не снят) флаг "требуется синхронизация"
      Returns:
        список юзеркарт
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getUserCardMap

          public java.util.Map<java.lang.Integer,UserCard> getUserCardMap(int cid)