Skip to content

Поиск по кредитным контрактам

POST

Метод предназначен для поиска по кредитным контрактам с возможностью задавать набор полей в ответе и порядок сортировки элементов.

Этот метод может использовать для работы также динамические поля.

Динамические поля могут быть также использованы для фильтрации и/или сортировки результатов. Для простоты понимания того, что подразумевается под динамическими полями, можно взять за основу то, что при выведении значений в эти поля требуются дополнительные расчёты

Request Body

application/json
object

Смещение от начала поиска, т.е. если хотим получить с 10-ой записи, то передаем 10

Format"int32"

Лимит (сколько записей будет возвращено)

Format"int32"

Коллекция полей, которые должны вернуться в результатах поиска. Список доступных полей зависит от типа сущности (контракт, залог и т.д.). Возможные поля можно посмотреть в соответствующих методах получения сущности по ID (например, для контрактов - Получение контракта по ID, для залогов - Получение залога по ID)

integer[]
Format"int64"

Название поля, по которому надо делать сортировку. С релиза 2.0.0-65 для сортировки следует использовать коллецию orderByFields

object[]

Массив полей, по которым происходит сортировка. Если поле direction не указано, то сортировка по полю выполняется по возрастанию. Если указано direction: "desc", то сортировка выполняется по убыванию. Если в запросе на ядро переданы оба способа сортировки (orderBy и orderByFields), то старый способ задания сортировки игнорируется. Эти изменения действуют с релиза 2.0.0-65. Смотрите также описание параметров orderBy и orderDirection.

Примеры для разных методов:

Для метода Поиск по всем контрактам (/main/all-contracts/partial-load):

"orderByFields": [
  { "field": "creationDate" },
  { "field": "manualStatusId", "direction": "desc" }
]

В этом примере сортировка происходит по полям creationDate и manualStatusId. Результат сортируется по убыванию по полю manualStatusId.

Для метода Поиск клиентов (/main/clients/partial-load):

"orderByFields": [
    { "field": "creationDate" },
    { "field": "id", "direction": "desc" }
]

В этом примере сортировка происходит по полям creationDate и id. Результат сортируется по убыванию по полю id.

Для метода Поиск ДДС (/main/fund-transactions/partial-load):

"orderByFields": [
    { "field": "orderId" },
    { "field": "contract.id", "direction": "desc" }
]

В этом примере сортировка происходит по полям orderId и contract.id. Результат сортируется по убыванию по полю contract.id.

Для метода Поиск групповых соглашений (/main/group-conventions/partial-load):

"orderByFields": [
    { "field": "date" },
    { "field": "name", "direction": "desc" }
]

В этом примере сортировка происходит по полям date и name. Результат сортируется по убыванию по полю name.

Для метода Поиск операций (/main/operations/partial-load):

"orderByFields": [
    { "field": "date" },
    { "field": "id", "direction": "desc" }
]

В этом примере сортировка происходит по полям date и id. Результат сортируется по убыванию по полю id.

Направление сортировки результатов поиска. DESC - по убыванию, ASC - по возрастанию. С релиза 2.0.0-65 для направления сортировки следует передавать направление в коллекции orderByFields

Количество возвращаемых записей

Format"int32"
object[]

Условия поиска (фильтрации). Строго рекомендуется задавать параметры фильтрации для получения нужных и компактных результатов.

Обязательность параметра searchFields для различных метода:

Обязательный (может быть пустой коллекцией):

Не обязательный (но строго рекомендуется):

Название поля, по которому нужно сделать фильтрацию.

Правила формирования поля:

В качестве значения могут быть указаны любые поля из сущности, которые не являются внешними ключами.

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

Внешний ключ можно определить, если в описании поля указан метод, который позволяет получить объект по значению этого поля (по ID). Пример: clientId.

Для полей, которые являются внешними ключами - возможно получение любых полей объекта, ID которого указано в поле. Например: в объекте контракт есть поле clientId, которое является внешним ключом. Это значит, что мы можем запросить любое поле объекта клиент: client.id, client.lastName и так далее.

Также возможны варианты, при которых мы можем запросить поля из более глубоких сущностей, при наличии внешних ключей в объекте. Например: client.passport.seria - позволяет получить серию паспорта клиента, от которого оформлена заявка.

Значение для группировки параметров поиска (фильтрации) в условии OR.

Поле не обязательное и используется в случаях, когда нужно искать не только условия по И, но также условия по ИЛИ. Например, нужно найти все записи, у которых в поле1 указано значение XXXX, при этом в поле2 указано YYYY или ZZZZ.

В этом случае можно использовать поле ornumber. Значение может быть числом или символом, но уникальным в рамках одной группы условий ИЛИ. Зарезервированным значением является -1.

Пример 1 (комбинация условий И и ИЛИ):

{ "field": "contract.id", "value": "10134756" },
{ "field": "loanAmount", "value": "10000", "ornumber": "1" },
{ "field": "name", "value": "5%", "ornumber": "1" }

В этом примере будут искаться все записи, у которых в поле contract.id указано 10134756 И при этом одновременно выполняется одно из условий: поле loanAmount равно 10000 ИЛИ поле name начинается с 5%.

В выражении языка SQL: contract.id = 10134756 AND (loanAmount = 10000 OR name like "5%")

Пример 2 (несколько групп условий ИЛИ):

{ "field": "name", "value": "1%", "ornumber": "1" },
{ "field": "name", "value": "5%", "ornumber": "1" },
{ "field": "loanAmount", "value": "10000", "ornumber": "2" },
{ "field": "loanAmount", "value": "20000", "ornumber": "2" }

В этом примере будут искаться все записи, у которых выполняется одно из условий первой группы (name начинается с 1% ИЛИ name начинается с 5%) И одно из условий второй группы (loanAmount равно 10000 ИЛИ loanAmount равно 20000).

В выражении языка SQL: (name like "1%" OR name like "5%") AND (loanAmount = 10000 OR loanAmount = 20000)

Responses

OK

*/*
object
object[]
Format"int64"
Valid values"error""ok"
Format"int64"