hrjy 2 years ago
parent
commit
b87181b065
2 changed files with 19 additions and 6 deletions
  1. 15 4
      app/api/controller/PublicController.php
  2. 4 2
      app/models/system/SystemStore.php

+ 15 - 4
app/api/controller/PublicController.php

@@ -289,14 +289,25 @@ class PublicController
      */
     public function store_list(Request $request)
     {
-        list($latitude, $longitude, $page, $limit) = UtilService::getMore([
+        list($latitude, $longitude, $page, $limit, $cate_id, $name, $sales,$address) = UtilService::getMore([
             ['latitude', ''],
             ['longitude', ''],
             ['page', 1],
-            ['limit', 10]
+            ['limit', 10],
+            ['cate_id'],
+            ['name', ''],
+            ['sales', ''],
+            ['address']
         ], $request, true);
-        $list = SystemStore::lst($latitude, $longitude, $page, $limit);
-        if (!$list) $list = [];
+//        if (!empty($address)){
+//            // 地址获取经纬度
+//            $res = json_decode(do_request('https://apis.map.qq.com/ws/geocoder/v1/?address='.$address.'&key=4A5BZ-GV7K4-G2PUH-DIIQJ-CIG6T-CKFT2', [], null,false));
+//            $location = $res->result->location;
+//            $latitude = $location->lat;
+//            $longitude = $location->lng;
+//        }
+        if ($address) $address = urldecode($address);
+        $list = SystemStore::lst($latitude, $longitude, $page, $limit,$name, $sales,$address);
         $data['list'] = $list;
         $data['tengxun_map_key'] = sys_config('tengxun_map_key');
         return app('json')->successful($data);

+ 4 - 2
app/models/system/SystemStore.php

@@ -139,12 +139,11 @@ class SystemStore extends BaseModel
         $field = "(round(6367000 * 2 * asin(sqrt(pow(sin(((latitude * pi()) / 180 - ({$latitude} * pi()) / 180) / 2), 2) + cos(({$latitude} * pi()) / 180) * cos((latitude * pi()) / 180) * pow(sin(((longitude * pi()) / 180 - ({$longitude} * pi()) / 180) / 2), 2))))) AS distance";
         return $field;
     }
-
     /**
      * 门店列表
      * @return mixed
      */
-    public static function lst($latitude, $longitude, $page, $limit)
+    public static function lst($latitude, $longitude, $page, $limit, $name, $sales, $address)
     {
         $model = new self();
         $model = $model->where('is_del', 0);
@@ -152,6 +151,9 @@ class SystemStore extends BaseModel
         if ($latitude && $longitude) {
             $model = $model->field(['*', self::distanceSql($latitude, $longitude)])->order('distance asc');
         }
+        if ($name) $model = $model->where('name', 'like', '%'.$name.'%');
+        if ($sales) $model = $model->order('sales DESC');
+        if ($address) $model = $model->where('address', 'like', '%'.$address.'%');
         $list = $model->page((int)$page, (int)$limit)
             ->select()
             ->hidden(['is_show', 'is_del'])