OrderService.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Modules\Admin\Services;
  3. use App\Base\BaseService;
  4. use App\Models\Order\Order;
  5. use App\Models\Order\OrderGoods;
  6. use Illuminate\Database\Eloquent\Builder;
  7. use Illuminate\Support\Arr;
  8. class OrderService extends BaseService
  9. {
  10. public function paginate($params)
  11. {
  12. $p = Order::query()->orderByDesc("id")->paginate($params['page_size']);
  13. return [
  14. "total" => $p->total(),
  15. "page_total" => $p->lastPage(),
  16. "list" => array_map(function (Order $model) {
  17. /** @var OrderGoods $firstGoods */
  18. $firstGoods = $model->goods->first();
  19. return [
  20. "id" => $model->id,
  21. "no" => $model->goods->pluck("sn")->implode("\sn"),
  22. "goods_name" => $firstGoods->goods->name,
  23. "goods_sn" => $firstGoods->sn,
  24. "user_id" => $model->user_id,
  25. "thumb" => $firstGoods->goods->thumb,
  26. "email" => $model->user->email,
  27. "created_at" => $model->created_at->format("Y-m-d H:i:s"),
  28. ];
  29. }, $p->items()),
  30. ];
  31. }
  32. }