|
|
@ -74,14 +74,27 @@ class LocationService implements LocationServiceInterface |
|
|
['city_id','=',$cityId] |
|
|
['city_id','=',$cityId] |
|
|
]) |
|
|
]) |
|
|
->get(); |
|
|
->get(); |
|
|
foreach ($res as &$v){ |
|
|
|
|
|
|
|
|
foreach ($res as &$m){ |
|
|
if(!empty($lng) && !empty($lat)){ |
|
|
if(!empty($lng) && !empty($lat)){ |
|
|
$v->distance = ($this->getDistance($v->lng,$v->lat,$lng,$lat)).' km'; |
|
|
|
|
|
|
|
|
$m->distance_num = $this->getDistance($m->lng, $m->lat, $lng, $lat); |
|
|
|
|
|
$m->distance = $m->distance_num.' km'; |
|
|
}else{ |
|
|
}else{ |
|
|
$v->distance = ''; |
|
|
|
|
|
|
|
|
$m->distance_num = 0; |
|
|
|
|
|
$m->distance = ''; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
return $res; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$res = collect($res->toArray())->sortBy(function ($area, $key) { |
|
|
|
|
|
return $area['distance_num']; |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
$res = collect($res->all())->map(function ($area, $key) { |
|
|
|
|
|
$markets = collect($area['markets'])->sortBy('distance_num'); |
|
|
|
|
|
$area['markets'] = $markets->values()->all(); |
|
|
|
|
|
return $area; |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
return $res->all(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function getNearestMarket($lng,$lat) |
|
|
public function getNearestMarket($lng,$lat) |
|
|
|