duqinya преди 6 години
родител
ревизия
bff4f23b07

+ 46 - 0
app/Http/Controllers/ConfigPickupNodeController.php

@@ -0,0 +1,46 @@
+<?php
+namespace App\Http\Controllers;
+use App\Repositories\ConfigPickupNodeRepository;
+use App\Transformers\PickupNodeTransformer;
+use Illuminate\Http\Request;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+
+/**
+ * Created by PhpStorm.
+ * User: qinyaer
+ * Date: 2019/4/25
+ * Time: 上午10:09
+ */
+
+class ConfigPickupNodeController extends BaseController
+{
+    public function __construct(ConfigPickupNodeRepository $configPickupNodeRepository) {
+
+        $this->configPickupNodeRepository = $configPickupNodeRepository;
+    }
+
+    public function index(Request $request)
+    {
+        $configPickupNode = $this->configPickupNodeRepository->index($request->all());
+        if (count($configPickupNode)>0) {
+
+            foreach ($configPickupNode as $k => $v) {
+                $configPickupNode[$k]->receive_type = $v->receive_type == 0 ? '信任交付' : '手动确认接货';
+
+                $configPickupNode[$k]->status = $v->status == 0 ? '启用' : '禁用';
+
+                $configPickupNode[$k]->store_ids = $v->getStoreNameAttribute();//储存方式名称
+                $configPickupNode[$k]->pickup_group_id = $v->getGroupNameAttribute();//自提点分组名称
+            }
+        }
+
+        $fractal = new Manager();
+        $resource = new Collection($configPickupNode , new PickupNodeTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($configPickupNode));
+        $data = $fractal->createData($resource)->toArray();
+        return $this->jsonSuccess($data);
+    }
+
+}

+ 53 - 0
app/Models/ConfigPickupNode.php

@@ -0,0 +1,53 @@
+<?php
+
+namespace App\Models;
+
+
+class ConfigPickupNode extends BaseModel
+{
+    protected  $table = 'config_pickup_node';
+
+    /**
+     * 可被批量赋值的字段
+     * @var array
+     */
+    protected $fillable = ['pickup_group_id','store_ids','city_name','city_id','name','address','longitude','latitude','pickup_code','work_time','manager_name','manager_mobile','store_ids','receive_type'];
+
+    //一对多关联储存方式表
+    public function configStoreType()
+    {
+        return $this->hasMany('App\Models\ConfigStoreType','store_ids');
+    }
+
+    //一对多关联自提点分组表
+    public function configPickupGroup()
+    {
+        return $this->hasMany('App\Models\configPickupGroup','pickup_group_id');
+    }
+
+    //获取储存方式名称
+    public function getStoreNameAttribute()
+    {
+        $storeId = ConfigStoreType::find($this->store_ids);
+
+        if($storeId){
+            return $storeId->name;
+        }
+        return '';
+
+    }
+
+    //获取自提点分组名称
+    public function getGroupNameAttribute()
+    {
+        $groupName = ConfigPickupGroup::find($this->pickup_group_id);
+
+        if($groupName){
+            return $groupName->name;
+        }
+        return '';
+
+    }
+
+
+}

+ 25 - 0
app/Repositories/ConfigPickupNodeRepository.php

@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Repositories;
+
+
+
+use App\Models\ConfigPickupNode;
+
+class ConfigPickupNodeRepository {
+    public function __construct(ConfigPickupNode $configPickupNode) {
+        $this->configPickupNode = $configPickupNode;
+    }
+    //列表
+    public function index($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : env('PER_PAGE');
+        if (isset($request['keyword'])) {
+            $this->configPickupNode = $this->configPickupNode
+                ->orderBy('id', 'desc')
+                ->where('name', 'like', "{$request['keyword']}%");
+    }
+
+    return $this->configPickupNode->paginate($perPage);
+}
+}

+ 31 - 0
app/Transformers/PickupNodeTransformer.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Transformers;
+
+use App\Models\ConfigPickupNode;
+use League\Fractal\TransformerAbstract;
+
+class PickupNodeTransformer extends TransformerAbstract
+{
+
+    public function transform(ConfigPickupNode $ConfigPickupNode)
+    {
+        return [
+            'id' => $ConfigPickupNode['id'],
+            'city_id' => $ConfigPickupNode['city_id'],
+            'city_name' => $ConfigPickupNode['city_name'],
+            'name'=> $ConfigPickupNode['name'],
+            'address' => $ConfigPickupNode['address'],
+            'work_time' => $ConfigPickupNode['work_time'],
+            'manager_name' => $ConfigPickupNode['manager_name'],
+            'manager_mobile' => $ConfigPickupNode['manager_mobile'],
+            'receive_type' => $ConfigPickupNode['receive_type'],
+            'longitude' => $ConfigPickupNode['longitude'],
+            'latitude' => $ConfigPickupNode['latitude'],
+            'store_ids' => $ConfigPickupNode['store_ids'],
+            'pickup_group_id' => $ConfigPickupNode['pickup_group_id'],
+            'status' => $ConfigPickupNode['status'],
+        ];
+
+    }
+}