| | |
| | | { |
| | | $model = new static; |
| | | if (!Cache::get('category_' . $model::$app_id)) { |
| | | $data = $model->with(['images'])->order(['sort' => 'asc', 'create_time' => 'asc'])->select(); |
| | | $data = $model->with(['images'])->where(['shop_supplier_id'=>0])->order(['sort' => 'asc', 'create_time' => 'asc'])->select(); |
| | | $all = !empty($data) ? $data->toArray() : []; |
| | | $tree = []; |
| | | foreach ($all as $first) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 所有分类 |
| | | */ |
| | | public static function getCategoryALL() |
| | | { |
| | | $model = new static; |
| | | if (!Cache::get('category_all_' . $model::$app_id)) { |
| | | $data = $model->with(['images'])->order(['sort' => 'asc', 'create_time' => 'asc'])->select(); |
| | | $all = !empty($data) ? $data->toArray() : []; |
| | | $tree = []; |
| | | foreach ($all as $first) { |
| | | if ($first['parent_id'] != 0) continue; |
| | | $twoTree = []; |
| | | foreach ($all as $two) { |
| | | if ($two['parent_id'] != $first['category_id']) continue; |
| | | $threeTree = []; |
| | | foreach ($all as $three) |
| | | $three['parent_id'] == $two['category_id'] |
| | | && $threeTree[$three['category_id']] = $three; |
| | | !empty($threeTree) && $two['child'] = $threeTree; |
| | | array_push($twoTree, $two); |
| | | } |
| | | if (!empty($twoTree)) { |
| | | $temp_two_tree = array_column($twoTree, 'sort'); |
| | | array_multisort($temp_two_tree, SORT_ASC, $twoTree); |
| | | $first['child'] = $twoTree; |
| | | } |
| | | array_push($tree, $first); |
| | | } |
| | | Cache::tag('cache')->set('category_all_' . $model::$app_id, compact('all', 'tree')); |
| | | } |
| | | return Cache::get('category_all_' . $model::$app_id); |
| | | } |
| | | |
| | | /** |
| | | * 获取所有分类 |
| | | */ |
| | | public static function getCacheAll() |
| | |
| | | */ |
| | | public static function getCacheTree() |
| | | { |
| | | return self::getALL()['tree']; |
| | | } |
| | | public static function getCacheTreeShop($shop_supplier_id=0) |
| | | { |
| | | if ($shop_supplier_id){ |
| | | return self::getSupplierCacheTree($shop_supplier_id); |
| | | } |
| | | return self::getALL()['tree']; |
| | | } |
| | | |
| | |
| | | { |
| | | return $this->field(['category_id', 'name', 'parent_id'])->where('category_id', 'in', $ids)->select(); |
| | | } |
| | | /** |
| | | * 所有分类(商户) |
| | | */ |
| | | public static function getSupplierALL($shop_supplier_id) |
| | | { |
| | | $model = new static; |
| | | if (!Cache::get('category_supplier_' . $shop_supplier_id)) { |
| | | $data = $model->with(['images']) |
| | | ->where('shop_supplier_id','in',[0,$shop_supplier_id]) |
| | | ->order(['sort' => 'asc', 'create_time' => 'asc'])->select(); |
| | | $all = !empty($data) ? $data->toArray() : []; |
| | | $tree = []; |
| | | foreach ($all as $first) { |
| | | if ($first['parent_id'] != 0) continue; |
| | | $twoTree = []; |
| | | foreach ($all as $two) { |
| | | if ($two['parent_id'] != $first['category_id']) continue; |
| | | $threeTree = []; |
| | | foreach ($all as $three) |
| | | $three['parent_id'] == $two['category_id'] |
| | | && $threeTree[$three['category_id']] = $three; |
| | | !empty($threeTree) && $two['child'] = $threeTree; |
| | | array_push($twoTree, $two); |
| | | } |
| | | if (!empty($twoTree)) { |
| | | $temp_two_tree = array_column($twoTree, 'sort'); |
| | | array_multisort($temp_two_tree, SORT_ASC, $twoTree); |
| | | $first['child'] = $twoTree; |
| | | } |
| | | array_push($tree, $first); |
| | | } |
| | | Cache::tag('cache')->set('category_supplier_' .$shop_supplier_id, compact('all', 'tree')); |
| | | } |
| | | return Cache::get('category_supplier_' . $shop_supplier_id); |
| | | } |
| | | |
| | | /** |
| | | * 获取所有分类 |
| | | */ |
| | | public static function getSupplierCacheAll($shop_supplier_id) |
| | | { |
| | | return self::getSupplierALL($shop_supplier_id)['all']; |
| | | } |
| | | |
| | | /** |
| | | * 获取所有分类(树状结构) |
| | | */ |
| | | public static function getSupplierCacheTree($shop_supplier_id) |
| | | { |
| | | return self::getSupplierALL($shop_supplier_id)['tree']; |
| | | } |
| | | |
| | | /** |
| | | * 获取所有分类(树状结构) |
| | | * @return string |
| | | */ |
| | | public static function getSupplierCacheTreeJson($shop_supplier_id) |
| | | { |
| | | return json_encode(static::getSupplierCacheTree($shop_supplier_id)); |
| | | } |
| | | /** |
| | | * 获取所有一级分类 |
| | | */ |
| | | public static function getSupplierFirstCategory($shop_supplier_id) |
| | | { |
| | | return (new static())->where('parent_id', '=', 0) |
| | | ->where('shop_supplier_id', '=', $shop_supplier_id) |
| | | ->order(['sort' => 'asc', 'create_time' => 'asc']) |
| | | ->select(); |
| | | } |
| | | |
| | | } |