21 lines
2.2 KiB
PHP
Executable File
21 lines
2.2 KiB
PHP
Executable File
<?php
|
|
header('Content-Type: application/json');
|
|
$input=json_decode(file_get_contents('php://input'),true)?:($_POST?:$_GET); $action=$input['action']??'stats';
|
|
try{$db=new PDO("pgsql:host=127.0.0.1;dbname=adx_system",'postgres','');$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}
|
|
catch(Exception $e){die(json_encode(['error'=>$e->getMessage()]));}
|
|
switch($action){
|
|
case 'stats': $t=$db->query("SELECT COUNT(*),COALESCE(SUM(revenue),0) FROM admin.harvest_leads WHERE created_at>=CURRENT_DATE")->fetch();
|
|
$a=$db->query("SELECT COUNT(*),COALESCE(SUM(revenue),0) FROM admin.harvest_leads")->fetch();
|
|
$s=$db->query("SELECT COUNT(*) FROM admin.unified_send_log_new WHERE created_at>=CURRENT_DATE")->fetchColumn();
|
|
echo json_encode(['today'=>['leads'=>(int)$t[0],'revenue'=>(float)$t[1]],'total'=>['leads'=>(int)$a[0],'revenue'=>(float)$a[1]],
|
|
'sends_today'=>(int)$s,'epc'=>$s>0?round($t[1]/max($s,1),4):0]); break;
|
|
case 'postback': $cid=$input['click_id']??'';$rev=floatval($input['revenue']??0);$net=$input['network']??'unknown';
|
|
$st=$db->prepare("INSERT INTO admin.harvest_leads(campaign_id,offer_id,network,click_id,revenue,status,ip_address,created_at)VALUES(?,?,?,?,?,?,?,NOW())RETURNING id");
|
|
$st->execute([intval($input['campaign_id']??0),$input['offer_id']??'',$net,$cid,$rev,$input['status']??'converted',$_SERVER['REMOTE_ADDR']??'']);
|
|
echo json_encode(['success'=>true,'lead_id'=>$st->fetchColumn(),'revenue'=>$rev]); break;
|
|
case 'roi_by_isp': echo json_encode($db->query("SELECT CASE WHEN sl.recipient LIKE '%gmail%' THEN 'GMAIL' WHEN sl.recipient LIKE '%outlook%' OR sl.recipient LIKE '%hotmail%' THEN 'OUTLOOK' WHEN sl.recipient LIKE '%gmx%' THEN 'GMX' WHEN sl.recipient LIKE '%t-online%' THEN 'T-ONLINE' ELSE 'OTHER' END as isp, COUNT(sl.id) as sends FROM admin.unified_send_log_new sl GROUP BY isp ORDER BY sends DESC")->fetchAll(PDO::FETCH_ASSOC)); break;
|
|
case 'roi_by_method': echo json_encode($db->query("SELECT method,COUNT(*) as sends,SUM(CASE WHEN status='sent' THEN 1 ELSE 0 END) as delivered FROM admin.unified_send_log_new GROUP BY method")->fetchAll(PDO::FETCH_ASSOC)); break;
|
|
default: echo json_encode(['actions'=>['stats','postback','roi_by_isp','roi_by_method']]);
|
|
}
|
|
?>
|