123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- /**
- * Toutiao.php UTF-8
- * 今日头条
- *
- * @date : 2018/6/21 12:01
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : ouzhongfu <ozf@huosdk.com>
- * @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;
- }
- }
|