110 lines
3.6 KiB
PHP
110 lines
3.6 KiB
PHP
<?php
|
|
|
|
|
|
namespace app\services\api;
|
|
|
|
use app\models\Categories;
|
|
use app\models\CategoriesOt;
|
|
use app\models\ObjectTemplate;
|
|
|
|
class NomenclatureService
|
|
{
|
|
public static function categorySelect()
|
|
{
|
|
$categories = Categories::find()->where(['IS', 'parent_id', NULL])->all();
|
|
$keyList = [];
|
|
foreach ($categories as $category) {
|
|
foreach ($category->subCategories as $subCategory) {
|
|
if ($subCategory->name) {
|
|
$keyList[] = [
|
|
'id' => $subCategory->id,
|
|
'name' => $category->name . ' - ' . $subCategory->name,
|
|
'name_en' => $category->ts_en_name . ' - ' . $subCategory->ts_en_name
|
|
];
|
|
}
|
|
}
|
|
}
|
|
return $keyList;
|
|
}
|
|
|
|
public static function categoryFilterSelect()
|
|
{
|
|
$heritage_type = null;
|
|
if (!empty($_GET['q'])) {
|
|
$f = explode('|', $_GET['q']);
|
|
foreach ($f as $fkv) {
|
|
$filter = explode(':', $fkv);
|
|
if($filter[0] == 'heritage_type' && !empty($filter[1]))
|
|
$heritage_type = $filter[1];
|
|
}
|
|
}
|
|
if($heritage_type) {
|
|
$ids = [];
|
|
$objectTemplates = ObjectTemplate::find()->where(['heritage_type' => $heritage_type])->all();
|
|
foreach ($objectTemplates as $objectTemplate) {
|
|
$ids[] = $objectTemplate->id;
|
|
}
|
|
}
|
|
$categories = Categories::find()->where(['IS', 'parent_id', NULL])->all();
|
|
$keyList = [];
|
|
foreach ($categories as $category) {
|
|
$subCategoryList = $heritage_type ? $category->getSubCategoriesByTemplate($ids) : $category->subCategories;
|
|
foreach ($subCategoryList as $subCategory) {
|
|
if ($subCategory->name) {
|
|
$keyList[$subCategory->id] = $category->name . ' - ' . $subCategory->name;
|
|
}
|
|
}
|
|
}
|
|
return $keyList;
|
|
}
|
|
|
|
public static function categoryTree()
|
|
{
|
|
$categories = Categories::find()->where(['IS', 'parent_id', NULL])->all();
|
|
$keyList = [];
|
|
foreach ($categories as $category) {
|
|
$sub = [];
|
|
foreach ($category->subCategories as $subCategory) {
|
|
if ($subCategory->name) {
|
|
$sub[] = [
|
|
'id' => $subCategory->id,
|
|
'name' => $subCategory->name,
|
|
'name_en' => $subCategory->ts_en_name
|
|
];
|
|
}
|
|
}
|
|
|
|
$keyList[] = [
|
|
'id' => $category->id,
|
|
'name' => $category->name,
|
|
'name_en' => $category->ts_en_name,
|
|
'sub' => $sub
|
|
];
|
|
}
|
|
return $keyList;
|
|
}
|
|
|
|
public static function objectTemplates($sub_category_id = null)
|
|
{
|
|
$sub = [];
|
|
if ($sub_category_id)
|
|
$sub['sc_id'] = $sub_category_id;
|
|
|
|
$retrieve = CategoriesOt::find()->where($sub)->all();
|
|
$data = [];
|
|
foreach ($retrieve as $item) {
|
|
$objectTemplate = $item->objectTemplate;
|
|
$objectTemplateFields = [];
|
|
foreach ($objectTemplate->objectTemplateFields as $objectTemplateField) {
|
|
$objectTemplateFields[] = $objectTemplateField->toArray();
|
|
}
|
|
$data[] = [
|
|
'id' => $objectTemplate->id,
|
|
'name' => $objectTemplate->name,
|
|
'fields' => $objectTemplateFields
|
|
];
|
|
}
|
|
return $data;
|
|
}
|
|
}
|