Поиск по кредитным контрактам
POST   /bs-core/main/contracts/partial-load
Метод предназначен для поиска по кредитным контрактам с возможностью задавать набор полей в ответе и порядок сортировки элементов.
Этот метод может использовать для работы также динамические поля.
Динамические поля могут быть также использованы для фильтрации и/или сортировки результатов. Для простоты понимания того, что подразумевается под динамическими полями, можно взять за основу то, что при выведении значений в эти поля требуются дополнительные расчёты.
Запрос
/bs-core/main/contracts/partial-load
{
"fields": [
"id",
"client.id",
"client.creationDate",
"client.additionalInfo.riskStatusType.id",
"name",
"creationDate",
"closeDate",
"closedStatus.id",
"branch.id",
"subdivision.id",
"loanAmount",
"creditProductName",
"creditProduct.id",
"loanApplication.id",
"loanApplication.gettingMoneyMethod.id",
"loanApplication.name",
"creditField.id",
"contractLastComment",
"contractCustomStatusComment",
"contractCustomStatusDate",
"client.naturalperson",
"client.sex.id",
"client.lastName",
"client.firstName",
"client.patronymic",
"client.title",
"issueDate",
"forIssue"
],
"orderBy": "id",
"orderDirection": "DESC",
"orderByFields": [
{ "field": "creationDate" },
{ "field": "manualStatusId", "direction": "desc" }
],
"searchFields": [
{
"field": "creationDate",
"value": ">=2017-09-11 00:00:00"
},
{
"field": "contractType.id",
"value": 101911
}
],
"countFrom": 0,
"countTo": 10
}
Описание параметров
Параметр | Обязателен | Тип данных | Описание |
fields | R | [collection] | Коллекция полей, которые должны вернуться в результатах поиска. |
fields.{fieldName} | М | [string][255] | В качестве элементов списка могут быть указаны любые поля из Контракта и из списка динамических параметров, которые не являются внешними ключами. Например: "name", "CreationDate" и так далее. Признаком внешнего ключа является указание в описание параметра на метод, который позволяет по ID (по значению параметра - получить объект). Пример: clientId. Для полей, которые являются внешними ключами - возможно получение любых полей объекта, ID котрого указано в поле. Например: в объекте контракт есть поле clientId, которое является внешним ключом. Это значит, что мы можем запросить любое поле объекта клиент: client.id, client.lastName и так далее. Также возможны варианты, при которых мы можем запросить поля из более глубоких сущностей, при наличии внешних ключей в объекте. Например: client.passport.seria - позволяет получить серию паспорта клиента, от которого оформлена заявка. |
orderBy | R | [string][255 ] | Название поля, по которому надо делать сортировку. С релиза 2.0.0-65 для сортировки следует использовать коллецию orderByFields. |
orderDirection | R | [enum ] | Направление сортировки результатов поиска
С релиза 2.0.0-65 для направления сортировки следует передавать направление в коллекции orderByFields. |
orderByFields | R | [collection] | Массив полей, по которым происходит сортировка. "orderByFields": [ В этом примере сортировка происходит по полям creationDate и manualStatusId. Также результат сортируется по убыванию. Для направления сортировки используется параметр manualStatusId. Если поле direction не указан, то сортировка по полю выполняется по возрастанию. Если в запросе на ядро переданы оба способа сортировки, то старый способ задания сортировки игнорируется. Эти изменения действуют с релиза 2.0.0-65. Смотрите также описание параметров orderBy и orderDirection. |
searchFields | R | [string] | Условия поиска (фильтрации) кредитного контракта, наличие параметра searchFields является обязательным, однако это может быть пустая коллекция (условия поиска могут быть не заданы). Строго рекомендуется задавать параметры фильтрации. |
searchFields._.field | М | [string][255 ] | Название поля, по которому нужно сделать фильтрацию. Правила формирования этого поля следующие: В качестве элементов списка могут быть указаны любые поля из сущности Контракт и из списка динамических параметров, которые не являются внешними ключами. Например: "name", "CreationDate" и так далее. Признаком внешнего ключа является указание в описание параметра на метод, который позволяет по ID (по значению параметра - получить объект). Пример: clientId. Для полей, которые являются внешними ключами - возможно получение любых полей объекта, ID котрого указано в поле. Например: в объекте Заявка есть поле clientId, котрое является внешним ключом. Это значит, что мы можем запросить любое поле объекта клиент: client.id, client.lastName и так далее. Также возможны варианты, при которых мы можем запросить поля из более глубоких сущностей, при наличии внешних ключей в объекте. Например: client.passport.seria - позволяет получить серию паспорта клиента, от которого оформлена заявка. |
searchFields._.value | М | [string][255] | Значение для фильтрации. В значении параметра может указывается как точное значение, так и нет. Для значений не полного соответствия используются различные параметры. Для указания значений этого параметра можно использовать следующие операторы: %, like, !=, null, not null, >, <, >=, <=. Для передачи даты используется следующий формат YYYY-MM-DD (действует с 2.0.0-65 релиза) например 2018-05-25, а для передачи даты и времени YYYY-MM-DD hh:mm:ss (например 2018-05-25 12:22:35). Пример: { Так и условия строгого и нестрогого неравенства, например: { { Так же в поле "field" можно передать тип контракта ( по умолчанию поиск по всем типам контракта) : Кредитный - 101911; Депозитный - 101912; Паевой - 101913. Например: { "field": "contractType.id", "value": 101911 } Поле businessStatus из списка динамических параметров в списке поля для вывода и в списке полей для поиска может принимать значение null. Например: |
searchFields._.ornumber | М | [string][255] | Значение для группировки параметров поиска (фильтрации) в условии OR. Пример 1: { { { Пример 2: { { { { В выражении языка SQL : (name like "1%" OR name like "5%" ) AND (loanAmount = 10000 OR loanAmount = 20000) |
countFrom | R | [int] | Смещение от начала поиска, т.е. если хотим получить с 10-ой записи, то передаем 10. |
countTo | R | [int ] | Лимит (сколько записей будет возвращено) |
Ответ
{
"status": "ok",
"timestamp": 1505201753812,
"data": [
{
"id": 101341582,
"fields": {
"id": 101341582,
"client.id": 10132532,
"client.creationDate": "2016-07-13",
"client.additionalInfo.riskStatusType.id": null,
"name": "001668",
"creationDate": "2017-09-11",
"closeDate": null,
"closedStatus.id": null,
"branch.id": 101306,
"subdivision.id": 101791,
"loanAmount": 100000,
"creditProductName": "ЗАЙМ ПОД ЗАЛОГ НЕДВИЖИМОСТИ",
"creditProduct.id": 10133145,
"loanApplication.id": 101132175,
"loanApplication.gettingMoneyMethod.id": 102392,
"loanApplication.name": "123456789987654320",
"creditField.id": 101193651,
"client.naturalperson": true,
"client.sex.id": 101251,
"client.lastName": "Пушкин",
"client.firstName": "Александр",
"client.patronymic": "Васильевич",
"client.title": "",
"issueDate": 1505077200000,
"forIssue": true,
"contractLastComment": null,
"contractCustomStatusComment": null,
"contractCustomStatusDate": "2017-09-11 17:59:14.238"
}
},
{
"id": 101341578,
"fields": {
"id": 101341578,
"client.id": 101322717,
"client.creationDate": "2017-07-27",
"client.additionalInfo.riskStatusType.id": null,
"name": "001667",
"creationDate": "2017-09-11",
"closeDate": null,
"closedStatus.id": null,
"branch.id": 101306,
"subdivision.id": 101791,
"loanAmount": 1000,
"creditProductName": "ЭКСПРЕСС 2544",
"creditProduct.id": 1013319,
"loanApplication.id": 101132172,
"loanApplication.gettingMoneyMethod.id": 102394,
"loanApplication.name": "123456789987654317",
"creditField.id": 101193647,
"client.naturalperson": true,
"client.sex.id": 101251,
"client.lastName": "Ша",
"client.firstName": "По",
"client.patronymic": "Ва",
"client.title": "",
"issueDate": null,
"forIssue": false,
"contractLastComment": null,
"contractCustomStatusComment": null,
"contractCustomStatusDate": null
}
}
]
}
Описание параметров
Параметр | Обязателен | Тип данных | Описание |
id | R | [int] | Идентификатор контракта, который соотвествует заданным параметрам фильтрации |
fields | R | [collection] | коллекция полей, которые вернулись в ответ на запрос |
fields.{field} | R | [mixed] | Набор полей в ответе зависит от того, какие поля были переданы в коллекцию searchFields. Типы данных и значения следует смотреть в описании соответствующих сущностей. |