From 04e8f6ecccbb4f664f2bce0949091f853c3955d4 Mon Sep 17 00:00:00 2001 From: liu <1873441552@qq.com> Date: Sat, 29 Jun 2024 16:50:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=9C=80=E8=BF=91=E5=BA=97=E9=93=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/logic/order/OrderLogic.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php index bb935fa49..de3534856 100644 --- a/app/api/logic/order/OrderLogic.php +++ b/app/api/logic/order/OrderLogic.php @@ -166,11 +166,30 @@ class OrderLogic extends BaseLogic $order['is_vip'] = 1; } + //处理返回最近的店铺 + $store['near_store'] = []; + if($params['lat'] && $params['long']){ + $storeAll = SystemStore::field('id,name,phone,address,detailed_address,latitude,longitude')->select()->toArray(); + $nearestStore = null; + $minDistance = PHP_FLOAT_MAX; + foreach ($storeAll as $value){ + $value['distance'] = haversineDistance($value['latitude'],$value['longitude'],$params['lat'] ,$params['long']); + if ($value['distance'] < $minDistance) { + $minDistance = $value['distance']; + $nearestStore = $value; + } + } + if ($nearestStore) { + $store['near_store'] =$nearestStore; + } + + } + } catch (\Exception $e) { self::setError($e->getMessage()); return false; } - return ['order' => $order, 'cart_list' => $cart_select]; + return ['order' => $order, 'cart_list' => $cart_select,'shopInfo'=>$store]; } /** From fb7a7fe68ff0fb71088956ae1f5e3088330397ed Mon Sep 17 00:00:00 2001 From: liu <1873441552@qq.com> Date: Sat, 29 Jun 2024 16:52:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/logic/order/OrderLogic.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php index de3534856..fa680a536 100644 --- a/app/api/logic/order/OrderLogic.php +++ b/app/api/logic/order/OrderLogic.php @@ -189,7 +189,7 @@ class OrderLogic extends BaseLogic self::setError($e->getMessage()); return false; } - return ['order' => $order, 'cart_list' => $cart_select,'shopInfo'=>$store]; + return ['order' => $order, 'cart_list' => $cart_select,'shopInfo'=>$store['near_store']]; } /**