123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- namespace App\Modules\Mini\Services;
- use App\Base\BaseService;
- use App\Models\Goods\Category;
- use App\Models\Goods\Goods;
- use App\Models\Setting;
- use Illuminate\Support\Facades\DB;
- class PageService extends BaseService
- {
- public function banner()
- {
- $banner = Setting::query()->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,
- ];
- });
- }
- }
|