BuriedPointLogic.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace addons\BusinessCard\common\logic;
  3. use addons\BusinessCard\common\enums\CardEnums;
  4. use addons\BusinessCard\common\models\BusinessCard;
  5. use addons\BusinessCard\common\models\BusinessCardBuriedPoint;
  6. use addons\BusinessCard\common\models\BusinessCardCustomerLog;
  7. use addons\BusinessCard\common\models\BusinessCardSecretUserScore;
  8. use common\enums\RabbitMqEnum;
  9. use common\enums\StatusEnum;
  10. use common\helpers\FormatHelper;
  11. use yii\helpers\Json;
  12. class BuriedPointLogic
  13. {
  14. /**
  15. * @param array $data
  16. * @return void
  17. * @throws \Exception
  18. */
  19. public static function handler(array $data) {
  20. \Yii::error(__CLASS__ . " -- " . Json::encode($data));
  21. if (empty($data['log_type']) || empty($data['card_id'])) return;
  22. \Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE, $data, self::class, 'async_handle');
  23. }
  24. /**
  25. * @param $data
  26. * @return true|void
  27. */
  28. public function async_handle($data)
  29. {
  30. if (empty($data['log_type']) || empty($data['card_id'])) return true;
  31. $t = \Yii::$app->db->beginTransaction();
  32. try {
  33. // 判断当前用户是否有浏览过名片
  34. $card = BusinessCard::getOne([
  35. ['id' => $data['card_id']]
  36. ]);
  37. if (empty($card)) {
  38. return true;
  39. }
  40. $model = new BusinessCardBuriedPoint();
  41. $model->mall_id = $data['mall_id'];
  42. $model->user_id = $data['user_id'];
  43. $model->item_id = $data['card_id'];
  44. $model->log_type = $data['log_type'];
  45. $model->object_id = $data['ext_data']['params']['proId'] ?? 0;
  46. $model->ext_data = (array)$data['ext_data'] ?? [];
  47. $model->save();
  48. BusinessCardSecretUserScore::setData($data['mall_id'], $data['user_id'], $data['log_type']);
  49. $t->commit();
  50. } catch (\Exception $e) {
  51. $t->rollBack();
  52. $exception = FormatHelper::exception($e,__METHOD__);
  53. echo $exception;
  54. \Yii::error($exception);
  55. }
  56. }
  57. }