Procházet zdrojové kódy

[SAAS] 城市大区信息接口补充

tangyuanwang před 1 dnem
rodič
revize
04cdbe1042

+ 58 - 0
app/Http/Controllers/Api/Citys.php

@@ -0,0 +1,58 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Http\Controllers\Api\Api;
+use App\Http\Controllers\Controller;
+use App\Http\Requests\Manager\Citys as Request;
+use App\Models\Api\Citys as CitysModel;
+use App\Models\Api\citysZoning as citysZoningModel;
+
+
+/**
+ * 城市管理
+ * @author 唐远望
+ * @version 1.0
+ * @date 2026-04-28
+ */
+class Citys extends Api
+{
+
+    /**
+     * 获取城市列表
+     * @author 唐远望
+     * @version 1.0
+     * @date 2026-04-28
+     * @param Request $request
+     */
+    public function list(CitysModel $CitysModel)
+    {
+        $result = $CitysModel->getCityList();
+        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/Controllers/Api/Login.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers\Api;
 
+use App\Http\Controllers\Api\Api;
 use App\Models\Api\Personnel\Employee as EmployeeModel;
 use App\Http\Requests\Api\Login as Request;
 use App\Facades\Servers\Sms\VerifyCode as Sms;

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

@@ -0,0 +1,47 @@
+<?php
+
+namespace App\Models\Api;
+
+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;
+    }
+}

+ 4 - 0
routes/api.php

@@ -13,6 +13,10 @@ use Illuminate\Support\Facades\Route;
 | is assigned the "api" middleware group. Enjoy building your API!
 |
 */
+//城市列表
+Route::any('citys/list', [App\Http\Controllers\Api\Citys::class, 'list']);
+//大区城市列表
+Route::any('citys/list_zoning', [App\Http\Controllers\Api\Citys::class, 'list_zoning']);
 
 // 登录
 Route::any('login/index', [App\Http\Controllers\Api\Login::class, 'index']);