registeredAccountsRecord = $registeredAccountsRecord; $this->generalLedgerRecord = $generalLedgerRecord; $this->releaseRecord = $releaseRecord; $this->commentAccountRecord = $commentAccountRecord; $this->behavior = $behavior; } /** * 根据行为标识获取行为记录表 * @param $behavior */ private function getBehaviorTable($behavior) { $tables = [ 'register' => 'registered_accounts_record', 'publish' => 'release_record', 'read' => 'general_ledger_record', 'like' => 'general_ledger_record', 'unlike' => 'general_ledger_record', 'forward' => 'general_ledger_record', 'collect' => 'general_ledger_record', 'comment' => 'comment_account_record' ]; return isset($tables[$behavior]) ? $tables[$behavior] : false; } /** * 记录账本 * @param $info * @return bool */ public function addRecord($info) { Log::debug('记录账本-请求参数:' . json_encode($info)); $behavior = $info['behavior_flag']; $behaviorTable = $this->getBehaviorTable($behavior); Log::debug('记录账本-table:' . $behaviorTable); if ($behaviorTable) { if ($behaviorTable == 'registered_accounts_record') { return $this->addRegisterRecord($info); } elseif ($behaviorTable == 'release_record') { return $this->addReleaseRecord($info); } elseif ($behaviorTable == 'general_ledger_record') { return $this->addGeneralRecord($info); } elseif ($behaviorTable == 'comment_account_record') { return $this->addCommentRecord($info); } } return false; } /** * 记录账本-用户注册 * @param $register * @return bool */ private function addRegisterRecord($register) { DB::beginTransaction(); try { $data['virus_behavior_id'] = $register['virus_behavior_id']; $data['uid'] = $register['uid']; $data['trigger_time'] = $register['trigger_time']; $data['physical_exertion'] = $register['physical_exertion']; $data['trigger_type'] = $register['trigger_type']; $data['generation_type'] = $register['generation_type']; $data['absolute_progression'] = $register['absolute_progression']; $data['superior_uid'] = $register['superior_uid']; $data['release_status'] = $register['release_status']; $data['generation_quantity'] = $register['generation_quantity']; $data['quantity_issued'] = $register['quantity_issued']; $this->registeredAccountsRecord->create($data); //修改行为统计数据 $behavior = Behavior::where('virus_behavior_id',$register['virus_behavior_id'])->first(); $behavior->physical_strength += intval($register['physical_exertion']); $behavior->grant_rainbow_beans += intval($register['quantity_issued']); $behavior->trigger_times += 1; $behavior->absolute_progression += intval($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('记录账本-注册-exception:'.$exception->getMessage()); DB::rollBack(); return false; } } /** * 记录账本-内容发布 * @param $release * @return bool */ private function addReleaseRecord($release) { DB::beginTransaction(); try { $data['virus_behavior_id'] = $release['virus_behavior_id']; $data['uid'] = $release['uid']; $data['trigger_time'] = $release['trigger_time']; $data['related_content_id'] = $release['related_content_id']; $data['physical_exertion'] = $release['physical_exertion']; $data['trigger_type'] = $release['trigger_type']; $data['generation_type'] = $release['generation_type']; $data['release_status'] = $release['release_status']; $data['generation_quantity'] = $release['generation_quantity']; $data['quantity_issued'] = $release['quantity_issued']; $this->releaseRecord->create($data); $behavior = Behavior::where('virus_behavior_id',$release['virus_behavior_id'])->first(); $behavior->physical_strength += intval($release['physical_exertion']); $behavior->grant_rainbow_beans += intval($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('记录账本-发布-exception:'.$exception->getMessage()); DB::rollBack(); return false; } } /** * 记录账本-阅读,转发,点赞,收藏,不喜欢 * @param $general * @return bool */ private function addGeneralRecord($general) { try { $data['virus_behavior_id'] = $general['virus_behavior_id']; $data['uid'] = $general['uid']; $data['trigger_time'] = $general['trigger_time']; $data['related_content_id'] = $general['related_content_id']; $data['content_author_id'] = $general['content_author_id']; $data['physical_exertion'] = $general['physical_exertion']; $data['trigger_type'] = $general['trigger_type']; $data['generation_type'] = $general['generation_type']; $data['release_status'] = $general['release_status']; $data['generation_quantity'] = $general['generation_quantity']; $data['quantity_issued'] = $general['quantity_issued']; $data['behavior_value'] = $general['behavior_value']; $this->generalLedgerRecord->create($data); $behavior = Behavior::where('virus_behavior_id',$general['virus_behavior_id'])->first(); $behavior->physical_strength += intval($general['physical_exertion']); $behavior->grant_rainbow_beans += intval($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('记录账本-普通行为-exception:'.$exception->getMessage()); DB::rollBack(); return false; } } /** * 记录账本-评论 * @param $comment * @return bool */ private function addCommentRecord($comment) { try { $data['virus_behavior_id'] = $comment['virus_behavior_id']; $data['uid'] = $comment['uid']; $data['upper_trigger_time'] = $comment['upper_trigger_time']; $data['related_content_id'] = $comment['related_content_id']; $data['content_author_id'] = $comment['content_author_id']; $data['superior_commentator_id'] = $comment['superior_commentator_id']; $data['physical_exertion'] = $comment['physical_exertion']; $data['trigger_type'] = $comment['trigger_type']; $data['generation_type'] = $comment['generation_type']; $data['release_status'] = $comment['release_status']; $data['generation_quantity'] = $comment['generation_quantity']; $data['quantity_issued'] = $comment['quantity_issued']; $data['current_comment_id'] = $comment['current_comment_id']; $data['superior_comment_id'] = $comment['superior_comment_id']; $this->commentAccountRecord->create($data); $behavior = Behavior::where('virus_behavior_id',$comment['virus_behavior_id'])->first(); $behavior->physical_strength += intval($comment['physical_exertion']); $behavior->grant_rainbow_beans += intval($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('记录账本-评论-exception:'.$exception->getMessage()); DB::rollBack(); return false; } } }