Browse Source

2023-5-22-1 新增服务区

yingzi 2 years ago
parent
commit
e42e9f589b
1 changed files with 14 additions and 8 deletions
  1. 14 8
      app/api/controller/User.php

+ 14 - 8
app/api/controller/User.php

@@ -347,16 +347,22 @@ class User extends BaseController
         if(!empty($post["service_area"]) && is_array($post["service_area"])){
             $saveAre=[];
             foreach($post["service_area"] as  $v){
-                $str = preg_replace('/(省|市|区|县|市辖区)/u', '', $v) . '市辖区';
+                $str = str_replace(['省','市','区','县'],['','','',''],$v);
                 $arr = explode(",",$str);
-                $city_id = $cityModel->where('merger_name','like',"%".$arr[1].",".$arr[2])->value('id');
-                if(!$city_id) $city_id = $cityModel->where('merger_name','like',"%".$arr[0].",".$arr[1])->value('id');
-                $saveAre[] =  $city_id;
-
-            }
-            if(!empty($saveAre)){
-                $save["service_area"] = implode(",", $saveAre);
+                $city = $cityModel->where('merger_name','like',"%".$arr[1].",".$arr[2])->find();
+                if(!$city) {
+                    $city = $cityModel->where('merger_name', 'like', "%" . $arr[0] . "," . $arr[1])->find();
+                }
+                if($city && $city['parent_id'] == 0 && $city['level'] == 2 && $city['name'] == '市辖区'){
+                    $subCities = $cityModel->where('parent_id', $city['id'])->column('id');
+                    if($subCities){
+                        $saveAre = array_merge($saveAre, $subCities);
+                    }
+                }else{
+                    $saveAre[] = $city ? $city['id'] : 0;
+                }
             }
+            $save["service_area"] = implode(",", $saveAre);
         }
         //服务内容
         $serviceTypeModel = new ServiceTypeModel();