Преглед изворни кода

[智价云] 增加大区城市列表

tangyuanwang пре 10 часа
родитељ
комит
f01d32f416

+ 26 - 0
app/Http/Controllers/Manager/Citys.php

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Manager;
 use App\Http\Controllers\Controller;
 use App\Http\Controllers\Controller;
 use App\Http\Requests\Manager\Citys as Request;
 use App\Http\Requests\Manager\Citys as Request;
 use App\Models\Manager\Citys as CitysModel;
 use App\Models\Manager\Citys as CitysModel;
+use App\Models\Manager\citysZoning as citysZoningModel;
 
 
 
 
 /**
 /**
@@ -28,4 +29,29 @@ class Citys extends Controller
         $result = $CitysModel->getCityList();
         $result = $CitysModel->getCityList();
         return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
         return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
     }
     }
+
+    /**
+     * 获取大区城市列表
+     * @author 唐远望
+     * @version 1.0
+     * @date 2026-03-18
+     * @param Request $request
+     */
+    public function list_zoning(citysZoningModel $citysZoningModel, CitysModel $CitysModel)
+    {
+        $zoning_result = $citysZoningModel->getList();
+        if (empty($zoning_result)) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => '']);
+        $city_result = $CitysModel->getCityList();
+        if (empty($city_result)) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => '']);
+        foreach ($zoning_result as $key => $value) {
+            $province_ids = explode(',', $value['province_ids']);
+            $zoning_result[$key]['city_list'] = [];
+            foreach ($city_result as $k => $v) {
+                if (in_array($v['id'], $province_ids)) {
+                    $zoning_result[$key]['city_list'][] = $v;
+                }
+            }
+        }
+        return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $zoning_result]);
+    }
 }
 }

+ 1 - 0
app/Http/Middleware/Manager/AccessAuth.php

@@ -24,6 +24,7 @@ class AccessAuth
         'manager/upload/get_sign_url',
         'manager/upload/get_sign_url',
         'manager/personnel_employee/personal_info',
         'manager/personnel_employee/personal_info',
         'manager/login/wechat_bind',
         'manager/login/wechat_bind',
+        'manager/citys/list_zoning',
     ];
     ];
     //默认配置
     //默认配置
     protected   $_config    = [
     protected   $_config    = [

+ 2 - 1
app/Http/Middleware/Manager/Login.php

@@ -16,7 +16,8 @@ class Login
         'manager/login/send_code',
         'manager/login/send_code',
         'manager/login/mobile_code',
         'manager/login/mobile_code',
         'manager/citys/list',
         'manager/citys/list',
-        'manager/login/wechat'
+        'manager/login/wechat',
+        'manager/citys/list_zoning',
     ];
     ];
     //默认配置
     //默认配置
     protected   $_config    = [
     protected   $_config    = [

+ 47 - 0
app/Models/Manager/citysZoning.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace App\Models\Manager;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 省份地区划分
+ * 
+ */
+class citysZoning extends Model
+{
+    use HasFactory;
+
+    // 与模型关联的表名
+    protected $table = 'city_zoning';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+
+
+    /**
+     * 获取列表
+     * @param   Bool    $force  是否强制更新
+     * 
+     */
+    public function getList($force = false)
+    {
+        // 结果数据
+        $list                  = $force ? [] : cache('admin:cityzoning:list');
+        // 不存在数据
+        if (!$list) {
+            // 从数据库获取数据
+            $data              = $this->query()->where([['status', '=', 0]])->get(['id', 'zoning_name', 'province_ids']);
+            // 是否有数据
+            $list              = $data ? $data->toArray() : [];
+            // 存起来
+            cache(['admin:cityzoning:list' => $list]);
+        }
+
+        // 返回结果
+        return                  $list;
+    }
+}