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

# Class TopicManager

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.plugins.helpdesk.server.bean.TopicManager

public class TopicManager extends ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

- ## Field Summary

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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TopicManager(Connection con, ru.bitel.bgbilling.kernel.plugin.server.BGPluginServer plugin)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getClientNewMessageCount()`
  `int`
  `getClientNewMessageCount(String contractTitleRegexp, List<Integer> contractMaskLabelIds)`
  `int`
  `getClientNewMessageCount(String contractTitleRegexp, List<Integer> contractMaskLabelIds, int mode)`
  `Map<Integer,Map<IdTitle,Integer>>`
  `getClientNewMessagesMap()`
  Мэп новых сообщений для каждого юзера во всех его темах.
  `protected String`
  `getDBTableName(String name)`
  `int`
  `getManagersNewMessagesCount(int contractId)`
  Кол-во не прочитанных сообщений абонентом.
  `Message`
  `getMessage(int id)`
  `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)`
  Получение статуса топика.
  `Map<Integer,String>`
  `getStatusesMap()`
  `Map<Integer,String>`
  `getStatusMap()`
  `String`
  `getStatusName(int statusId)`
  `Topic`
  `getTopic(int topicId)`
  Возвращает топик со всеми его сообщениями.
  `Topic`
  `getTopic(int topicId, boolean loadMessages)`
  Возвращает топик со всеми его сообщениями.
  `int`
  `getTopicCount(TopicListFilter tf)`
  Число топиков.
  `List<Integer>`
  `getTopicInStatusBlocked(int contractId)`
  Получение списка ид топиков у которых статус резерва выставлен в режим ожидания.
  `List<Topic>`
  `getTopicList(TopicListFilter topicListFilter)`
  Список заголовков топиков.
  `int`
  `getTopicOwnerId(int topicId)`
  `List<Message>`
  `loadMessages(Topic topic)`
  Заполняет для топика его сообщения.
  `void`
  `searchTopicMessages(SearchResult<Message> searchResult, int topicId)`
  `void`
  `sendNotification(Topic topic, Message message)`
  `void`
  `setBindTopic(int id, int userId, 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, String comment)`
  `void`
  `updateMessage(int id, Message message)`
  `protected void`
  `updateMessage(int id, Message message, boolean fromIM)`
  `void`
  `updateMessageComment(int messageId, String comment)`
  `void`
  `updateTopic(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, Integer reserveId)`
  Устанавливает или обновлят статус и повешанный резерв у топика.

  ### 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`

- ## Field Details

  - ### con

    protected Connection con

  - ### plugin

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

- ## Constructor Details

  - ### TopicManager

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

- ## Method Details

  - ### getDBTableName

    protected String getDBTableName(String name)

  - ### getTopicList

    public 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) throws Exception
    Кол-во не прочитанных сообщений абонентом.
    Throws:
      `Exception`

  - ### getClientNewMessageCount

    public int getClientNewMessageCount() throws Exception
    Throws:
      `Exception`

  - ### getClientNewMessageCount

    public int getClientNewMessageCount(String contractTitleRegexp, List<Integer> contractMaskLabelIds)

  - ### getClientNewMessagesMap

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

  - ### getClientNewMessageCount

    public int getClientNewMessageCount(String contractTitleRegexp, List<Integer> contractMaskLabelIds, 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(String id, Topic topic) throws Exception
    Deprecated.
    использовать `updateTopic(Topic)`
    Parameters:
      `id` -
      `topic` -
    Throws:
      `Exception`

  - ### updateTopic

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

  - ### updateTopicPackage

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

  - ### updateTopicMessage

    public int updateTopicMessage(Message message) throws Exception
    Throws:
      `Exception`

  - ### getTopic

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

  - ### getTopic

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

  - ### loadMessages

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

  - ### searchTopicMessages

    public void searchTopicMessages(SearchResult<Message> searchResult, int topicId) throws Exception
    Throws:
      `Exception`

  - ### getMessage

    public Message getMessage(int id) throws Exception
    Throws:
      `Exception`

  - ### getPrevMessageId

    public int getPrevMessageId(int id, int topicId) throws Exception
    Throws:
      `Exception`

  - ### getNextMessageId

    public int getNextMessageId(int id, int topicId) throws Exception
    Throws:
      `Exception`

  - ### getTopicOwnerId

    public int getTopicOwnerId(int topicId) throws Exception
    Throws:
      `Exception`

  - ### updateMessage

    public void updateMessage(int id, Message message) throws Exception
    Throws:
      `Exception`

  - ### updateMessage

    protected void updateMessage(int id, Message message, boolean fromIM) throws Exception
    Throws:
      `Exception`

  - ### updateMessageComment

    public void updateMessageComment(int messageId, String comment) throws Exception
    Throws:
      `Exception`

  - ### setTopicClosed

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

  - ### setTopicAutoclose

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

  - ### setTopicClientRead

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

  - ### setMessageAdminRead

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

  - ### setBindTopic

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

  - ### setTopicStatus

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

  - ### getStatusName

    public String getStatusName(int statusId) throws Exception
    Throws:
      `Exception`

  - ### getStatusMap

    public Map<Integer,String> getStatusMap()

  - ### getStatusesMap

    public Map<Integer,String> getStatusesMap() throws Exception
    Throws:
      `Exception`

  - ### updateManagerForTopic

    public void updateManagerForTopic(int userId, int topicId, String comment) throws Exception
    Throws:
      `Exception`

  - ### updateTopicReservStatus

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

  - ### getReserveOnTopic

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

  - ### getReserveStatus

    public int getReserveStatus(int topicId) throws Exception
    Получение статуса топика.
    Parameters:
      `topicId` -
    Throws:
      `Exception`

  - ### getTopicInStatusBlocked

    public List<Integer> getTopicInStatusBlocked(int contractId) throws Exception
    Получение списка ид топиков у которых статус резерва выставлен в режим ожидания.
    Parameters:
      `contractId` - код договора.
    Returns:
      - список идешников.

  - ### getMessageListRevert

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

  - ### sendNotification

    public void sendNotification(Topic topic, Message message) throws Exception
    Throws:
      `Exception`