123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace App\Http\Resources\App;
- use App\Utils\GaodeMaps;
- use Carbon\Carbon;
- use Illuminate\Http\Resources\Json\JsonResource;
- class BikeResource extends JsonResource
- {
- /**
- * Transform the resource into an array.
- *
- * @param \Illuminate\Http\Request $request
- * @return array
- */
- public function toArray($request)
- {
- $model = $this->resource;
- $last_use_time = $model->last_use_bike_end_time;
- $carbon = Carbon::parse($last_use_time);
- $minutes = (new Carbon)->diffInMinutes($carbon, true);
- $hours = (new Carbon)->diffInHours($carbon, true);
- $days = (new Carbon)->diffInDays($carbon, true);
- $lngLat = $model->last_location ? [json_decode($model->last_location)->lng ,json_decode($model->last_location)->lat]: [113.801689,34.815298];
- $tab_name = '';
- if(!(bool)$model->is_link){
- // 离线
- $tab_name = '中控离线';
- } elseif ((bool)$model->is_trouble) {
- // 故障上线
- if((bool)$model->put_status){
- $tab_name = '故障';
- }else{
- // 故障下线
- $tab_name = '故障下线';
- }
- } elseif (!(bool)$model->is_low_battery_power) {
- // 低电量
- $tab_name = '低电量';
- } elseif (!(bool)$model->put_status) {
- // 下线 未投放
- $tab_name = '未投放';
- } elseif ((bool)$model->is_riding) {
- //骑行中
- $tab_name = '骑行中';
- } elseif(!(bool)$model->is_in_parking){
- // 不在停车区
- $tab_name = '不在停车区';
- }else {
- // 未骑行
- $tab_name = '未骑行';
- }
- $data = [
- 'not_use_time' => $days.'天'.($hours % 24).'时'.($minutes % 60).'分钟',
- 'id' => $model->id,
- 'bike_no' => $model->bike_no,
- 'box_no' => $model->box_no,
- 'is_link' => $model->put_status, // 是否在线 用表示 投放状态
- 'battery_power' => $model->battery_power,
- 'is_riding' => $model->is_riding,
- 'area_name' => $model->areas->name ?? '',
- 'last_location'=>$lngLat,
- 'location' => '',//GaodeMaps::getAddress($lngLat),
- 'tab_name' => $tab_name,
- 'average_profit' => Carbon::today()->diffInDays(Carbon::parse($model->total_money_time)) == 0 ? '0.00': bcdiv($model->total_money,Carbon::today()->diffInDays(Carbon::parse($model->total_money_time)),2)
- ];
- return $data;
- }
- }
|