diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php index bb935fa49..fa680a536 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['near_store']]; } /**