From 2ac0754aea7f4e806b64076242af4122f499ceb9 Mon Sep 17 00:00:00 2001 From: yanzai Date: Fri, 26 Jan 2024 20:30:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=8B=BC=E6=8E=A5sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/HospitalController.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/HospitalController.php b/app/Http/Controllers/HospitalController.php index 328dd0d..5f23a59 100644 --- a/app/Http/Controllers/HospitalController.php +++ b/app/Http/Controllers/HospitalController.php @@ -25,13 +25,19 @@ class HospitalController extends Controller $id = $request->post('id'); $latitude = $request->post('latitude'); $longitude = $request->post('longitude'); - $info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude', DB::raw('(ROUND(6371 * acos(cos(radians(' . $latitude . ')) * cos(radians(latitude)) * cos(radians(longitude) - radians(' . $longitude . ')) + sin(radians(' . $latitude . ')) * sin(radians(latitude))), 2)) AS distance')) + $info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude', + DB::raw('(ROUND(6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude) + - radians(?)) + sin(radians(?)) * sin(radians(latitude))), 2)) AS distance')) + ->setBindings([$latitude, $longitude, $latitude]) ->where('id', $id) ->where('status', 1) ->where('del', 2) ->first(); if (!$info) { - $info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude', DB::raw('(ROUND(6371 * acos(cos(radians(' . $latitude . ')) * cos(radians(latitude)) * cos(radians(longitude) - radians(' . $longitude . ')) + sin(radians(' . $latitude . ')) * sin(radians(latitude))), 2)) AS distance')) + $info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude', + DB::raw('(ROUND(6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude) + - radians(?)) + sin(radians(?)) * sin(radians(latitude))), 2)) AS distance')) + ->setBindings([$latitude, $longitude, $latitude]) ->where('dev', 2) ->where('status', 1) ->where('del', 2) @@ -58,7 +64,8 @@ class HospitalController extends Controller Login::user(); $latitude = $request->post('latitude'); $longitude = $request->post('longitude'); - $query = Hospital::select('id', 'address', 'logo', 'name', 'phone', DB::raw('(ROUND(6371 * acos(cos(radians(' . $latitude . ')) * cos(radians(latitude)) * cos(radians(longitude) - radians(' . $longitude . ')) + sin(radians(' . $latitude . ')) * sin(radians(latitude))), 2)) AS distance')) + $query = Hospital::select('id', 'address', 'logo', 'name', 'phone', DB::raw('(ROUND(6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude) - radians(?)) + sin(radians(?)) * sin(radians(latitude))), 2)) AS distance')) + ->setBindings([$latitude, $longitude, $latitude]) ->where('status', 1)->where('del', 2); if (Login::$info->dev != 1) $query->where('dev', 2); $list = $query->orderBy('distance', 'asc')->get();