更新分类

/**

     * 更新分类路径 & 层级

     * @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, '更新完成!');

        

    }


暂无评论

发布评论