diff --git a/app/Service/v3/Implementations/LocationService.php b/app/Service/v3/Implementations/LocationService.php index ad32232..df22dc0 100644 --- a/app/Service/v3/Implementations/LocationService.php +++ b/app/Service/v3/Implementations/LocationService.php @@ -74,14 +74,27 @@ class LocationService implements LocationServiceInterface ['city_id','=',$cityId] ]) ->get(); - foreach ($res as &$v){ + foreach ($res as &$m){ 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{ - $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)