/**
* 更新分类路径 & 层级
* @param [type] $params [description]
* @return [type] [description]
*/
public static function updateCategoryPath($params)
{
$result = [];
$parentId = [0];
$level = 1;
while (!empty($parentId)) {
$data = TsjAliexpressCategoryService::query()->whereIn('parentId',$parentId)->get()->toArray();
if (!empty($data)) {
$parentId = [];
foreach ($data as $k => $v) {
// 存在上级目录
if ($v['parentId'] != 0 && isset($result[$v['parentId']])) {
// 获取上级分类路径
$parentIdPath = json_decode($result[$v['parentId']]['categoryIdPath']);
$parentIdNamePath = json_decode($result[$v['parentId']]['categoryNamepath']);
// 在上级路径下,拼上当前分类路径
$parentIdPath[] = $v['categoryId'];
$parentIdNamePath[] = $v['categoryName'];
// 存储
$result[$v['categoryId']] = [
'categoryIdPath' => json_encode($parentIdPath),
'categoryNamepath' => json_encode($parentIdNamePath),
'level' => $level
];
} else {
// 根目录
$result[$v['categoryId']] = [
'categoryIdPath' => json_encode([$v['categoryId']]),
'categoryNamepath' => json_encode([$v['categoryName']]),
'level' => $level
];
}
$parentId[] = $v['categoryId'];
}
unset($data);unset($k);unset($v);
++$level;
} else {
$parentId = [];
}
}
// 更新数据库
if (!empty($result)) {
foreach ($result as $key => $val) {
// 更新数据库操作
}
}
abort(0, '更新完成!');
}