<?php namespace App\Modules\Admin\Services; use App\Base\BaseService; use App\Models\Order\Order; use App\Models\Order\OrderGoods; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Arr; class OrderService extends BaseService { public function paginate($params) { $p = Order::query()->orderByDesc("id")->paginate($params['page_size']); return [ "total" => $p->total(), "page_total" => $p->lastPage(), "list" => array_map(function (Order $model) { /** @var OrderGoods $firstGoods */ $firstGoods = $model->goods->first(); return [ "id" => $model->id, "no" => $model->goods->pluck("sn")->implode("\sn"), "goods_name" => $firstGoods->goods->name, "goods_sn" => $firstGoods->sn, "user_id" => $model->user_id, "thumb" => $firstGoods->goods->thumb, "email" => $model->user->email, "created_at" => $model->created_at->format("Y-m-d H:i:s"), ]; }, $p->items()), ]; } }