Commit 7edd98b5 by 杨树贤

品牌和分类通过APi获取

parent db68fc6b
...@@ -59,3 +59,5 @@ PUBLIC_URL= ...@@ -59,3 +59,5 @@ PUBLIC_URL=
GOODS_INFO_URL=http://192.168.1.237:60014 GOODS_INFO_URL=http://192.168.1.237:60014
#深茂搜索地址 #深茂搜索地址
SO_URL=http://so.semourdev.net SO_URL=http://so.semourdev.net
#基石地址
FOOTSTONE_URL=http://footstone.liexindev.net
...@@ -10,24 +10,25 @@ class BrandService ...@@ -10,24 +10,25 @@ class BrandService
public static function getStandardBrandList($map) public static function getStandardBrandList($map)
{ {
$standardBrandCache = Redis::hgetall('standard_brand'); $standardBrandData = \Http::get(config('website.footstone_url') . '/open/getStandardBrandList')->json();
$standardBrandCache = array_map(function ($value) { if (isset($standardBrandData['code']) && $standardBrandData['code'] == 0) {
return json_decode($value, true); $standardBrandCache = $standardBrandData['data'];
}, $standardBrandCache); ksort($standardBrandCache);
ksort($standardBrandCache); $standardBrandCache = array_values($standardBrandCache);
$standardBrandCache = array_values($standardBrandCache); $standardBrandCache = array_map(function ($item) {
$standardBrandCache = array_map(function ($item) { return \Arr::only($item, ['brand_name_en', 'standard_brand_id', 'brand_short_name_en', 'brand_logo']);
return \Arr::only($item, ['brand_name_en', 'standard_brand_id', 'brand_short_name_en', 'brand_logo']); }, $standardBrandCache);
}, $standardBrandCache); if (!empty($map['brand_name'])) {
if (!empty($map['brand_name'])) { $fuse = new Fuse($standardBrandCache, [
$fuse = new Fuse($standardBrandCache, [ 'keys' => ['brand_name_en'],
'keys' => ['brand_name_en'], 'minMatchCharLength' => 3,
'minMatchCharLength' => 3, 'threshold' => 0
'threshold' => 0 ]);
]); return $fuse->search($map['brand_name']);
return $fuse->search($map['brand_name']); }
return $standardBrandCache;
} }
return $standardBrandCache; return [];
} }
...@@ -39,31 +40,32 @@ class BrandService ...@@ -39,31 +40,32 @@ class BrandService
if ($standardBrandList) { if ($standardBrandList) {
return json_decode($standardBrandList, true); return json_decode($standardBrandList, true);
} }
$standardBrandCache = Redis::hgetall('standard_brand'); $standardBrandData = \Http::get(config('website.footstone_url') . '/open/getStandardBrandList')->json();
$standardBrandCache = array_map(function ($value) { if (isset($standardBrandData['code']) && $standardBrandData['code'] == 0) {
return json_decode($value, true); $standardBrandCache = $standardBrandData['data'];
}, $standardBrandCache); $letters = generate_letters();
$letters = generate_letters(); $standardBrandList = [];
$standardBrandList = []; foreach ($standardBrandCache as $standardBrand) {
foreach ($standardBrandCache as $standardBrand) { $matchLetter = false;
$matchLetter = false; foreach ($letters as $letter) {
foreach ($letters as $letter) { if (start_with(strtoupper($standardBrand['brand_name']), $letter)) {
if (start_with(strtoupper($standardBrand['brand_name']), $letter)) { if (empty($standardBrand['brand_name_en'])) {
if (empty($standardBrand['brand_name_en'])) { continue;
continue; }
$standardBrandList[$letter][] = $standardBrand;
$matchLetter = true;
} }
$standardBrandList[$letter][] = $standardBrand; }
$matchLetter = true; if (!$matchLetter && !empty($standardBrand['brand_name_en'])) {
$standardBrandList['#'][] = $standardBrand;
} }
} }
if (!$matchLetter && !empty($standardBrand['brand_name_en'])) { ksort($standardBrandList);
$standardBrandList['#'][] = $standardBrand; Redis::set($redisKey, json_encode($standardBrandList));
} Redis::expire($redisKey, 60);
return $standardBrandList;
} }
ksort($standardBrandList); return [];
Redis::set($redisKey, json_encode($standardBrandList));
Redis::expire($redisKey, 60);
return $standardBrandList;
} }
public static function getStandardBrandInfo($brandId) public static function getStandardBrandInfo($brandId)
......
...@@ -10,78 +10,86 @@ class ClassService ...@@ -10,78 +10,86 @@ class ClassService
public static function getClassificationForHome() public static function getClassificationForHome()
{ {
//先获取所有分类 //先获取所有分类
$classCache = Redis::hgetall('pool_class_info'); $classData = \Http::get(config('website.footstone_url') . '/open/getClassification')->json();
$secondClassList = []; $secondClassList = [];
foreach ($classCache as $key => &$class) { if (isset($classData['code']) && $classData['code'] == 0) {
$class = json_decode($class, true); $classCache = $classData['data'];
if (!$class['parent_id']) { foreach ($classCache as $key => &$class) {
if (empty($class['class_name_en'])) { if (!$class['parent_id']) {
continue;
}
$secondClassList[] = $class;
}
}
unset($class);
foreach ($classCache as $key => $class) {
if (!$class['parent_id']) {
continue;
}
foreach ($secondClassList as &$secondClass) {
if ($secondClass['class_id'] == $class['parent_id']) {
if (empty($class['class_name_en'])) { if (empty($class['class_name_en'])) {
continue; continue;
} }
$class['sku_number'] = Redis::hget('pool_class_info_count', $class['class_id']) ?: 0; $secondClassList[] = $class;
$secondClass['children'][] = $class;
} }
} }
unset($secondClass); unset($class);
} foreach ($classCache as $key => $class) {
if (!$class['parent_id']) {
continue;
}
foreach ($secondClassList as &$secondClass) {
if ($secondClass['class_id'] == $class['parent_id']) {
if (empty($class['class_name_en'])) {
continue;
}
$secondClass['children'][] = $class;
}
}
unset($secondClass);
}
$topClassMapping = config('field.top_class_mapping'); $topClassMapping = config('field.top_class_mapping');
$topFields = []; $topFields = [];
foreach ($topClassMapping as $key => $mapping) { foreach ($topClassMapping as $key => $mapping) {
$topFields[$key] = [ $topFields[$key] = [
'class_name' => $key, 'class_name' => $key,
]; ];
} }
foreach ($topClassMapping as $key => $mapping) { foreach ($topClassMapping as $key => $mapping) {
foreach ($secondClassList as $secondClass) { foreach ($secondClassList as $secondClass) {
if (in_array($secondClass['class_id'], $topClassMapping[$key])) { if (in_array($secondClass['class_id'], $topClassMapping[$key])) {
if (empty($secondClass['class_name_en'])) { if (empty($secondClass['class_name_en'])) {
continue; continue;
}
$topFields[$key]['img'] = \Arr::get(config('field.top_class_img_mapping'), $key);
$topFields[$key]['children'][] = $secondClass;
} }
$topFields[$key]['img'] = \Arr::get(config('field.top_class_img_mapping'), $key);
$topFields[$key]['children'][] = $secondClass;
} }
} }
return array_values($topFields);
} }
return array_values($topFields); return [];
} }
public static function getClassificationById($classId,$includeChildren = false) public static function getClassificationById($classId, $includeChildren = false)
{ {
$classification = Redis::hget('pool_class_info', $classId); $classData = \Http::get(config('website.footstone_url') . '/open/getClassification')->json();
$classification = json_decode($classification,true); if (isset($classData['code']) && $classData['code'] == 0) {
if ($classification['parent_id']) { $classificationCache = $classData['data'];
return $classification; $classification = [];
} foreach ($classificationCache as $class) {
//获取子分类 if ($class['class_id'] == $classId) {
$classificationCache = Redis::hgetall('pool_class_info'); $classification = $class;
$totalSkuNumber = 0;
foreach ($classificationCache as $classCache) {
$classCache = json_decode($classCache, true);
if ($classCache['parent_id'] == $classId) {
if (empty($classCache['class_name_en'])) {
continue;
} }
$classCache['sku_number'] = Redis::hget('pool_class_info_count', $classCache['class_id']) ?: 0;
$totalSkuNumber += $classCache['sku_number'];
$classification['children'][] = $classCache;
} }
if ($classification['parent_id']) {
return $classification;
}
//获取子分类
$totalSkuNumber = 0;
foreach ($classificationCache as $classCache) {
if ($classCache['parent_id'] == $classId) {
if (empty($classCache['class_name_en'])) {
continue;
}
$totalSkuNumber += $classCache['sku_number'];
$classification['children'][] = $classCache;
}
}
$classification['sku_number'] = $totalSkuNumber;
return $classification;
} }
$classification['sku_number'] = $totalSkuNumber; return [];
return $classification;
} }
} }
<?php
return [
'footstone_url' => env('FOOTSTONE_URL'),
];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment