|
@@ -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, '添加失败,请重试');
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|