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

public class TopicManager extends Object
  • 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)
      Кол-во не прочитанных сообщений абонентом.
    • getClientNewMessageCount

      public int getClientNewMessageCount()
    • getClientNewMessageCount

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

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

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

      public int getTopicCount(TopicListFilter tf)
      Число топиков.
      Returns:
      натуральное число.
      See Also:
    • updateTopic

      @Deprecated public void updateTopic(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 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(String id, Message message) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updateMessage

      protected void updateMessage(String id, Message message, boolean fromIM) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updateMessageComment

      public void updateMessageComment(int messageId, 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, 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 String getStatusName(int statusId) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getStatusMap

      public Map<Integer,String> getStatusMap()
    • getStatusesMap

      public Map<Integer,String> getStatusesMap() throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updateManagerForTopic

      public void updateManagerForTopic(int userId, int topicId, String comment) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updateTopicReservStatus

      public int updateTopicReservStatus(int topicId, int reserveStatus, 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 List<Integer> getTopicInStatusBlocked(int contractId) throws ru.bitel.bgbilling.common.BGException
      Получение списка ид топиков у которых статус резерва выставлен в режим ожидания.
      Parameters:
      contractId - код договора.
      Returns:
      - список идешников.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getMessageListRevert

      public 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