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

# Class UserCardManager

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.common.dao.AbstarctDaoConstant
ru.bitel.bgbilling.common.dao.AbstractDao<UserCard>
ru.bitel.bgbilling.common.dao.AbstractIdDao<UserCard>
ru.bitel.common.model.LoggingAbstractManager<UserCard>
ru.bitel.bgbilling.modules.cerbercrypt.server.bean.UserCardManager

public class UserCardManager extends LoggingAbstractManager<UserCard>

- ## Field Summary

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

  `userId`

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

  `orderByPattern`

  ### Fields inherited from class ru.bitel.bgbilling.common.dao.AbstarctDaoConstant

  `con, ERROR, fields, moduleId, SQL_ALL, SQL_AND, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ON_DUPLICATE_KEY_UPDATE, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE, tableName`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UserCardManager(Connection con, int moduleId, int userId)`

- ## Method Summary

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

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

  `delete, logListByCid, logListByOid, update`

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

  `executeUpdate, get, getAndDelete, getAndUpdate, opt, prepareStatement, sqlCommand, sqlCommandAndTable, sqlQuery, sqlWhereId`

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

  `delete, deleteImpl, eq, get, getById, getImpl, getListFromRS, getPeriod, getQueryById, getSQLOrder, list, list, list, listImpl, listImpl, listImplPS, listImplPS, ormFromResultSet, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, psSetPeriod, queryPeriod, setStatementParam`

  ### Methods inherited from class ru.bitel.bgbilling.common.dao.AbstarctDaoConstant

  `getSQLOrder, getTableName, psSetDate, psSetInt, psSetString`

  ### Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

  `error, error, error, getLogger, logError, logError, warn`

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

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

- ## Constructor Details

  - ### UserCardManager

    public UserCardManager(Connection con, int moduleId, int userId)

- ## Method Details

  - ### getListByDate

    @Deprecated public List<UserCard> getListByDate(Calendar date) throws SQLException
    Deprecated.
    use `getListByDate(Date)`
    Throws:
      `SQLException`

  - ### getListByDate

    public List<UserCard> getListByDate(Date date) throws SQLException
    Throws:
      `SQLException`

  - ### getList

    public List<UserCard> getList(int cid, Date date) throws SQLException
    Список активных на дату юзеркарт договора.
    Throws:
      `SQLException`

  - ### getUserCard

    @Deprecated public UserCard getUserCard(long number, Calendar date) throws SQLException
    Deprecated.
    use `getUserCard(long, Date)`
    Throws:
      `SQLException`

  - ### getUserCard

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

  - ### getListByNumber

    public List<UserCard> getListByNumber(long number) throws SQLException
    Все юзер_карты по номеру карты, вне зависимости от дат.
    Throws:
      `SQLException`

  - ### getListByGroups

    public List<UserCard> getListByGroups(long groups) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getList

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

  - ### list_join_card

    public List<UserCard> list_join_card(String filter, String orderBy, Object... params) throws SQLException
    Реализация list(...) с дополнительным join таблицы card чтобы вытянуть оттуда в частности pairing_module. FIXME костыльность присутствуетъ. + см. ниже.
    Throws:
      `SQLException`

  - ### getList

    public List<UserCard> getList(int cid, boolean slavecardsIncluding) throws SQLException
    Все карты договора или только без slavecards (т.е. только "основные").
    Parameters:
      `cid` - контрактИд
      `slavecardsIncluding` - включать ли неосновные карты.
    Returns:
      список карт
    Throws:
      `ru.bitel.bgbilling.common.BGException` - ошибка какая-то
      `SQLException`

  - ### getUserCardMap

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

  - ### getUserCardMap

    public Map<Integer,UserCard> getUserCardMap(Calendar date, Collection<Integer> userCardIds) throws SQLException
    Мэп юзеркарт на дату. Все или по отдельному ид.
    Parameters:
      `date` - дата
      `userCardIds` - ид карты, список
    Returns:
      мэп [юзеркардИд=>юзеркарт]
    Throws:
      `ru.bitel.bgbilling.common.BGException` - ошибка
      `SQLException`

  - ### getMinAndMaxCardNumber

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

  - ### updateSubscribe

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

  - ### updateSubscribe

    public void updateSubscribe(Date date, UserCard usercard, List<UserCard> slavecards) throws Exception
    Throws:
      `Exception`

  - ### findConflictCards

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

  - ### updateImpl

    protected void updateImpl(UserCard userCard) throws SQLException
    Specified by:
      `updateImpl` in class `ru.bitel.bgbilling.common.dao.AbstractDao<UserCard>`
    Throws:
      `SQLException`

  - ### getFromRS

    protected UserCard getFromRS(ResultSet rs) throws SQLException
    Specified by:
      `getFromRS` in class `ru.bitel.bgbilling.common.dao.AbstractDao<UserCard>`
    Throws:
      `SQLException`

  - ### getSlavecards

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

  - ### getSlavecards

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

  - ### deleteSlavesByBasecardId

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

  - ### makeSlavecardListMap

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

  - ### getListByObject

    public List<UserCard> getListByObject(int objectId) throws SQLException
    Возвращает список карточек, привязанных к указанному объекту договора.
    Parameters:
      `objectId` - код объекта договора
    Returns:
      список карт
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `SQLException`

  - ### setSyncStatusUsercards

    public void setSyncStatusUsercards(Collection<Integer> usercardsIds, boolean needSyncStatus) throws SQLException
    Установка нескольким юзеркартам статуса нужности синхронизации.
    Parameters:
      `usercardsIds` - список айдишников юзеркарт
      `needSyncStatus` - значение флага для установки
    Throws:
      `SQLException`

  - ### setSyncStatusCards

    public void setSyncStatusCards(Collection<Long> cards, boolean needSyncStatus) throws SQLException
    Установка нескольким юзеркартам статуса нужности синхронизации. Установка идёт не по указанию юзеркарт, а по указанию номеров карт, то есть всем юзеркартам с этим номером и поставится флаг.
    Parameters:
      `cards` - список номеров карт
      `needSyncStatus` - значение флага для установки
    Throws:
      `SQLException`

  - ### getListNeedSync

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

  - ### getUserCardMap

    public Map<Integer,UserCard> getUserCardMap(int cid)