orbit_exp / magic_flats_finder
该软件包的官方仓库似乎已消失,因此该软件包已被冻结。
1.9.4
2022-04-06 11:50 UTC
Requires
- php: >=5.6
- elasticsearch/elasticsearch: ~7.0
This package is auto-updated.
Last update: 2023-07-06 14:28:30 UTC
README
MagicFlatsFinder - feeds lid
安装
建议使用 composer 进行安装。目前没有内置的自动加载器。
composer require orbit_exp/magic_flats_finder
初始化
简单初始化如下
$App = new \MagicFlatsFinder\App( [ 'xml' => 'path_or_link/to/xml/file', 'project' => \MagicFlatsFinder\App::PROJECT_DOMUSKVERA, ] );
传递参数
** - 必需参数
project - код проекта ** PROJECT_DOMUSKVERA or domskver PROJECT_DOMBOR or dombor PROJECT_DOM128 or dom128 PROJECT_HEADLINER or headliner PROJECT_AKADEM or akadem PROJECT_GULLIVER or gulliverperm PROJECT_ROYALPARK or royalpark PROJECT_ILOVE or ilove PROJECT_BAUMANHAUSE or baumanhouse PROJECT_HLGULLIVER or hlgulliver xml - ссылка на хмл фид ** map_link - ссылка на json карту изображений fields_tmp - шаблон нейминга для полей в результирующем массиве debug - true / false - флаг режима отладки, по умолчанию fasle full_xml_file - ссылка на полную xml выгрузку из crm. Файл или ссылка map_buildings - карта строений объекта, обязательна при указании full_xml_file // очередь => строения очереди 1 =[ //номер строения => building_id 1 => 123 ] map_merge_buildings - карта объединения нескольких сущностей корпусов в одну //id главной сужности => массив зависимых сущностей 123 => [ 654, ] elastic_search - параметры для подключения к elastic search elastic_search = [ username => login password => 123 cloudId => Id облака, если испльльзуется облако, ]
简单搜索
简单搜索调用如下
示例
$App->find( 123, // integer / id строерния [ 'select' => ['flats','building'], ] );
传递参数 ** - 必需参数
xml_file (string) - ссылка на локальный xml select (array) - какие данные хотим получить в выбоке, принимает значения в виде массива. принимиет значения flats и building active (boolean) - вывести квартиры по статусы plans - параметры для планировок [ format - png / jpg / svg search - elastic ( тип карты изображений. Если параметр не задан, то по дефолту используется карта из параметра map_link ) ] filter - параметры для фильтрации discount - параметры для скидки
过滤
按列表过滤
示例
'filter' => [ 'by' => [ 'mixed_key' => ['247_2_1_3'], ], ]
过滤可以通过三种类型 mixed_key / guid / id 进行,其中 mixed_key 是组合键,如下所示收集
$mixed_key = $building_id.'_'.$section_id.'_'.$floor.'_'.$num_on_floor;
giud / id - 根据giud / id元素
按参数过滤
参数过滤仅适用于数值。
比较运算符
- 大于 | >
- 小于 | <
- 等于 | =
- 不等于 | !=
- 大于等于 | >=
- 小于等于 | <=
示例
'filter' => [ [ 'floor_number' => [ '=' => 2, ], ], ], ]
floor_number - 来自流的数据字段名称
逻辑运算符
- AND
- OR
默认使用 AND 运算符
对于同一字段,可以设置值范围,也可以设置逻辑运算符
示例
'filter' => [ [ 'floor_number' => [ 'logic' => 'OR', ['=' => 2], ['<' => 8], ], ], ], ]
在多个参数过滤时,也可以设置逻辑运算符
示例
'filter' => [ [ 'logic' => 'AND', 'floor_number' => [ 'logic' => 'OR', ['=' => 2], ['<' => 8], ], ], 'section_number' => [ '!=' => 2 ], ], ]
使用多个过滤块
示例
'filter' => [ 'logic' => 'OR', 'by' => [ 'mixed_key' => ['247_2_1_3'], ], [ 'logic' => 'AND', 'floor_number' => [ 'logic' => 'OR', ['=' => 2], ['<' => 8], ], ], 'section_number' => [ '!=' => 2 ], ], ]
折扣
####应用全系列折扣
示例
'discount' => [ 'all' => 10, ]
####应用于预选列表的公寓
示例
'discount' => [ 'select' => [ 'key' => 'guid', 'discount' => 5, 'list' => ['ba521761-ca1a-e711-80d1-005056010696'], ] ]
在公寓列表(list)上将应用折扣(discount),key - 列表 list 中的键类型,可能为 guid / id / mixed_key
其中 mixed_key 是组合键,如下所示收集
$mixed_key = $building_id.'_'.$section_id.'_'.$floor.'_'.$num_on_floor;
有时预选列表中的元素会有不同的折扣。在这种情况下,可以为一个列表设置折扣,并为特定元素设置折扣
示例
'discount' => [ 'select' => [ 'key' => 'guid', 'discount' => 5, 'list' => [ 'ba521761-ca1a-e711-80d1-005056010696:9', //зададим элементу скидку 9% 'be521761-ca1a-e711-80d1-005056010696' //зададим элементу скидку равную значению discount - 5% ], ] ]
折扣分组
在需要将一个折扣应用于整个系列,而将另一个折扣应用于元素池的情况下,可以分组折扣类型
示例
'discount' => [ 'all' => 10, //установим скидку 10% на все элементы //установим список исключений из 10% 'select' => [ 'key' => 'guid', 'discount' => 5, 'list' => [ 'ba521761-ca1a-e711-80d1-005056010696:9', //зададим элементу скидку 9% 'be521761-ca1a-e711-80d1-005056010696' //зададим элементу скидку равную значению discount - 5% ], ] ]
排序
可以按整数和分数值对元素进行排序。
参数
- by - 将进行排序的数组元素字段名称(必需参数)
- type - 排序类型 ASC / DESC。默认为 ASC
- separator - 分数部分的分隔符
- key - 用于搜索元素的键。默认为 guid
'sort' => [ 'by' => 'square', 'type' => 'DESC', 'separator' => '.' ],
限制元素数量
可以限制显示的元素数量
'limit' => 13,
队列
当有多个建筑物时,可以创建队列以进行后续选择
$App->addToStack( 123, ['xml_file' => path_to_xml.xml'] ); $App->addToStack( 456, ['xml_file' => path_to_xml.xml'] ); $App->findByStack( $filter_and_sort_params );
重要
- 在指定的数组中,select 必须设置 key 参数
- 如果 select 数组中没有设置 discount 参数,则折扣值将来自 all 参数。如果没有设置该参数,则不会应用折扣。