SmartPushDotService.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Elton
  5. * Date: 2019/5/5
  6. * Time: 11:39
  7. */
  8. namespace app\main\service;
  9. use app\main\constants\MqConstants;
  10. class SmartPushDotService extends BaseService
  11. {
  12. const exchangename='cps.ex.topic';
  13. /**
  14. * @var SmartPushDotService
  15. */
  16. protected static $self = null;
  17. /**
  18. * @return $this
  19. */
  20. public static function instance()
  21. {
  22. if (self::$self == NULL) {
  23. self::$self = new self();
  24. }
  25. return self::$self;
  26. }
  27. /**
  28. * 打点
  29. * @param array $data 推送内容
  30. */
  31. public function dotSmartPushInfo($data = [])
  32. {
  33. $mq = MqService::instance()->getDotMqInstance();
  34. LogService::info('[ MQ ] [ DOT ] [SmartPushInfo] '.print_r(json_encode($mq),true).'::Data::'.print_r(json_encode($data),true));
  35. $exchangname = self::exchangename;
  36. $mq->transferExchange($data, $exchangname, MqConstants::ROUTING_KEY_COLLECT_PUSH_DOT, 'topic');
  37. }
  38. /**
  39. * @param $mark
  40. * @param int $push_id
  41. * @param int $push_idx
  42. * @param int $push_time
  43. * @param int $user_id
  44. * @param int $type
  45. * @param int $event_time
  46. * @return array
  47. */
  48. public function generateKefuData($mark, $push_id = 0, $push_idx = 0, $push_time = 0, $user_id = 0, $type = 1, $event_time = 0)
  49. {
  50. $data = [
  51. 'mark' => $mark,
  52. 'push_id' => $push_id,
  53. 'push_idx' => $push_idx,
  54. 'push_time' => !empty($push_time) ? $push_time : time(),
  55. 'user_id' => $user_id,
  56. 'type' => $type,
  57. 'event_time' => !empty($event_time) ? $event_time : time()
  58. ];
  59. return $data;
  60. }
  61. /**
  62. * 从客服消息链接跳转到支付页面,支付完成后,构造打点信息
  63. * @param $mark
  64. * @param int $push_id
  65. * @param int $push_idx
  66. * @param int $push_time
  67. * @param int $money
  68. * @param int $type
  69. * @param int $event_time
  70. * @return array
  71. */
  72. public function generatePayData($mark, $push_id = 0, $push_idx = 0, $push_time = 0, $money = 0, $type = 2, $event_time = 0)
  73. {
  74. $data = [
  75. 'mark' => $mark,
  76. 'push_id' => $push_id,
  77. 'push_idx' => $push_idx,
  78. 'push_time' => !empty($push_time) ? $push_time : time(),
  79. 'money' => $money,
  80. 'type' => $type,
  81. 'event_time' => !empty($event_time) ? $event_time : time()
  82. ];
  83. return $data;
  84. }
  85. /**
  86. * 初始化打点数据
  87. * @param $mark
  88. * @param int $push_id
  89. * @param int $push_idx
  90. * @param int $push_time
  91. * @param int $event_time
  92. * @param array $otherData
  93. * @return array
  94. */
  95. public function generateDotData(
  96. $mark,
  97. $push_id = 0,
  98. $push_idx = 0,
  99. $push_time = 0,
  100. $event_time = 0,
  101. $otherData = []
  102. )
  103. {
  104. $data = [
  105. 'mark' => $mark,
  106. 'push_id' => $push_id,
  107. 'push_idx' => $push_idx,
  108. 'push_time' => !empty($push_time) ? $push_time : time(),
  109. 'event_time' => !empty($event_time) ? $event_time : time()
  110. ];
  111. return array_merge($otherData, $data);
  112. }
  113. /**
  114. * 从自动回复点击并关注
  115. * @param $mark
  116. * @param int $push_id
  117. * @param int $push_time
  118. * @param int $type
  119. * @param int $user_id
  120. * @param int $event_time
  121. * @return array
  122. */
  123. public function generateSubData($mark, $push_id = 0, $push_time = 0, $user_id = 0, $type = 3, $event_time = 0)
  124. {
  125. $data = [
  126. 'mark' => $mark,
  127. 'push_id' => $push_id,
  128. 'push_time' => !empty($push_time) ? $push_time : time(),
  129. 'user_id' => $user_id,
  130. 'type' => $type,
  131. 'event_time' => !empty($event_time) ? $event_time : time(),
  132. ];
  133. return $data;
  134. }
  135. }