1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?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)
- {
- //TODO kphcdr
- $p = Order::query()->when($params['status'], function (Builder $query) use ($params) {
- return $query->where("status", $params['status']);
- })->when($params['name'], function (Builder $query) use ($params) {
- return $query->where("name", "like", "%{$params['name']}%");
- })->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" => "",
- "goods_sn" => "商品型号",
- "user_id" => 123,
- "thumb" => $model->goods->first(),
- "email" => "user@example.com",
- "created_at" => "2023-05-05 15:44:14",
- ];
- }, $p->items()),
- ];
- }
- }
|