Kaynağa Gözat

省市区接口返回修改

duqinya 6 yıl önce
ebeveyn
işleme
c21ec980c2

+ 28 - 25
app/Http/Controllers/ConfigProvinceController.php

@@ -1,8 +1,12 @@
 <?php
 namespace App\Http\Controllers;
 use App\Models\ConfigProvince;
+use App\Repositories\ConfigProvinceRepository;
 use App\Transformers\ProvinceTransformer;
 use Illuminate\Http\Request;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 
 /**
  * Created by PhpStorm.
@@ -13,36 +17,35 @@ use Illuminate\Http\Request;
 
 class ConfigProvinceController extends Controller
 {
-    /**
-     * @api {get} /configProvince/province 获取省市区
-     * @apiVersion 0.1
-     * @apiName configProvince province
-     * @apiGroup configProvince
-     * @apiPermission none
-     * @apiSuccessExample 成功响应:
+
+    public function __construct(ConfigProvinceRepository $configProvinceRepository)
     {
-    "data": [],
-    "extra": {
-    "filters": [
-    "筛选字段1",
-    "筛选字段2"
-    ],
-    "columns": [
-    "列表显示数据字段1",
-    "列表显示数据字段2"
-    ]
-    },
-    "meta": {
-    "pagination": {}
-    }
+        $this->configProvince = $configProvinceRepository;
     }
-     */
 
     public function province(Request $request)
     {
-        $province = ConfigProvince::orderBy('id', 'desc')
-            ->paginate();
-        return $this->response->paginator($province, new ProvinceTransformer());
+        $province = $this->configProvince->index($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($province, new ProvinceTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($province));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'bjcity_id'
+            ],
+            'columns' => [
+                'bjcity_id',
+                'parent_id',
+                'area_name',
+                'level',
+                'sort',
+                'area_code',
+                'city_code',
+                'center',
+            ]
+        ];
+        return $data;
 
     }
 }

+ 21 - 0
app/Repositories/ConfigProvinceRepository.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace App\Repositories;
+
+use App\Models\ConfigProvince;
+
+class ConfigProvinceRepository {
+    public function __construct(ConfigProvince $configProvince) {
+        $this->configProvince = $configProvince;
+    }
+    //省市区列表
+    public function index($request)
+    {
+        $where = [];
+        if(isset($request['id'])){
+            $where[] = ['bjcity_id', '=', $request['bjcity_id']];
+        }
+
+        return $this->configProvince->where($where)->orderBy('bjcity_id', 'asc')->paginate(20);
+    }
+}

+ 5 - 2
app/Transformers/ProvinceTransformer.php

@@ -11,11 +11,14 @@ class ProvinceTransformer extends TransformerAbstract
     public function transform(ConfigProvince $province)
     {
         return [
-            'id'  => $province['id'],
+            'bjcity_id'  => $province['bjcity_id'],
             'parent_id'  => $province['parent_id'],
-            'name'    => $province['name'],
+            'area_name'    => $province['area_name'],
             'level'    => $province['level'],
             'sort'    => $province['sort'],
+            'area_code'    => $province['area_code'],
+            'city_code'    => $province['city_code'],
+            'center'    => $province['center'],
         ];
     }
 }