RentOrderTransformer.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Mead
  5. * Date: 2019/8/5
  6. * Time: 2:44 PM
  7. */
  8. namespace App\Transformers;
  9. use App\Models\LocationLogMongodb;
  10. use App\Models\Order;
  11. use App\Models\RentOrder;
  12. use League\Fractal\TransformerAbstract;
  13. class RentOrderTransformer extends TransformerAbstract
  14. {
  15. protected $availableIncludes = ['locations'];
  16. public function transform(RentOrder $model)
  17. {
  18. return [
  19. 'no' => $model->no,
  20. 'bike_no' => $model->bike_no,
  21. 'start_use_bike_time' => $model->start_use_bike_time->format('Y-m-d H:i:s'),
  22. 'rent_money' => $model->rent_money,
  23. 'rent_total_money' => $model->rent_total_money,
  24. 'rent_preferential_money' => $model->rent_preferential_money,
  25. 'rent_pay_status' => $model->rent_pay_status,
  26. 'end_use_bike_time' => $model->end_use_bike_time ? $model->end_use_bike_time->format('Y-m-d H:i:s') : '',
  27. 'use_bike_time_length' => format_minutes($model->use_bike_time_length),
  28. 'use_bike_distance_length' => format_mileage($model->use_bike_distance_length),
  29. 'time_money' => $model->time_money,
  30. 'distance_money' => $model->distance_money,
  31. 'dispatch_money' => $model->dispatch_money,
  32. 'preferential_money' => $model->preferential_money,
  33. 'total_money' => $model->total_money,
  34. 'order_total_money' => $model->order_total_money,
  35. 'pay_status' => $model->pay_status,
  36. 'status' => $model->status,
  37. 'created_at' => $model->created_at->format('Y-m-d H:i:s')
  38. ];
  39. }
  40. public function includeLocations(RentOrder $order)
  41. {
  42. $locations = LocationLogMongodb::where('order_id', $order->id)->where('is_rent',LocationLogMongodb::RENT_YES)->where('latitude', '>', 0)->orderBy('created_at', 'asc')->get();
  43. return $this->collection($locations, new LocationLogsTransformer);
  44. }
  45. }