Переглянути джерело

增加行为日志 列表、筛选

durong 5 роки тому
батько
коміт
653bb3addb

+ 52 - 0
app/Http/Controllers/Behavior/LogController.php

@@ -0,0 +1,52 @@
+<?php
+namespace App\Http\Controllers\Behavior;
+use App\Http\Controllers\Controller;
+use App\Repositories\Behavior\BehaviorLogRepository;
+use App\Transformers\Behavior\BehaviorLogTransformer;
+use Illuminate\Http\Request;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/13
+ * Time: 下午7:01
+ */
+
+class LogController extends Controller
+{
+    public function __construct(BehaviorLogRepository $behaviorLogRepository)
+    {
+        $this->behaviorLogRepository = $behaviorLogRepository;
+    }
+
+    //日志列表
+    public function index(Request $request)
+    {
+        $logList = $this->behaviorLogRepository->log($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($logList, new BehaviorLogTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($logList));
+        $data = $fractal->createData($resource)->toArray();
+
+        $data['extra'] = [
+            'filters' => [
+                'type',
+                'created_at',
+            ],
+            'columns' => [
+                'id',
+                'username',
+                'behavior_id',
+                'operator_id',
+                'type',
+                'created_at',
+                'content',
+            ]
+        ];
+        return $data;
+
+    }
+
+}

+ 39 - 0
app/Repositories/Behavior/BehaviorLogRepository.php

@@ -0,0 +1,39 @@
+<?php
+namespace App\Repositories\Behavior;
+use App\Models\BehaviorOperationLog;
+
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/13
+ * Time: 下午7:11
+ */
+
+class BehaviorLogRepository
+{
+    public function __construct(BehaviorOperationLog $behaviorOperationLog)
+    {
+        $this->behaviorOperationLog = $behaviorOperationLog;
+    }
+
+    public function log($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['type'])){
+            $where[] = ['type', $request['type']];
+        }
+
+        return $this->behaviorOperationLog
+            ->where($where)
+            ->where(function($query) use ($request){
+                if(isset($request['created_at'])){
+                    $time = explode('_', $request['created_at']);
+                    $query->whereBetween('created_at', $time);
+                }
+            })
+            ->orderBy('id','desc')
+            ->paginate($perPage);
+    }
+
+}

+ 26 - 0
app/Transformers/Behavior/BehaviorLogTransformer.php

@@ -0,0 +1,26 @@
+<?php
+namespace App\Transformers\Behavior;
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/13
+ * Time: 下午7:26
+ */
+use App\Models\BehaviorOperationLog;
+use League\Fractal\TransformerAbstract;
+
+class BehaviorLogTransformer extends TransformerAbstract
+{
+    public function transform(BehaviorOperationLog $logList)
+    {
+        return [
+            'id' => $logList['id'],
+            'username' => $logList['username'],
+            'behavior_id' => $logList['behavior_id'],
+            'operator_id' => $logList['operator_id'],
+            'type' => $logList['type'],
+            'created_at' => date($logList['created_at']),
+            'content' => $logList['content']
+        ];
+    }
+}

+ 15 - 11
routes/api.php

@@ -84,17 +84,21 @@ $api->version('v1', [
             $api->put('topic/topicSetStatus', 'TopicController@setStatus');
         });
 
-        //行为
-        $api->group(['namespace' => 'Behavior'], function ($api) {
-            //行为列表
-            $api->get('behavior/list', 'BehaviorController@index');
-            //登记/注册行为
-            $api->post('behavior/create', 'BehaviorController@create');
-            //编辑行为
-            $api->put('behavior/edit', 'BehaviorController@edit');
-            //列表修改行为状态(行为管理)
-            $api->post('behavior/editStatus', 'BehaviorController@editStatus');
-        });
+    });
+    //行为
+    $api->group(['namespace' => 'Behavior'], function ($api) {
+        //行为列表
+        $api->get('behavior/list', 'BehaviorController@index');
+        //登记/注册行为
+        $api->post('behavior/create', 'BehaviorController@create');
+        //编辑行为
+        $api->put('behavior/edit', 'BehaviorController@edit');
+        //列表修改行为状态(行为管理)
+        $api->post('behavior/editStatus', 'BehaviorController@editStatus');
+
+        //行为日志列表
+        $api->get('behavior/log', 'LogController@index');
+
     });
 
 });