ExtendInfo.php
3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
/**
* @remark :
* @name :ExtendInfo.php
* @author :lyh
* @method :post
* @time :2023/11/9 14:19
*/
namespace App\Models\Product;
use App\Models\Base;
class ExtendInfo extends Base
{
//设置关联表名
protected $table = 'gl_product_extend_info';
//连接数据库
protected $connection = 'custom_mysql';
/**
* 搜索模块-广州万天实业有限公司-项目ID:194,获取产品品牌和型号扩展字段的值
* key值固定为:pd_extended_field_1:品牌,pd_extended_field_2:型号
*/
public static function getProductsAllBrandAndModel($projectId): array
{
$brandAndModel = [];
$brandArr = [];
$productIds = [];
$productsExtendInfo = self::where("project_id",$projectId)->get();
if (!empty($productsExtendInfo)){
$productsExtendBrandInfo = $productsExtendInfo->where("key","pd_extended_field_1");
if (!empty($productsExtendBrandInfo)){
foreach ($productsExtendBrandInfo as $productsExtendBrandInfoItem){
if (!empty($productsExtendBrandInfoItem->values)){
$brand = explode(",",$productsExtendBrandInfoItem->values);
$brands = array_filter($brand);
if (!empty($brands)){
foreach ($brands as $brandsItem){
$brandArr[] = $brandsItem;
}
}
}
}
}
}
//临时数据
if (!empty($brandArr)){
$brandArr = array_unique($brandArr);
$key = 0;
foreach ($brandArr as $brandArrItem){
$brandKeys = $productsExtendInfo->where("key","pd_extended_field_1");
if (!empty($brandKeys)){
foreach ($brandKeys as $brandKeysItem){
if ($brandKeysItem->values){
if (strpos($brandKeysItem->values, $brandArrItem) !== false){
$brandAndModel[$key]["ids"][] = $brandKeysItem->product_id;
$brandAndModel[$key]["brand"] = $brandArrItem;
}
}
}
}
$key++;
}
}
if (!empty($brandAndModel)){
foreach ($brandAndModel as $keyItem=>$brandAndModelItem){
if (!empty($brandAndModelItem["ids"])){
$productIds = array_unique($brandAndModelItem["ids"]);
$modelKeys = $productsExtendInfo->where("key","pd_extended_field_2")->whereIn("product_id",$productIds);
$models = [];
if (!empty($modelKeys)){
foreach ($modelKeys as $modelKeysItem){
if (!empty($modelKeysItem->values)){
$modelArr = array_filter(explode(",",$modelKeysItem->values));
foreach ($modelArr as $modelArrItem){
$models[] = $modelArrItem;
}
}
}
}
if (!empty($models)){
$models = array_unique($models);
$brandAndModel[$keyItem]["model"] = $models;
}
}
}
}
return $brandAndModel;
}
}