ソースを参照

Merge branch 'durong' into develop

durong 5 年 前
コミット
143cb9b3d4

+ 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);
+    }
+
+}

+ 24 - 9
app/Repositories/Behavior/BehaviorRepository.php

@@ -170,11 +170,14 @@ class BehaviorRepository
         try {
             $res = $this->behavior->create($data);
             if ($res) {
+                $token =  JWTAuth::decode(JWTAuth::getToken());
+                $uid = $token['user']->id;
+                $username = $token['user']->username;
                 $cerate_bahavior_data = [
-                    'operator_id' => Auth::user()->id,
+                    'operator_id' => $uid,
                     'behavior_id' => $res['id'],
-                    'username' => Auth::user()->username,
-                    'content' => json_encode($data),
+                    'username' => $username,
+                    'content' => '创建'.$request['name'].'行为',
                     'type' => 0,
                     'created_at' => date('Y-m-d H:i:s'),
                     'updated_at' => date('Y-m-d H:i:s')
@@ -229,10 +232,13 @@ class BehaviorRepository
         try{
             $res = $this->behavior->where('id',$request['id'])->update($update_bahavior);
                 if ($res) {
+                    $token =  JWTAuth::decode(JWTAuth::getToken());
+                    $uid = $token['user']->id;
+                    $username = $token['user']->username;
                     $cerate_bahavior_data = [
-                        'operator_id' => Auth::user()->id,
+                        'operator_id' => $uid,
                         'behavior_id' => $request['id'],
-                        'username' => Auth::user()->username,
+                        'username' => $username,
                         'content' => json_encode($update_bahavior),
                         'type' => 1,
                         'created_at' => date('Y-m-d H:i:s'),
@@ -265,17 +271,26 @@ class BehaviorRepository
             'is_open' => $request['is_open'],
             'updated_at' => date('Y-m-d H:i:s')
         ];
+        if ($request['is_open'] == 0){
+            $is_open = '关闭';
+        }else{
+            $is_open = '开启';
+        }
+        $behavior_name = $behavior->name;
 
         DB::beginTransaction();
         try {
             $res = $behavior->where('id',$request['id'])->update($behavior_array);
             if ($res) {
+                $token =  JWTAuth::decode(JWTAuth::getToken());
+                $uid = $token['user']->id;
+                $username = $token['user']->username;
                 $cerate_bahavior_data = [
-                    'operator_id' => Auth::user()->id,
+                    'operator_id' => $uid,
                     'behavior_id' => $request['id'],
-                    'username' => Auth::user()->username,
-                    'content' => json_encode($behavior_array),
-                    'type' => 1,
+                    'username' => $username,
+                    'content' => $is_open.'了'.$behavior_name.'行为',
+                    'type' => 2,
                     'created_at' => date('Y-m-d H:i:s'),
                     'updated_at' => date('Y-m-d H:i:s')
                 ];

+ 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');
+
     });
 
 });