where("type", Setting::TYPE_BANNER)->get(); return $banner->filter(function (Setting $setting) { return $setting->value['is_use']; })->sortByDesc(function (Setting $setting) { return $setting->value['sort']; })->map(function (Setting $setting) { return [ "id" => $setting->id, "imageUrl" => $setting->value['imageUrl'], ]; })->values(); } public function categoryTree() { $categoryS = Category::with("childS")->where("parent_id", 0)->where("index_weight", ">", 0)->get(["id", "name", "thumb", "parent_id", "level", "weight"]); return $categoryS->map(function (Category $category) { return [ "id" => $category->id, "name" => $category->name, "thumb" => $category->thumb, "child" => $this->childTree($category), ]; }); } protected function childTree(Category $category) { if ($category->childS->isEmpty()) { return []; } return $category->childS->map(function (Category $category) { return [ "id" => $category->id, "name" => $category->name, "thumb" => $category->thumb, "child" => $this->childTree($category), ]; }); } public function hotGoods($num = 10) { $goods = Goods::orderByDesc("view_total")->limit($num)->get(); return $goods->map(function (Goods $g) { return [ "id" => $g->id, "name" => $g->name, "thumb" => $g->thumb, "view_total" => $g->view_total, ]; }); } public function recommendedGoods($num = 10) { $goods = Goods::orderBy(DB::raw("rand() "))->limit($num)->get(); return $goods->map(function (Goods $g) { return [ "id" => $g->id, "name" => $g->name, "thumb" => $g->thumb, ]; }); } }