BehaviorRecordRepositories.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  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 Illuminate\Database\QueryException;
  16. use Illuminate\Support\Facades\Log;
  17. class BehaviorRecordRepositories
  18. {
  19. public function __construct(RegisteredAccountsRecord $registeredAccountsRecord,
  20. GeneralLedgerRecord $generalLedgerRecord,
  21. ReleaseRecord $releaseRecord,
  22. CommentAccountRecord $commentAccountRecord,
  23. BindPhoneRecord $bindPhoneRecord,
  24. BindWxRecord $bindWxRecord)
  25. {
  26. $this->registeredAccountsRecord = $registeredAccountsRecord;
  27. $this->generalLedgerRecord = $generalLedgerRecord;
  28. $this->releaseRecord = $releaseRecord;
  29. $this->commentAccountRecord = $commentAccountRecord;
  30. $this->bindPhoneRecord = $bindPhoneRecord;
  31. $this->bindWxRecord = $bindWxRecord;
  32. }
  33. /**
  34. * 根据行为标识获取行为记录表
  35. * @param $behavior
  36. */
  37. public function getBehaviorTable($behavior)
  38. {
  39. $tables = [
  40. 'register' => 'registered_accounts_record',
  41. 'publish' => 'release_record',
  42. 'read' => 'general_ledger_record',
  43. 'like' => 'general_ledger_record',
  44. 'unlike' => 'general_ledger_record',
  45. 'forward' => 'general_ledger_record',
  46. 'collect' => 'general_ledger_record',
  47. 'comment' => 'comment_account_record',
  48. 'bind_phone' => 'bind_phone_record',
  49. 'bind_wechat' => 'bind_wx_record'
  50. ];
  51. return isset($tables[$behavior]) ? $tables[$behavior] : false;
  52. }
  53. /**
  54. * 记录账本
  55. * @param $info
  56. * @return bool
  57. */
  58. public function addRecord($info)
  59. {
  60. Log::debug('add-record-request:' . json_encode($info));
  61. $behavior = $info['behavior_flag'];
  62. $behaviorTable = $this->getBehaviorTable($behavior);
  63. Log::debug('add-record-behavior-table:' . $behaviorTable);
  64. if ($behaviorTable) {
  65. if ($behaviorTable == 'registered_accounts_record') {
  66. return $this->addRegisterRecord($info);
  67. } elseif ($behaviorTable == 'release_record') {
  68. return $this->addReleaseRecord($info);
  69. } elseif ($behaviorTable == 'general_ledger_record') {
  70. return $this->addGeneralRecord($info);
  71. } elseif ($behaviorTable == 'comment_account_record') {
  72. return $this->addCommentRecord($info);
  73. } elseif ($behaviorTable == 'bind_phone_record') {
  74. return $this->addBindPhoneRecord($info);
  75. } elseif ($behaviorTable == 'bind_wx_record') {
  76. return $this->addBindWxRecord($info);
  77. }
  78. }
  79. return false;
  80. }
  81. /**
  82. * 记录账本-用户注册
  83. * @param $register
  84. * @return bool
  85. */
  86. public function addRegisterRecord($register)
  87. {
  88. try {
  89. $data['virus_behavior_id'] = $register['virus_behavior_id'];
  90. $data['uid'] = $register['uid'];
  91. $data['trigger_time'] = $register['trigger_time'];
  92. $data['physical_exertion'] = $register['physical_exertion'];
  93. $data['trigger_type'] = $register['trigger_type'];
  94. $data['generation_type'] = $register['generation_type'];
  95. $data['absolute_progression'] = $register['absolute_progression'];
  96. $data['superior_uid'] = $register['superior_uid'];
  97. $data['release_status'] = $register['release_status'];
  98. $data['generation_quantity'] = $register['generation_quantity'];
  99. $data['quantity_issued'] = $register['quantity_issued'];
  100. return $this->registeredAccountsRecord->create($data);
  101. } catch (QueryException $exception) {
  102. return false;
  103. }
  104. }
  105. /**
  106. * 记录账本-内容发布
  107. * @param $release
  108. * @return bool
  109. */
  110. public function addReleaseRecord($release)
  111. {
  112. try {
  113. $data['virus_behavior_id'] = $release['virus_behavior_id'];
  114. $data['uid'] = $release['uid'];
  115. $data['trigger_time'] = $release['trigger_time'];
  116. $data['related_content_id'] = $release['related_content_id'];
  117. $data['physical_exertion'] = $release['physical_exertion'];
  118. $data['trigger_type'] = $release['trigger_type'];
  119. $data['generation_type'] = $release['generation_type'];
  120. $data['release_status'] = $release['release_status'];
  121. $data['generation_quantity'] = $release['generation_quantity'];
  122. $data['quantity_issued'] = $release['quantity_issued'];
  123. return $this->releaseRecord->create($data);
  124. } catch (QueryException $exception) {
  125. return false;
  126. }
  127. }
  128. /**
  129. * 记录账本-阅读,转发,点赞,收藏,不喜欢
  130. * @param $general
  131. * @return bool
  132. */
  133. public function addGeneralRecord($general)
  134. {
  135. try {
  136. $data['virus_behavior_id'] = $general['virus_behavior_id'];
  137. $data['uid'] = $general['uid'];
  138. $data['trigger_time'] = $general['trigger_time'];
  139. $data['related_content_id'] = $general['related_content_id'];
  140. $data['content_author_id'] = $general['content_author_id'];
  141. $data['physical_exertion'] = $general['physical_exertion'];
  142. $data['trigger_type'] = $general['trigger_type'];
  143. $data['generation_type'] = $general['generation_type'];
  144. $data['release_status'] = $general['release_status'];
  145. $data['generation_quantity'] = $general['generation_quantity'];
  146. $data['quantity_issued'] = $general['quantity_issued'];
  147. return $this->generalLedgerRecord->create($data);
  148. } catch (QueryException $exception) {
  149. return false;
  150. }
  151. }
  152. /**
  153. * 记录账本-评论
  154. * @param $comment
  155. * @return bool
  156. */
  157. public function addCommentRecord($comment)
  158. {
  159. try {
  160. $data['virus_behavior_id'] = $comment['virus_behavior_id'];
  161. $data['uid'] = $comment['uid'];
  162. $data['upper_trigger_time'] = $comment['upper_trigger_time'];
  163. $data['related_content_id'] = $comment['related_content_id'];
  164. $data['content_author_id'] = $comment['content_author_id'];
  165. $data['superior_commentator_id'] = $comment['superior_commentator_id'];
  166. $data['physical_exertion'] = $comment['physical_exertion'];
  167. $data['trigger_type'] = $comment['trigger_type'];
  168. $data['generation_type'] = $comment['generation_type'];
  169. $data['release_status'] = $comment['release_status'];
  170. $data['generation_quantity'] = $comment['generation_quantity'];
  171. $data['quantity_issued'] = $comment['quantity_issued'];
  172. return $this->generalLedgerRecord->create($data);
  173. } catch (QueryException $exception) {
  174. return false;
  175. }
  176. }
  177. /**
  178. * 记录账本-绑定手机
  179. * @param $bindphone
  180. * @return bool
  181. */
  182. public function addBindPhoneRecord($bindphone)
  183. {
  184. try {
  185. $data['virus_behavior_id'] = $bindphone['virus_behavior_id'];
  186. $data['uid'] = $bindphone['uid'];
  187. $data['trigger_time'] = $bindphone['trigger_time'];
  188. $data['phone'] = $bindphone['phone'];
  189. $data['physical_exertion'] = $bindphone['physical_exertion'];
  190. $data['trigger_type'] = $bindphone['trigger_type'];
  191. $data['generation_type'] = $bindphone['generation_type'];
  192. $data['release_status'] = $bindphone['release_status'];
  193. $data['generation_quantity'] = $bindphone['generation_quantity'];
  194. $data['quantity_issued'] = $bindphone['quantity_issued'];
  195. return $this->bindPhoneRecord->create($data);
  196. } catch (QueryException $exception) {
  197. return false;
  198. }
  199. }
  200. /**
  201. * 记录账本-绑定微信
  202. * @param $bindwx
  203. * @return bool
  204. */
  205. public function addBindWxRecord($bindwx)
  206. {
  207. try {
  208. $data['virus_behavior_id'] = $bindwx['virus_behavior_id'];
  209. $data['uid'] = $bindwx['uid'];
  210. $data['trigger_time'] = $bindwx['trigger_time'];
  211. $data['weixin'] = $bindwx['weixin'];
  212. $data['physical_exertion'] = $bindwx['physical_exertion'];
  213. $data['trigger_type'] = $bindwx['trigger_type'];
  214. $data['generation_type'] = $bindwx['generation_type'];
  215. $data['release_status'] = $bindwx['release_status'];
  216. $data['generation_quantity'] = $bindwx['generation_quantity'];
  217. $data['quantity_issued'] = $bindwx['quantity_issued'];
  218. return $this->bindWxRecord->create($data);
  219. } catch (QueryException $exception) {
  220. return false;
  221. }
  222. }
  223. }