Преглед на файлове

新增行为、行为列表、行为各个筛选

durong преди 5 години
родител
ревизия
fd28a254df
променени са 2 файла, в които са добавени 84 реда и са изтрити 43 реда
  1. 10 38
      app/Http/Controllers/Behavior/BehaviorController.php
  2. 74 5
      app/Repositories/Behavior/BehaviorRepository.php

+ 10 - 38
app/Http/Controllers/Behavior/BehaviorController.php

@@ -28,46 +28,12 @@ class BehaviorController extends Controller
      */
     public function index(Request $request)
     {
-        $behavior_list = $this->behaviorRepository->index($request->all());
+        $bahavior_list = $this->behaviorRepository->index($request->all());
 
-        $fractal = new Manager();
-        $resource = new Collection($behavior_list, new BehaviorTransformer());
-        $resource->setPaginator(new IlluminatePaginatorAdapter($behavior_list));
-        $data = $fractal->createData($resource)->toArray();
-        $data['extra'] = [
-            'filters' => [
-                '_id',
-                'behavior_name',
-            ],
-            'columns' => [
-                '_id',
-                'behavior_name',
-                'id',
-                'virus_behavior_id',
-                'name',
-                'behavior_level',
-                'behavior_cycle_type',
-                'behavior_action_id',
-                'behavior_cycle',
-                'behavior_binding_users',
-                'physical_strength',
-                'rainbow_beans',
-                'remarks',
-                'is_open',
-                'behavioral_cycle_start_time',
-                'behavioral_cycle_end_time',
-                'allotted_quantity_rule',
-                'behavior_identification',
-                'trigger_times',
-                'effective_trigger',
-                'relative_series',
-                'absolute_progression',
-                'created_at',
-                'updated_at'
-            ]
-        ];
-        return $data;
+        if ($bahavior_list){
 
+            return $bahavior_list;
+        }
     }
 
 
@@ -86,6 +52,12 @@ class BehaviorController extends Controller
         return  $this->behaviorRepository->create($request->all());
     }
 
+    //编辑行为
+    public function edit(Request $request)
+    {
+
+    }
+
 
 
 }

+ 74 - 5
app/Repositories/Behavior/BehaviorRepository.php

@@ -52,12 +52,82 @@ class BehaviorRepository
                 'errMsg' => '网络超时'.$exception->getMessage()
             ];
         }
-
         //已登记行为
-        $registered_bahavior = $this->behavior->paginate(20);
-        $res['registered_bahavior'] = $registered_bahavior;
+        $registered_bahavior = $this->behavior->get();
+        $registered_bahaviors = $registered_bahavior->toArray();
+
+        foreach ($registered_bahaviors as $key=>$val){
+            $registered_bahaviors[$key]['behavior_status'] = 1;//已登记
+        }
+        $virus_behavior_id = array_column($registered_bahaviors,'virus_behavior_id');
 
-        return $res;
+        $new_res = [];
+        //行为列表去重
+        foreach ($res as $k=>$v) {
+            if (isset($v['_id']) && !empty($virus_behavior_id)){
+                    $res[$k]['behavior_status'] = 0;//未登记
+                if (in_array($v['_id'], $virus_behavior_id)) {
+                    unset($res[$k]);
+                }
+                    $new_res = array_merge($res, $registered_bahaviors);
+
+            }elseif (!isset($v['_id']) && $virus_behavior_id) {
+                    $new_res = $registered_bahaviors;
+            }elseif (isset($v['_id']) && empty($virus_behavior_id)){
+                    $res[$k]['behavior_status'] = 0;//未登记
+                    $new_res = $res;
+            }
+        }
+        $new_re = [];
+        //根据行为ID筛选
+        if (isset($request['virus_behavior_id'])){
+            foreach ($new_res as $k=>$v){
+                if (isset($v['virus_behavior_id']) && $v['virus_behavior_id'] != $request['virus_behavior_id']){
+                    unset($new_res[$k]);
+                    $new_re = array_merge($new_res);
+                }elseif (isset($v['_id']) && $v['_id'] != $request['virus_behavior_id']){
+                    unset($new_res[$k]);
+                    $new_re = array_merge($new_res);
+                }
+            }
+            return $new_re;
+        }
+        //根据行为状态(类型)筛选
+        if (isset($request['behavior_status'])){
+            foreach ($new_res as $kk=>$vv){
+                if (isset($vv['behavior_status']) && $vv['behavior_status'] != $request['behavior_status']){
+                    unset($new_res[$kk]);
+                    $new_re = array_merge($new_res);
+                }
+            }
+            return $new_re;
+        }
+        //根据绑定的动作ID筛选
+        if (isset($request['behavior_action_id'])){
+            foreach ($new_res as $key=>$val) {
+                if (isset($val['behavior_action_id']) && ($val['behavior_action_id'] != $request['behavior_action_id'])) {
+                    unset($new_res[$key]);
+                    $new_re = array_merge($new_res);
+                } elseif (!isset($val['behavior_action_id'])) {
+                    unset($new_res[$key]);
+                    $new_re = array_merge($new_res);
+                }
+            }
+            return $new_re;
+        }
+        //根据行为名称筛选
+        if (isset($request['name'])){
+            foreach ($new_res as $key => $val) {
+                if (isset($val['name']) && strpos($val['name'],$request['name']) !== false) {
+                    $new_re[] = $new_res[$key];
+                }
+                if (isset($val['behavior_name']) && strpos($val['behavior_name'],$request['name']) !== false ) {
+                    $new_re[] = $new_res[$key];
+                }
+            }
+            return $new_re;
+        }
+        return $new_res;
     }
 
     public function create($request)
@@ -94,7 +164,6 @@ class BehaviorRepository
         if (!$this->behavior->create($data)) {
             throw new HttpException(500, '添加失败,请重试');
         }
-
     }
 }