Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

После выбора одного или нескольких реализаций поиска, они станут активны на экране "Поиск договора". После начала ввода данных в поле "Номер договора(комментарий)", после каждого введённого символа строка с поисковым запросом вызывает метод проверки (check) у каждой реализации поиска. Данный метод существует для проверки на предмет соответствия вводимых данных с логикой реализации поиска (например, в поле ИНН могут быть только цифры, метод check проверяет это условие и если указанные данные проходят данное условие, то реализация поиска появляется в выпадающем списке под полем для ввода номера договора) 

Image Removed


Алгоритм реализации поиска договоров представляет из себя реализацию интерфейса ru.bitel.bgbilling.kernel.contract.search.common.ContractSearchable

Блок кода
languagejava
titleContractSearchable
collapsetrue
public interface ContractSearchable
{
    //для возможности установки цвета шрифта
    String COLOR_RED = "red";
    String COLOR_BLUE = "blue";
    String COLOR_GREEN = "green";

    //наиболее часто используемые ключи
    String CONTRACT_ID = "cid";
    String CONTRACT_TITLE = "contractTitle";
    String CONTRACT_BALANCE = "balance";
    String COMMENT = "comment";
    String COLOR = "color";
    String WIDTH = "width";

    /**
     * Реализация проверки указанных данных под условия данного поиска.
     *
     * @param searchData указанные данные для поиска
     * @return true - если подходит под условие
     */
    public boolean check( String searchData );

    /**
     * Реализация выгрузки
     * @param searchData - поисковой запрос
     * @param moduleId - id модуля для которого выбран поиск. 0, если ядро
     * @param filters - набор фильтров выбранных в клиенте для поиска
     * @param pageHolder - данные для построничного просмотра результатов
	 *     
	 * @return возвращает список JSON-объектов по которому будет строиться итоговая таблица результата
     */
    public List<JSONObject> search( String searchData,
                                    int moduleId,
                                    ContractSearchableFilters filters,
                                    Holder<Page> pageHolder )
        throws BGException;

    /**
     * Возможность указать читабельные названия для полей в результате поиска.
     * Каждое поле указывается отдельным JSONObject и помещается в результирующий JSONArray
     * Ключ для названия должен совпадать с ключом в списке возвращаемом методом search()
     *
     * Т.е. если search возвращает {contractTitle:title}, то getTitles должен вернуть {contractTitle:Название договора}
     * @return
     */
    public JSONArray getTitles();

    /**
     * Возвращает текстовое описание данного поиска.
     * Например, "Поиск по IP-адресу"
     * @return
     */
    public String getTitle();
}

Метод check()

Данный метод существует для проверки на предмет соответствия вводимых данных с логикой реализации поиска (например, в поле ИНН могут быть только цифры, метод check проверяет это условие и если указанные данные проходят данное условие, то реализация поиска появляется в выпадающем списке под полем для ввода номера договора) 

Image Added


Метод search()

Результирующий список содержит объекты типа JSONObject в котором могут находится любые данные, но для того, чтобы договор мог быть открыт, каждый JSON должен содержать id договора под ключом cid (константа ContractSearchable.CONTRACT_ID).

Метод getTitles()

Для каждой записи есть возможность указать цвет, которым будет отображена запись в результирующем списке или таблице.

...