BehaviorRecordRepositories.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: edz
  5. * Date: 2019-06-10
  6. * Time: 17:53
  7. */
  8. namespace App\Repositories;
  9. use App\Models\BindPhoneRecord;
  10. use App\Models\BindWxRecord;
  11. use App\Models\CommentAccountRecord;
  12. use App\Models\GeneralLedgerRecord;
  13. use App\Models\RegisteredAccountsRecord;
  14. use App\Models\ReleaseRecord;
  15. use App\Service\RabbitMqUtil;
  16. use Illuminate\Database\QueryException;
  17. use Illuminate\Support\Facades\Log;
  18. class BehaviorRecordRepositories
  19. {
  20. public function __construct(RegisteredAccountsRecord $registeredAccountsRecord,
  21. GeneralLedgerRecord $generalLedgerRecord,
  22. ReleaseRecord $releaseRecord,
  23. CommentAccountRecord $commentAccountRecord)
  24. {
  25. $this->registeredAccountsRecord = $registeredAccountsRecord;
  26. $this->generalLedgerRecord = $generalLedgerRecord;
  27. $this->releaseRecord = $releaseRecord;
  28. $this->commentAccountRecord = $commentAccountRecord;
  29. }
  30. /**
  31. * 根据行为标识获取行为记录表
  32. * @param $behavior
  33. */
  34. private function getBehaviorTable($behavior)
  35. {
  36. $tables = [
  37. 'register' => 'registered_accounts_record',
  38. 'publish' => 'release_record',
  39. 'read' => 'general_ledger_record',
  40. 'like' => 'general_ledger_record',
  41. 'unlike' => 'general_ledger_record',
  42. 'forward' => 'general_ledger_record',
  43. 'collect' => 'general_ledger_record',
  44. 'comment' => 'comment_account_record'
  45. ];
  46. return isset($tables[$behavior]) ? $tables[$behavior] : false;
  47. }
  48. /**
  49. * 记录账本
  50. * @param $info
  51. * @return bool
  52. */
  53. public function addRecord($info)
  54. {
  55. Log::debug('add-record-request:' . json_encode($info));
  56. $behavior = $info['behavior_flag'];
  57. $behaviorTable = $this->getBehaviorTable($behavior);
  58. Log::debug('add-record-behavior-table:' . $behaviorTable);
  59. if ($behaviorTable) {
  60. if ($behaviorTable == 'registered_accounts_record') {
  61. return $this->addRegisterRecord($info);
  62. } elseif ($behaviorTable == 'release_record') {
  63. return $this->addReleaseRecord($info);
  64. } elseif ($behaviorTable == 'general_ledger_record') {
  65. return $this->addGeneralRecord($info);
  66. } elseif ($behaviorTable == 'comment_account_record') {
  67. return $this->addCommentRecord($info);
  68. }
  69. }
  70. return false;
  71. }
  72. /**
  73. * 记录账本-用户注册
  74. * @param $register
  75. * @return bool
  76. */
  77. private function addRegisterRecord($register)
  78. {
  79. try {
  80. $data['virus_behavior_id'] = $register['virus_behavior_id'];
  81. $data['uid'] = $register['uid'];
  82. $data['trigger_time'] = $register['trigger_time'];
  83. $data['physical_exertion'] = $register['physical_exertion'];
  84. $data['trigger_type'] = $register['trigger_type'];
  85. $data['generation_type'] = $register['generation_type'];
  86. $data['absolute_progression'] = $register['absolute_progression'];
  87. $data['superior_uid'] = $register['superior_uid'];
  88. $data['release_status'] = $register['release_status'];
  89. $data['generation_quantity'] = $register['generation_quantity'];
  90. $data['quantity_issued'] = $register['quantity_issued'];
  91. return $this->registeredAccountsRecord->create($data);
  92. } catch (QueryException $exception) {
  93. return false;
  94. }
  95. }
  96. /**
  97. * 记录账本-内容发布
  98. * @param $release
  99. * @return bool
  100. */
  101. private function addReleaseRecord($release)
  102. {
  103. try {
  104. $data['virus_behavior_id'] = $release['virus_behavior_id'];
  105. $data['uid'] = $release['uid'];
  106. $data['trigger_time'] = $release['trigger_time'];
  107. $data['related_content_id'] = $release['related_content_id'];
  108. $data['physical_exertion'] = $release['physical_exertion'];
  109. $data['trigger_type'] = $release['trigger_type'];
  110. $data['generation_type'] = $release['generation_type'];
  111. $data['release_status'] = $release['release_status'];
  112. $data['generation_quantity'] = $release['generation_quantity'];
  113. $data['quantity_issued'] = $release['quantity_issued'];
  114. return $this->releaseRecord->create($data);
  115. } catch (QueryException $exception) {
  116. return false;
  117. }
  118. }
  119. /**
  120. * 记录账本-阅读,转发,点赞,收藏,不喜欢
  121. * @param $general
  122. * @return bool
  123. */
  124. private function addGeneralRecord($general)
  125. {
  126. try {
  127. $data['virus_behavior_id'] = $general['virus_behavior_id'];
  128. $data['uid'] = $general['uid'];
  129. $data['trigger_time'] = $general['trigger_time'];
  130. $data['related_content_id'] = $general['related_content_id'];
  131. $data['content_author_id'] = $general['content_author_id'];
  132. $data['physical_exertion'] = $general['physical_exertion'];
  133. $data['trigger_type'] = $general['trigger_type'];
  134. $data['generation_type'] = $general['generation_type'];
  135. $data['release_status'] = $general['release_status'];
  136. $data['generation_quantity'] = $general['generation_quantity'];
  137. $data['quantity_issued'] = $general['quantity_issued'];
  138. return $this->generalLedgerRecord->create($data);
  139. } catch (QueryException $exception) {
  140. return false;
  141. }
  142. }
  143. /**
  144. * 记录账本-评论
  145. * @param $comment
  146. * @return bool
  147. */
  148. private function addCommentRecord($comment)
  149. {
  150. try {
  151. $data['virus_behavior_id'] = $comment['virus_behavior_id'];
  152. $data['uid'] = $comment['uid'];
  153. $data['upper_trigger_time'] = $comment['upper_trigger_time'];
  154. $data['related_content_id'] = $comment['related_content_id'];
  155. $data['content_author_id'] = $comment['content_author_id'];
  156. $data['superior_commentator_id'] = $comment['superior_commentator_id'];
  157. $data['physical_exertion'] = $comment['physical_exertion'];
  158. $data['trigger_type'] = $comment['trigger_type'];
  159. $data['generation_type'] = $comment['generation_type'];
  160. $data['release_status'] = $comment['release_status'];
  161. $data['generation_quantity'] = $comment['generation_quantity'];
  162. $data['quantity_issued'] = $comment['quantity_issued'];
  163. return $this->generalLedgerRecord->create($data);
  164. } catch (QueryException $exception) {
  165. return false;
  166. }
  167. }
  168. }