ToutiaoController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. /**
  3. * Toutiao.php UTF-8
  4. * 今日头条
  5. *
  6. * @date : 2018/6/21 12:01
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : ouzhongfu <ozf@huosdk.com>
  10. * @version : HUOSDK 7.2
  11. */
  12. namespace app\promotion\controller\v7;
  13. use think\Controller;
  14. use think\Db;
  15. class ToutiaoController extends Controller {
  16. function _initialize() {
  17. parent::_initialize();
  18. }
  19. private function toutiaoReturn($status = '0') {
  20. $_rdata = array(
  21. 'status' => $status,
  22. );
  23. echo json_encode($_rdata);
  24. exit;
  25. }
  26. /**
  27. * 点击数据记录
  28. */
  29. public function start() {
  30. /* 1 查询是否具有访问权限 */
  31. $_urldata = $this->request->param();
  32. \think\Log::write($_urldata, 'error');//记录请求数据
  33. if (empty($_urldata)) {
  34. $this->toutiaoReturn(400);
  35. }
  36. $_pmt_id = $this->request->param('pmtid');
  37. $_pmt_data = $this->getPmtData($_pmt_id);
  38. if (!$_pmt_data) {
  39. $this->toutiaoReturn(400);
  40. }
  41. $_data['agent_id'] = $_pmt_data['agent_id'];
  42. $_data['app_id'] = $_pmt_data['app_id'];
  43. $_data['adid'] = get_val($_urldata, 'adid', '');
  44. $_data['cid'] = get_val($_urldata, 'cid', '');
  45. $_data['idfa'] = get_val($_urldata, 'idfa', '');
  46. $_data['imei'] = get_val($_urldata, 'imei', '');
  47. $_data['mac'] = get_val($_urldata, 'mac', '');
  48. $_data['androidid'] = get_val($_urldata, 'androidid', '');
  49. $_data['os'] = get_val($_urldata, 'os', '');
  50. $_data['create_time'] = time();
  51. $_data['timestamp'] = get_val($_urldata, 'timestamp', '');
  52. $_data['callback_url'] = urldecode(get_val($_urldata, 'callback_url', ''));
  53. /*保存数据*/
  54. if (empty($_data)) {
  55. $this->toutiaoReturn(400);
  56. } else {
  57. $_rs = Db::name('promotion_toutiao_log')->insert($_data);
  58. if ($_rs) {
  59. $_rs = $this->userInsert($_data);
  60. $this->toutiaoReturn();
  61. }
  62. }
  63. }
  64. /**插入promotion_toutiao_user表中
  65. *
  66. * @param $data
  67. */
  68. public function userInsert($data) {
  69. //$_check_map['agent_id'] = $data['agent_id'];
  70. $_check_map['app_id'] = $data['app_id'];
  71. $_check_map['os'] = $data['os'];
  72. if (0 == $data['os']) {
  73. $_check_map['imei'] = $data['imei'];
  74. $_from = 3;
  75. } elseif (1 == $data['os']) {
  76. $_check_map['idfa'] = $data['idfa'];
  77. $_from = 4;
  78. } else {
  79. $_check_map['imei'] = $data['imei'];
  80. $_from = 3;
  81. }
  82. $_imei = !empty($data['imei']) ? $data['imei'] : '';
  83. $_idfa = !empty($data['idfa']) ? $data['idfa'] : '';
  84. $_is_md5 = true;
  85. $_check = Db::name('promotion_toutiao_user')->where($_check_map)->find();
  86. if (is_object($_check)) {
  87. $_check = $_check->toArray();
  88. }
  89. $_base_class = new \huolib\promotion\Base();
  90. $_re = $_base_class->entVisitLog($data['agent_id'], $data['app_id']);
  91. if ($_re) {
  92. }
  93. $_toutiao_class = new \huolib\promotion\Toutiao();
  94. $_is_while = $_toutiao_class->isWhile($_from, $_imei, $_idfa, $_is_md5);
  95. if (empty($_check) || $_is_while) {
  96. $_data['agent_id'] = $data['agent_id'];
  97. $_data['app_id'] = $data['app_id'];
  98. $_data['adid'] = $data['adid'];
  99. $_data['cid'] = $data['cid'];
  100. $_data['os'] = $data['os'];
  101. $_data['imei'] = $data['imei'];
  102. $_data['idfa'] = $data['idfa'];
  103. $_data['create_time'] = $data['create_time'];
  104. $_data['update_time'] = $data['create_time'];
  105. $_data['status'] = 1;
  106. $_data['callback_url'] = $data['callback_url'];
  107. if ($_is_while) {
  108. $_data['is_test'] = 1;
  109. } else {
  110. $_data['is_test'] = 2;
  111. }
  112. $_rs = Db::name('promotion_toutiao_user')->insert($_data);
  113. }
  114. if (empty($_check)) {
  115. $is_distinct = 1;
  116. $_rs = $_base_class->entVisitLog($data['agent_id'], $data['app_id'], $is_distinct);
  117. }
  118. if ($_rs) {
  119. }
  120. }
  121. /**通过pmt_id获取agent_id跟app_id
  122. *
  123. * @param $pmt_id
  124. *
  125. * @return array|bool|false|\PDOStatement|string|\think\Model
  126. */
  127. public function getPmtData($pmt_id = 0) {
  128. if (empty($pmt_id)) {
  129. return false;
  130. }
  131. $_map['id'] = $pmt_id;
  132. $_data = Db::name('promotion_detail')->where($_map)->find();
  133. if (empty($_data)) {
  134. return false;
  135. }
  136. if (is_object($_data)) {
  137. $_data = $_data->toArray();
  138. }
  139. return $_data;
  140. }
  141. }