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