Browse Source

Merge remote-tracking branch 'origin/develop' into develop

wzq 5 years ago
parent
commit
afc8360b93
1 changed files with 67 additions and 5 deletions
  1. 67 5
      app/Repositories/BehaviorRecordRepositories.php

+ 67 - 5
app/Repositories/BehaviorRecordRepositories.php

@@ -9,11 +9,13 @@
 namespace App\Repositories;
 
 
+use App\Models\Behavior;
 use App\Models\CommentAccountRecord;
 use App\Models\GeneralLedgerRecord;
 use App\Models\RegisteredAccountsRecord;
 use App\Models\ReleaseRecord;
 use Illuminate\Database\QueryException;
+use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
 
 class BehaviorRecordRepositories
@@ -21,12 +23,14 @@ class BehaviorRecordRepositories
     public function __construct(RegisteredAccountsRecord $registeredAccountsRecord,
                                 GeneralLedgerRecord $generalLedgerRecord,
                                 ReleaseRecord $releaseRecord,
-                                CommentAccountRecord $commentAccountRecord)
+                                CommentAccountRecord $commentAccountRecord,
+                                Behavior $behavior)
     {
         $this->registeredAccountsRecord = $registeredAccountsRecord;
         $this->generalLedgerRecord = $generalLedgerRecord;
         $this->releaseRecord = $releaseRecord;
         $this->commentAccountRecord = $commentAccountRecord;
+        $this->behavior = $behavior;
     }
 
     /**
@@ -80,6 +84,7 @@ class BehaviorRecordRepositories
      */
     private function addRegisterRecord($register)
     {
+        DB::beginTransaction();
         try {
             $data['virus_behavior_id'] = $register['virus_behavior_id'];
             $data['uid'] = $register['uid'];
@@ -92,8 +97,22 @@ class BehaviorRecordRepositories
             $data['release_status'] = $register['release_status'];
             $data['generation_quantity'] = $register['generation_quantity'];
             $data['quantity_issued'] = $register['quantity_issued'];
-            return $this->registeredAccountsRecord->create($data);
+            $this->registeredAccountsRecord->create($data);
+            $behavior = Behavior::where('virus_behavior_id',$register['virus_behavior_id'])->first();
+            $behavior->physical_strength += $register['physical_exertion'];
+            $behavior->grant_rainbow_beans += $register['quantity_issued'];
+            $behavior->trigger_times += 1;
+            $behavior->absolute_progression += $register['absolute_progression'];
+            if($register['trigger_type']){
+                $behavior->effective_trigger += 1;
+            }
+            $behavior->effective_trigger += 1;
+            $behavior->save();
+            DB::commit();
+            return true;
         } catch (QueryException $exception) {
+            Log::debug('addRegisterRecord-exception:'.$exception->getMessage());
+            DB::rollBack();
             return false;
         }
     }
@@ -105,6 +124,7 @@ class BehaviorRecordRepositories
      */
     private function addReleaseRecord($release)
     {
+        DB::beginTransaction();
         try {
             $data['virus_behavior_id'] = $release['virus_behavior_id'];
             $data['uid'] = $release['uid'];
@@ -116,8 +136,21 @@ class BehaviorRecordRepositories
             $data['release_status'] = $release['release_status'];
             $data['generation_quantity'] = $release['generation_quantity'];
             $data['quantity_issued'] = $release['quantity_issued'];
-            return $this->releaseRecord->create($data);
+            $this->releaseRecord->create($data);
+            $behavior = Behavior::where('virus_behavior_id',$release['virus_behavior_id'])->first();
+            $behavior->physical_strength += $release['physical_exertion'];
+            $behavior->grant_rainbow_beans += $release['quantity_issued'];
+            $behavior->trigger_times += 1;
+            if($release['trigger_type']){
+                $behavior->effective_trigger += 1;
+            }
+            $behavior->effective_trigger += 1;
+            $behavior->save();
+            DB::commit();
+            return true;
         } catch (QueryException $exception) {
+            Log::debug('addReleaseRecord-exception:'.$exception->getMessage());
+            DB::rollBack();
             return false;
         }
     }
@@ -141,8 +174,22 @@ class BehaviorRecordRepositories
             $data['release_status'] = $general['release_status'];
             $data['generation_quantity'] = $general['generation_quantity'];
             $data['quantity_issued'] = $general['quantity_issued'];
-            return $this->generalLedgerRecord->create($data);
+            $data['behavior_value'] = $general['behavior_value'];
+            $this->generalLedgerRecord->create($data);
+            $behavior = Behavior::where('virus_behavior_id',$general['virus_behavior_id'])->first();
+            $behavior->physical_strength += $general['physical_exertion'];
+            $behavior->grant_rainbow_beans += $general['quantity_issued'];
+            $behavior->trigger_times += 1;
+            if($general['trigger_type']){
+                $behavior->effective_trigger += 1;
+            }
+            $behavior->effective_trigger += 1;
+            $behavior->save();
+            DB::commit();
+            return true;
         } catch (QueryException $exception) {
+            Log::debug('addGeneralRecord-exception:'.$exception->getMessage());
+            DB::rollBack();
             return false;
         }
     }
@@ -167,8 +214,23 @@ class BehaviorRecordRepositories
             $data['release_status'] = $comment['release_status'];
             $data['generation_quantity'] = $comment['generation_quantity'];
             $data['quantity_issued'] = $comment['quantity_issued'];
-            return $this->generalLedgerRecord->create($data);
+            $data['current_comment_id'] = $comment['comment_id'];
+            $data['superior_comment_id'] = $comment['parent_comment_id'];
+            $this->generalLedgerRecord->create($data);
+            $behavior = Behavior::where('virus_behavior_id',$comment['virus_behavior_id'])->first();
+            $behavior->physical_strength += $comment['physical_exertion'];
+            $behavior->grant_rainbow_beans += $comment['quantity_issued'];
+            $behavior->trigger_times += 1;
+            if($comment['trigger_type']){
+                $behavior->effective_trigger += 1;
+            }
+            $behavior->effective_trigger += 1;
+            $behavior->save();
+            DB::commit();
+            return true;
         } catch (QueryException $exception) {
+            Log::debug('addCommentRecord-exception:'.$exception->getMessage());
+            DB::rollBack();
             return false;
         }
     }