Package ru.bitel.bgbilling.plugins.helpdesk.server.bean

# Class TopicManager

java.lang.Object
ru.bitel.bgbilling.plugins.helpdesk.server.bean.TopicManager

    public class TopicManager
    extends java.lang.Object

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `protected java.sql.Connection` | `con` |
  `protected ru.bitel.bgbilling.kernel.plugin.server.BGPluginServer` | `plugin` |

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `TopicManager​(java.sql.Connection con, ru.bitel.bgbilling.kernel.plugin.server.BGPluginServer plugin)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `int` | `getClientNewMessageCount()` |
  `int` | `getClientNewMessageCount​(java.lang.String contractTitleRegexp, java.lang.Long contractGroupBitMask)` |
  `int` | `getClientNewMessageCount​(java.lang.String contractTitleRegexp, java.lang.Long contractGroupBitMask, int mode)` |
  `java.util.Map<java.lang.Integer,​java.util.Map<IdTitle,​java.lang.Integer>>` | `getClientNewMessagesMap()` | Мэп новых сообщений для каждого юзера во всех его темах.
  `protected java.lang.String` | `getDBTableName​(java.lang.String name)` |
  `int` | `getManagersNewMessagesCount​(int contractId)` | Кол-во не прочитанных сообщений абонентом.
  `Message` | `getMessage​(int id)` |
  `java.util.List<Message>` | `getMessageListRevert​(int topicId, int lastMessageId, int count, boolean before)` |
  `int` | `getNextMessageId​(int id, int topicId)` |
  `int` | `getPrevMessageId​(int id, int topicId)` |
  `Reserve` | `getReserveOnTopic​(int topicId)` | Получение резерва который повешан на данный топик.
  `int` | `getReserveStatus​(int topicId)` | Получение статуса топика.
  `java.util.Map<java.lang.Integer,​java.lang.String>` | `getStatusesMap()` |
  `java.util.Map<java.lang.Integer,​java.lang.String>` | `getStatusMap()` |
  `java.lang.String` | `getStatusName​(int statusId)` |
  `Topic` | `getTopic​(int topicId)` | Возвращает топик со всеми его сообщениями.
  `Topic` | `getTopic​(int topicId, boolean loadMessages)` | Возвращает топик со всеми его сообщениями.
  `int` | `getTopicCount​(TopicListFilter tf)` | Число топиков.
  `java.util.List<java.lang.Integer>` | `getTopicInStatusBlocked​(int contractId)` | Получение списка ид топиков у которых статус резерва выставлен в режим ожидания.
  `java.util.List<Topic>` | `getTopicList​(TopicListFilter topicListFilter)` | Список заголовков топиков.
  `int` | `getTopicOwnerId​(int topicId)` |
  `java.util.List<Message>` | `loadMessages​(Topic topic)` | Заполняет для топика его сообщения.
  `void` | `searchTopicMessages​(SearchResult<Message> searchResult, int topicId)` |
  `void` | `sendNotification​(Topic topic, Message message)` |
  `void` | `setBindTopic​(int id, int userId, java.lang.String comment)` | Занятие топика определённым юзером - менеджером.
  `void` | `setMessageAdminRead​(int messageId, int userId)` | Установка прочтённости ОДНОГО сообщения админом
  `void` | `setTopicAutoclose​(int id, boolean autoclose)` | Изменить статус автозакрытия темы
  `void` | `setTopicClientRead​(int topicId)` | Отмечаем прочитанными весь топик КЛИЕНТОМ (тех сообщений которые написаны манагером)
  `void` | `setTopicClosed​(int id, boolean closed, boolean packetMode, int userId)` | Открыть/закрыть тему.
  `void` | `setTopicStatus​(int id, int status)` | Установка статуса топика.
  `void` | `updateManagerForTopic​(int userId, int topicId, java.lang.String comment)` |
  `void` | `updateMessage​(java.lang.String id, Message message)` |
  `protected void` | `updateMessage​(java.lang.String id, Message message, boolean fromIM)` |
  `void` | `updateMessageComment​(int messageId, java.lang.String comment)` |
  `void` | `updateTopic​(java.lang.String id, Topic topic)` | Deprecated. использовать `updateTopic(Topic)`
  `int` | `updateTopic​(Topic topic)` | Обновление топика
  `int` | `updateTopicMessage​(Message message)` |
  `void` | `updateTopicPackage​(int topicId, int contractPackageId)` | Устанавливает contractPackageId для топика с id = topicId
  `int` | `updateTopicReservStatus​(int topicId, int reserveStatus, java.lang.Integer reserveId)` | Устанавливает или обновлят статус и повешанный резерв у топика.

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

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

- ## Field Details

  - ### con

    protected java.sql.Connection con

  - ### plugin

    protected ru.bitel.bgbilling.kernel.plugin.server.BGPluginServer plugin

- ## Constructor Details

  - ### TopicManager

    public TopicManager​(java.sql.Connection con, ru.bitel.bgbilling.kernel.plugin.server.BGPluginServer plugin)

- ## Method Details

  - ### getDBTableName

    protected java.lang.String getDBTableName​(java.lang.String name)

  - ### getTopicList

    public java.util.List<Topic> getTopicList​(TopicListFilter topicListFilter)
    Список заголовков топиков. Поддержка определения новых сообщений для обеих сторон.
    Parameters:
      `cid` - ИД контракта. Или -1 если не учитывать.
      `closed` - паказывать закрытые (true), открытые (false) или не учитывать (null).
      `date1` - дата начала периода. для фильтрованноый выборки.
      `date2` - дата конца. для фильтрованноый выборки.
      `title` - часть заголовка. для фильтрованноый выборки.
      `searchString` - часть текста сообщения. для фильтрованной выборки.
      `page` - страница. для фильтрованноый выборки.
      `onPage` - на странице. для фильтрованноый выборки.
    Returns:
      список Topic для фильтрованноый выборки.

  - ### getManagersNewMessagesCount

    public int getManagersNewMessagesCount​(int contractId)
    Кол-во не прочитанных сообщений абонентом.

  - ### getClientNewMessageCount

    public int getClientNewMessageCount()

  - ### getClientNewMessageCount

    public int getClientNewMessageCount​(java.lang.String contractTitleRegexp, java.lang.Long contractGroupBitMask)

  - ### getClientNewMessagesMap

    public java.util.Map<java.lang.Integer,​java.util.Map<IdTitle,​java.lang.Integer>> getClientNewMessagesMap()
    Мэп новых сообщений для каждого юзера во всех его темах. Также есть и юзер -1, то есть темы без менеджера.
    Returns:
      мэп{юзер => мэп{(тема-id,тема-заголовок)=>количество-новых}}

  - ### getClientNewMessageCount

    public int getClientNewMessageCount​(java.lang.String contractTitleRegexp, java.lang.Long contractGroupBitMask, int mode)

  - ### getTopicCount

    public int getTopicCount​(TopicListFilter tf)
    Число топиков.
    Returns:
      натуральное число.
    See Also:
      `getTopicList(ru.bitel.bgbilling.plugins.helpdesk.server.bean.TopicListFilter)`

  - ### updateTopic

    @Deprecated public void updateTopic​(java.lang.String id, Topic topic) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    использовать `updateTopic(Topic)`
    Parameters:
      `id` -
      `topic` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateTopic

    public int updateTopic​(Topic topic) throws ru.bitel.bgbilling.common.BGException
    Обновление топика
    Parameters:
      `topic` - - обновляемый/добавляемый топик.
    Returns:
      - кол-во измененных полей в БД.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateTopicPackage

    public void updateTopicPackage​(int topicId, int contractPackageId) throws ru.bitel.bgbilling.common.BGException
    Устанавливает contractPackageId для топика с id = topicId
    Parameters:
      `topicId` - - id топика для которого устанавливается contractPackageId
      `contractPackageId` - - id активного пакета
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateTopicMessage

    public int updateTopicMessage​(Message message) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getTopic

    public Topic getTopic​(int topicId) throws ru.bitel.bgbilling.common.BGException
    Возвращает топик со всеми его сообщениями.
    Parameters:
      `topicId` - - ИД топика.
    Returns:
      объект Topic с заполненым списком сообщений.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getTopic

    public Topic getTopic​(int topicId, boolean loadMessages) throws ru.bitel.bgbilling.common.BGException
    Возвращает топик со всеми его сообщениями.
    Parameters:
      `topicId` - - ИД топика.
    Returns:
      объект Topic с заполненым списком сообщений.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### loadMessages

    public java.util.List<Message> loadMessages​(Topic topic) throws ru.bitel.bgbilling.common.BGException
    Заполняет для топика его сообщения. Используется и тут и снаружи класса. Потому и вынесен так.
    Parameters:
      `topic` - - валидный заполненный объект Topic
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchTopicMessages

    public void searchTopicMessages​(SearchResult<Message> searchResult, int topicId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getMessage

    public Message getMessage​(int id)

  - ### getPrevMessageId

    public int getPrevMessageId​(int id, int topicId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getNextMessageId

    public int getNextMessageId​(int id, int topicId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getTopicOwnerId

    public int getTopicOwnerId​(int topicId)

  - ### updateMessage

    public void updateMessage​(java.lang.String id, Message message) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateMessage

    protected void updateMessage​(java.lang.String id, Message message, boolean fromIM) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateMessageComment

    public void updateMessageComment​(int messageId, java.lang.String comment) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setTopicClosed

    public void setTopicClosed​(int id, boolean closed, boolean packetMode, int userId) throws ru.bitel.bgbilling.common.BGException
    Открыть/закрыть тему.
    Parameters:
      `id` - код топика
      `closed` - true - закрыть тему, false - открыть тему
      `packetMode` - режим топика
      `userId` - код пользователя, закрывающего топик
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setTopicAutoclose

    public void setTopicAutoclose​(int id, boolean autoclose) throws ru.bitel.bgbilling.common.BGException
    Изменить статус автозакрытия темы
    Parameters:
      `id` - - код темы
      `autoclose` - - новое значение
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setTopicClientRead

    public void setTopicClientRead​(int topicId) throws ru.bitel.bgbilling.common.BGException
    Отмечаем прочитанными весь топик КЛИЕНТОМ (тех сообщений которые написаны манагером)
    Parameters:
      `topicId` - - ИД топика
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setMessageAdminRead

    public void setMessageAdminRead​(int messageId, int userId) throws ru.bitel.bgbilling.common.BGException
    Установка прочтённости ОДНОГО сообщения админом
    Parameters:
      `messageId` - - ид сообщения
      `userId` - - ид админа
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setBindTopic

    public void setBindTopic​(int id, int userId, java.lang.String comment)
    Занятие топика определённым юзером - менеджером.
    Parameters:
      `id` - - ид топика.
      `userId` - - ид юзера.

  - ### setTopicStatus

    public void setTopicStatus​(int id, int status) throws ru.bitel.bgbilling.common.BGException
    Установка статуса топика.
    Parameters:
      `id` - ид топика.
      `userId` - ид юзера.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getStatusName

    public java.lang.String getStatusName​(int statusId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getStatusMap

    public java.util.Map<java.lang.Integer,​java.lang.String> getStatusMap()

  - ### getStatusesMap

    public java.util.Map<java.lang.Integer,​java.lang.String> getStatusesMap() throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateManagerForTopic

    public void updateManagerForTopic​(int userId, int topicId, java.lang.String comment) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateTopicReservStatus

    public int updateTopicReservStatus​(int topicId, int reserveStatus, java.lang.Integer reserveId) throws ru.bitel.bgbilling.common.BGException
    Устанавливает или обновлят статус и повешанный резерв у топика.
    Parameters:
      `topicId` - - ид топика.
      `reserveStatus` - - выставляемый статус.
      `reserveId` - - ид резерва.
    Returns:
      - кол-во изменненых строк в БД.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getReserveOnTopic

    public Reserve getReserveOnTopic​(int topicId) throws ru.bitel.bgbilling.common.BGException
    Получение резерва который повешан на данный топик.
    Parameters:
      `topicId` - - ид топика.
    Returns:
      - резерв.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getReserveStatus

    public int getReserveStatus​(int topicId) throws ru.bitel.bgbilling.common.BGException
    Получение статуса топика.
    Parameters:
      `topicId` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getTopicInStatusBlocked

    public java.util.List<java.lang.Integer> getTopicInStatusBlocked​(int contractId) throws ru.bitel.bgbilling.common.BGException
    Получение списка ид топиков у которых статус резерва выставлен в режим ожидания.
    Parameters:
      `contractId` - код договора.
    Returns:
      - список идешников.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getMessageListRevert

    public java.util.List<Message> getMessageListRevert​(int topicId, int lastMessageId, int count, boolean before) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `topicId` - - код темы
      `lastMessageId` - - код сообщения от которого начнется отсчет
      `count` - - кол-во сообщений
      `before` - - если true, то предыдущие относительно переданного, иначе следующих, то есть более новых
    Returns:
      - список сообщений предыдущиих/следующих к сообщению с id=lastMessageId, в обратном порядке.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### sendNotification

    public void sendNotification​(Topic topic, Message message) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`