* @version : HUOSDK 7.2 */ namespace app\promotion\controller\v7; use think\Controller; use think\Db; class ToutiaoController extends Controller { function _initialize() { parent::_initialize(); } private function toutiaoReturn($status = '0') { $_rdata = array( 'status' => $status, ); echo json_encode($_rdata); exit; } /** * 点击数据记录 */ public function start() { /* 1 查询是否具有访问权限 */ $_urldata = $this->request->param(); \think\Log::write($_urldata, 'error');//记录请求数据 if (empty($_urldata)) { $this->toutiaoReturn(400); } $_pmt_id = $this->request->param('pmtid'); $_pmt_data = $this->getPmtData($_pmt_id); if (!$_pmt_data) { $this->toutiaoReturn(400); } $_data['agent_id'] = $_pmt_data['agent_id']; $_data['app_id'] = $_pmt_data['app_id']; $_data['adid'] = get_val($_urldata, 'adid', ''); $_data['cid'] = get_val($_urldata, 'cid', ''); $_data['idfa'] = get_val($_urldata, 'idfa', ''); $_data['imei'] = get_val($_urldata, 'imei', ''); $_data['mac'] = get_val($_urldata, 'mac', ''); $_data['androidid'] = get_val($_urldata, 'androidid', ''); $_data['os'] = get_val($_urldata, 'os', ''); $_data['create_time'] = time(); $_data['timestamp'] = get_val($_urldata, 'timestamp', ''); $_data['callback_url'] = urldecode(get_val($_urldata, 'callback_url', '')); /*保存数据*/ if (empty($_data)) { $this->toutiaoReturn(400); } else { $_rs = Db::name('promotion_toutiao_log')->insert($_data); if ($_rs) { $_rs = $this->userInsert($_data); $this->toutiaoReturn(); } } } /**插入promotion_toutiao_user表中 * * @param $data */ public function userInsert($data) { //$_check_map['agent_id'] = $data['agent_id']; $_check_map['app_id'] = $data['app_id']; $_check_map['os'] = $data['os']; if (0 == $data['os']) { $_check_map['imei'] = $data['imei']; $_from = 3; } elseif (1 == $data['os']) { $_check_map['idfa'] = $data['idfa']; $_from = 4; } else { $_check_map['imei'] = $data['imei']; $_from = 3; } $_imei = !empty($data['imei']) ? $data['imei'] : ''; $_idfa = !empty($data['idfa']) ? $data['idfa'] : ''; $_is_md5 = true; $_check = Db::name('promotion_toutiao_user')->where($_check_map)->find(); if (is_object($_check)) { $_check = $_check->toArray(); } $_base_class = new \huolib\promotion\Base(); $_re = $_base_class->entVisitLog($data['agent_id'], $data['app_id']); if ($_re) { } $_toutiao_class = new \huolib\promotion\Toutiao(); $_is_while = $_toutiao_class->isWhile($_from, $_imei, $_idfa, $_is_md5); if (empty($_check) || $_is_while) { $_data['agent_id'] = $data['agent_id']; $_data['app_id'] = $data['app_id']; $_data['adid'] = $data['adid']; $_data['cid'] = $data['cid']; $_data['os'] = $data['os']; $_data['imei'] = $data['imei']; $_data['idfa'] = $data['idfa']; $_data['create_time'] = $data['create_time']; $_data['update_time'] = $data['create_time']; $_data['status'] = 1; $_data['callback_url'] = $data['callback_url']; if ($_is_while) { $_data['is_test'] = 1; } else { $_data['is_test'] = 2; } $_rs = Db::name('promotion_toutiao_user')->insert($_data); } if (empty($_check)) { $is_distinct = 1; $_rs = $_base_class->entVisitLog($data['agent_id'], $data['app_id'], $is_distinct); } if ($_rs) { } } /**通过pmt_id获取agent_id跟app_id * * @param $pmt_id * * @return array|bool|false|\PDOStatement|string|\think\Model */ public function getPmtData($pmt_id = 0) { if (empty($pmt_id)) { return false; } $_map['id'] = $pmt_id; $_data = Db::name('promotion_detail')->where($_map)->find(); if (empty($_data)) { return false; } if (is_object($_data)) { $_data = $_data->toArray(); } return $_data; } }