durong před 5 roky
rodič
revize
765a52adc0
1 změnil soubory, kde provedl 99 přidání a 108 odebrání
  1. 99 108
      app/Repositories/Behavior/BehaviorRepository.php

+ 99 - 108
app/Repositories/Behavior/BehaviorRepository.php

@@ -4,10 +4,12 @@ use App\Models\Behavior;
 use App\Models\BehaviorOperationLog;
 use App\Models\CommentRecord;
 use App\Models\GeneralRecord;
+use App\Models\Post;
 use App\Models\RegisteredRecord;
 use App\Models\ReleaseRecord;
 use GuzzleHttp\Client;
 use GuzzleHttp\Exception\RequestException;
+use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
 use Tymon\JWTAuth\Facades\JWTAuth;
@@ -24,9 +26,9 @@ use Illuminate\Database\QueryException;
 
 class BehaviorRepository
 {
-    public function __construct(Behavior $behavior,BehaviorOperationLog $behaviorOperationLog,
-                                RegisteredRecord $registeredRecord,CommentRecord $commentRecord,
-                                GeneralRecord $generalRecord,ReleaseRecord $releaseRecord)
+    public function __construct(Behavior $behavior, BehaviorOperationLog $behaviorOperationLog,
+                                RegisteredRecord $registeredRecord, CommentRecord $commentRecord,
+                                GeneralRecord $generalRecord, ReleaseRecord $releaseRecord)
     {
         $this->behavior = $behavior;
         $this->behaviorOperationLog = $behaviorOperationLog;
@@ -60,53 +62,53 @@ class BehaviorRepository
             ]);
             $res = json_decode($response->getBody()->getContents(), true);
             $res = $res ? $res['behaviors'] : [];
-        }catch (RequestException $exception){
+        } catch (RequestException $exception) {
             $res = [
                 'returnCode' => '-1',
-                'errMsg' => '网络超时'.$exception->getMessage()
+                'errMsg' => '网络超时' . $exception->getMessage()
             ];
-            Log::debug('获取virus行为列表:'.$exception->getMessage());
+            Log::debug('获取virus行为列表:' . $exception->getMessage());
         }
         //已登记行为
         $registered_bahavior = $this->behavior->get();
         $registered_bahaviors = $registered_bahavior->toArray();
 
-        foreach ($registered_bahaviors as $key=>$val){
+        foreach ($registered_bahaviors as $key => $val) {
             $registered_bahaviors[$key]['behavior_status'] = 1;//已登记
         }
-        $virus_behavior_id = array_column($registered_bahaviors,'virus_behavior_id');
+        $virus_behavior_id = array_column($registered_bahaviors, 'virus_behavior_id');
 
         $new_res = [];
         //行为列表去重
-        foreach ($res as $k=>$v) {
-            if (isset($v['_id']) && !empty($virus_behavior_id)){
-                    $res[$k]['behavior_status'] = 0;//未登记
-                    $res[$k]['behavior_flag'] = $v['behavior_flag'];
-                    $res[$k]['behavior_identification'] = $v['behavior_flag'];
-                    unset($res[$k]['behavior_flag']);
+        foreach ($res as $k => $v) {
+            if (isset($v['_id']) && !empty($virus_behavior_id)) {
+                $res[$k]['behavior_status'] = 0;//未登记
+                $res[$k]['behavior_flag'] = $v['behavior_flag'];
+                $res[$k]['behavior_identification'] = $v['behavior_flag'];
+                unset($res[$k]['behavior_flag']);
                 if (in_array($v['_id'], $virus_behavior_id)) {
                     unset($res[$k]);
                 }
-                    $new_res = array_merge($res, $registered_bahaviors);
+                $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;//未登记
-                    $res[$k]['behavior_flag'] = $v['behavior_flag'];
-                    $res[$k]['behavior_identification'] = $v['behavior_flag'];
-                    unset($res[$k]['behavior_flag']);
-                    $new_res = $res;
+            } elseif (!isset($v['_id']) && $virus_behavior_id) {
+                $new_res = $registered_bahaviors;
+            } elseif (isset($v['_id']) && empty($virus_behavior_id)) {
+                $res[$k]['behavior_status'] = 0;//未登记
+                $res[$k]['behavior_flag'] = $v['behavior_flag'];
+                $res[$k]['behavior_identification'] = $v['behavior_flag'];
+                unset($res[$k]['behavior_flag']);
+                $new_res = $res;
             }
         }
         $new_re = [];
         //根据行为ID筛选
-        if (isset($request['virus_behavior_id'])){
-            foreach ($new_res as $k=>$v){
-                if (isset($v['id']) && $v['id'] != $request['virus_behavior_id']){
+        if (isset($request['virus_behavior_id'])) {
+            foreach ($new_res as $k => $v) {
+                if (isset($v['id']) && $v['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']){
+                } elseif (isset($v['_id']) && $v['_id'] != $request['virus_behavior_id']) {
                     unset($new_res[$k]);
                     $new_re = array_merge($new_res);
                 }
@@ -114,9 +116,9 @@ class BehaviorRepository
             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']){
+        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);
                 }
@@ -137,12 +139,12 @@ class BehaviorRepository
 //            return $new_re;
 //        }
         //根据行为名称筛选
-        if (isset($request['name'])){
+        if (isset($request['name'])) {
             foreach ($new_res as $key => $val) {
-                if (isset($val['name']) && strpos($val['name'],$request['name']) !== false) {
+                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 ) {
+                if (isset($val['behavior_name']) && strpos($val['behavior_name'], $request['name']) !== false) {
                     $new_re[] = $new_res[$key];
                 }
             }
@@ -158,20 +160,20 @@ class BehaviorRepository
             throw new HttpException(500, '该行为已存在');
         }
 
-        if(isset($request['allotted_quantity_rule']) && isset($request['rainbow_beans'])) {
+        if (isset($request['allotted_quantity_rule']) && isset($request['rainbow_beans'])) {
             $rule = $request['allotted_quantity_rule'];
             $rainbow_beans = $request['rainbow_beans'];
             $count = 0;
             if (count($rule) == count($rule, 1)) {
                 $count = array_sum($rule);
-                if ($count > $rainbow_beans){
+                if ($count > $rainbow_beans) {
                     throw new HttpException(500, '唯一行为-分配总数不能大于行为生成彩虹豆总数');
                 }
             } else {
-                foreach ($rule as $value){
+                foreach ($rule as $value) {
                     $count += $value['bean'];
                 }
-                if ($count > $rainbow_beans){
+                if ($count > $rainbow_beans) {
                     throw new HttpException(500, '多级行为-分配总数不能大于行为生成彩虹豆总数');
                 }
             }
@@ -203,14 +205,14 @@ class BehaviorRepository
         try {
             $res = $this->behavior->create($data);
             if ($res) {
-                $token =  JWTAuth::decode(JWTAuth::getToken());
+                $token = JWTAuth::decode(JWTAuth::getToken());
                 $uid = $token['user']->id;
                 $username = $token['user']->username;
                 $cerate_bahavior_data = [
                     'operator_id' => $uid,
                     'behavior_id' => $res['id'],
                     'username' => $username,
-                    'content' => '创建'.$request['name'].'行为',
+                    'content' => '创建' . $request['name'] . '行为',
                     'type' => 0,
                     'created_at' => date('Y-m-d H:i:s'),
                     'updated_at' => date('Y-m-d H:i:s')
@@ -225,7 +227,7 @@ class BehaviorRepository
 
         } catch (QueryException $exception) {
             DB::rollBack();
-            Log::debug('注册行为:'.$exception->getMessage());
+            Log::debug('注册行为:' . $exception->getMessage());
             return Response::create([
                 'message' => '添加失败,请重试',
                 'error' => $exception->getMessage(),
@@ -237,7 +239,7 @@ class BehaviorRepository
     public function edit($request)
     {
         $behavior_id = $this->behavior->find($request['id']);
-        if ($behavior_id->is_open == 1){
+        if ($behavior_id->is_open == 1) {
             throw new HttpException(500, '无法编辑已经在记录的行为');
         }
         $update_bahavior = [
@@ -261,40 +263,40 @@ class BehaviorRepository
             'relative_series' => isset($request['relative_series']) ? $request['relative_series'] : 0,
             'absolute_progression' => isset($request['absolute_progression']) ? $request['absolute_progression'] : 0,
             'updated_at' => date('Y-m-d H:i:s')
-            ];
+        ];
         DB::beginTransaction();
-        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' => $uid,
-                        'behavior_id' => $request['id'],
-                        'username' => $username,
-                        'content' => json_encode($update_bahavior),
-                        'type' => 1,
-                        'created_at' => date('Y-m-d H:i:s'),
-                        'updated_at' => date('Y-m-d H:i:s')
-                    ];
-                    $result = $this->behaviorOperationLog->insert($cerate_bahavior_data);
-                    if (!$result) {
-                        throw new HttpException(500, '操作日志记录失败');
-                    }
+        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' => $uid,
+                    'behavior_id' => $request['id'],
+                    'username' => $username,
+                    'content' => json_encode($update_bahavior),
+                    'type' => 1,
+                    'created_at' => date('Y-m-d H:i:s'),
+                    'updated_at' => date('Y-m-d H:i:s')
+                ];
+                $result = $this->behaviorOperationLog->insert($cerate_bahavior_data);
+                if (!$result) {
+                    throw new HttpException(500, '操作日志记录失败');
                 }
-                DB::commit();
-                return Response::create();
-
-            } catch (QueryException $exception) {
-                DB::rollBack();
-                Log::debug('编辑行为:'.$exception->getMessage());
-                return Response::create([
-                    'message' => '编辑失败,请重试',
-                    'error' => $exception->getMessage(),
-                    'status_code' => 500
-                ]);
             }
+            DB::commit();
+            return Response::create();
+
+        } catch (QueryException $exception) {
+            DB::rollBack();
+            Log::debug('编辑行为:' . $exception->getMessage());
+            return Response::create([
+                'message' => '编辑失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code' => 500
+            ]);
+        }
     }
 
     public function editStatus($request)
@@ -305,25 +307,25 @@ class BehaviorRepository
             'is_open' => $request['is_open'],
             'updated_at' => date('Y-m-d H:i:s')
         ];
-        if ($request['is_open'] == 0){
+        if ($request['is_open'] == 0) {
             $is_open = '关闭';
-        }else{
+        } else {
             $is_open = '开启';
         }
         $behavior_name = $behavior->name;
 
         DB::beginTransaction();
         try {
-            $res = $behavior->where('id',$request['id'])->update($behavior_array);
+            $res = $behavior->where('id', $request['id'])->update($behavior_array);
             if ($res) {
-                $token =  JWTAuth::decode(JWTAuth::getToken());
+                $token = JWTAuth::decode(JWTAuth::getToken());
                 $uid = $token['user']->id;
                 $username = $token['user']->username;
                 $cerate_bahavior_data = [
                     'operator_id' => $uid,
                     'behavior_id' => $request['id'],
                     'username' => $username,
-                    'content' => $is_open.'了'.$behavior_name.'行为',
+                    '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')
@@ -364,39 +366,28 @@ class BehaviorRepository
         if(isset($request['name'])){
             $where[] = ['name', 'like', "%{$request['name']}%"];
         }
-        //触发次数由多到少-由少到多筛选
-        if (isset($request['trigger_times']) && $request['trigger_times'] == 0){
-            return $this->behavior->orderBy('trigger_times','desc')->paginate($perPage);
-        }elseif (isset($request['trigger_times']) && $request['trigger_times'] == 1){
-            return $this->behavior->orderBy('trigger_times','asc')->paginate($perPage);
-        }
-        //有效触发由多到少-由少到多筛选
-        if (isset($request['effective_trigger']) && $request['effective_trigger'] == 0){
-            return $this->behavior->orderBy('effective_trigger','desc')->paginate($perPage);
-        }elseif (isset($request['effective_trigger']) && $request['effective_trigger'] == 1){
-            return $this->behavior->orderBy('effective_trigger','asc')->paginate($perPage);
-        }
-        //绝对级数由多到少-由少到多筛选
-        if (isset($request['absolute_progression']) && $request['absolute_progression'] == 0){
-            return $this->behavior->orderBy('absolute_progression','desc')->paginate($perPage);
-        }elseif (isset($request['absolute_progression']) && $request['absolute_progression'] == 1){
-            return $this->behavior->orderBy('absolute_progression','asc')->paginate($perPage);
-        }
-        //耗费体力值由多到少-由少到多筛选
-        if (isset($request['physical_strength']) && $request['physical_strength'] == 0){
-            return $this->behavior->orderBy('physical_strength','desc')->paginate($perPage);
-        }elseif (isset($request['physical_strength']) && $request['physical_strength'] == 1){
-            return $this->behavior->orderBy('physical_strength','asc')->paginate($perPage);
-        }
-        //发放彩虹豆由多到少-由少到多筛选
-        if (isset($request['grant_rainbow_beans']) && $request['grant_rainbow_beans'] == 0){
-            return $this->behavior->orderBy('grant_rainbow_beans','desc')->paginate($perPage);
-        }elseif (isset($request['grant_rainbow_beans']) && $request['grant_rainbow_beans'] == 1){
-            return $this->behavior->orderBy('grant_rainbow_beans','asc')->paginate($perPage);
-        }
 
-        return $this->behavior->where($where)->paginate($perPage);
+        if(isset($request['trigger_times'])){//触发次数由多到少-由少到多筛选
+            $filed = 'trigger_times';
+            $sort = $request['trigger_times']   == 0 ? 'desc' : 'asc';
+        }elseif(isset($request['effective_trigger'])){//有效触发由多到少-由少到多筛选
+            $filed = 'effective_trigger';
+            $sort=$request['effective_trigger']  == 0 ? 'desc' : 'asc';
+        }elseif (isset($request['absolute_progression'])){////绝对级数由多到少-由少到多筛选
+            $filed = 'absolute_progression';
+            $sort=$request['absolute_progression']  == 0 ? 'desc' : 'asc';
+        }elseif (isset($request['physical_strength'])){//耗费体力值由多到少-由少到多筛选
+            $filed = 'physical_strength';
+            $sort=$request['physical_strength']  == 0 ? 'desc' : 'asc';
+        }elseif (isset($request['grant_rainbow_beans'])) {//发放彩虹豆由多到少-由少到多筛选
+            $filed = 'grant_rainbow_beans';
+            $sort = $request['grant_rainbow_beans'] == 0 ? 'desc' : 'asc';
+        }else{
+            $sort = 'id';
+            $filed = 'desc';
+        }
 
+        return $this->behavior->where($where)->orderBy($filed,$sort)->paginate($perPage);
     }
 
 }