static function savelog($camp_id, $device_id, $acc_id, $status, $log_text, $log_multicast_id) { $nl = new PushLogger(); $nl->log_camp_id = $camp_id; $nl->log_device_id = $device_id; $nl->log_macc_id = $acc_id; $nl->log_status = $status; $nl->log_text = $log_text; $nl->log_multicast_id = $log_multicast_id; $nl->log_date = leap_mysqldate(); return $nl->save(); }
function detail() { $id = addslashes($_GET['id']); // echo "in".$id; $nn = new PushLogger(); $arrLogs = $nn->getWhere("log_multicast_id = '{$id}' ORDER BY log_id ASC"); // pr($arrLogs); foreach ($arrLogs as $log) { $acc = new LL_Account(); $acc->getByID($log->log_macc_id); ?> <div class="hasil"> ID : <?php echo $acc->macc_id; ?> <?php echo $acc->macc_first_name; ?> <?php echo $acc->macc_last_name; ?> <br> Status : <?php echo $this->arrStatus[$log->log_status]; ?> <br> Message : <?php echo $log->log_text; ?> </div> <?php } }
static function processGCM($arrhasil, $app_id, $psn, $array_ids, $app, $isTest = 0) { $json['status_code'] = 1; $json['status_message'] = "Success"; $json['result'] = $arrhasil; foreach ($arrhasil as $numw => $hasil) { //simpan hasil $gcm = new GCMResult(); $gcm->multicast_id = $hasil->multicast_id; $gcm->success = $hasil->success; $gcm->failure = $hasil->failure; $gcm->results = serialize($hasil->results); $gcm->canonical_ids = $hasil->canonical_ids; $gcm->camp_id = $psn->camp_id; $gcm->gcm_date = leap_mysqldate(); $gcm->gcm_test = $isTest; $gcm->app_id = $app_id; $gcm->client_camp_id = $psn->camp_client_id; $gcm->client_id = $app->app_client_id; $gcm->save(); if (!$isTest) { //kurangin pulsa ... $old = $app->app_pulsa; $app->app_pulsa = $app->app_pulsa - $hasil->success; $app->load = 1; $app->save(); //save transactions $tt = new AppPulsa(); $tt->pulsa_acc_id = Account::getMyID(); $tt->pulsa_action = "debit"; $tt->pulsa_app_id = $app_id; $tt->pulsa_date = leap_mysqldate(); $tt->pulsa_jumlah = $hasil->success; $tt->pulsa_new = $app->app_pulsa; $tt->pulsa_old = $old; $tt->pulsa_camp_id = $psn->camp_id; $tt->save(); // } // echo "ID : ".$hasil->multicast_id."<br>"; // echo "Success : ".$hasil->success."<br>"; // echo "Failure : ".$hasil->failure."<br>"; // echo "<a target='_blank' href='"._SPPATH."PushNotResults/res?id={$psn->camp_id}&token=".IMBAuth::createOAuth()."' class='btn btn primary'>Complete Results</a><br><br>"; $page = 999 * $numw; foreach ($hasil->results as $num => $res) { if (isset($res->error)) { //error $status = 0; $log_text = $res->error; //delete device_id from table $dv = new DeviceModel(); global $db; //repaired using update $q = "UPDATE {$dv->table_name} SET dev_not_send = 1 WHERE device_id = '" . $array_ids[$page + $num] . "'"; if ($_GET['test']) { echo "<br>query : " . $q . "<br>"; echo "delete succ :" . $db->query($q, 0); echo "<br>"; } } else { //success $status = 1; $log_text = $res->message_id; } // repaired macc id cannot get PushLogger::savelog($psn->camp_id, $array_ids[$num], $app->app_client_id, $status, $log_text, $hasil->multicast_id, $app_id, $psn->camp_client_id); } } $psn->camp_status = 1; $psn->camp_send_date = leap_mysqldate(); $psn->load = 1; $psn->save(); return $json; }
function deleteByLogID() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $macc_id = addslashes($_POST['macc_id']); $lid = addslashes($_POST['lid']); $psl = new PushLogger(); $psl->getByID($lid); $json['status_code'] = 0; if ($psl->log_macc_id = $macc_id) { //tidak active lagi $psl->log_active = 0; $psl->load = 1; if ($psl->save()) { $json['status_code'] = 1; } } echo json_encode($json); die; }
static function sendUsingAccountArray($arrAcc, $psn, $isTest = 0) { if ($_GET['test']) { pr($arrAcc); } if ($_GET['test']) { echo "<h1>Push Complete Results</h1>"; } foreach ($arrAcc as $to) { $dev = new DeviceModel(); // $arrD = $dev->getWhere("acc_id = '$to' AND device_type = 'android' ORDER BY logindate DESC"); //kalau dijaddin ga aktif 16 dec 2015 // $arrD = $dev->getWhere("acc_id = '$to' ORDER BY logindate DESC"); $arrD = $dev->getWhere("acc_id = '{$to}' AND dev_active = 1 ORDER BY logindate DESC"); // $json['arrD'] = $arrD; // foreach ($arrD as $d) { // $json['dev'] = $d->device_id; //// if($d->device_id == "")continue; // $hasil = self::push($d->device_id, $msg, $website); // $json['hasil'] = $hasil; // if ($hasil->success > 0) { // $json['bool'] = 1; //// $json['hasil'] = $hasil; // } // } if (count($arrD) > 0) { foreach ($arrD as $ddd) { $devices[] = $ddd; } } else { if ($_GET['test']) { echo "no device id : " . $to . " <br>"; } } } $action = self::getAction($psn); if ($_GET['test']) { echo "action = " . $action . "<br>"; } $array_id = array(); if ($_GET['test']) { echo "<h3>Devices</h3>"; } foreach ($devices as $dev) { if ($_GET['test']) { echo " acc_id : " . $dev->acc_id; echo "<br> dev_id : " . $dev->device_id; echo "<br> type : " . $dev->device_type; echo "<br>"; } $array_id[] = $dev->device_id; } $url2push = Efiwebsetting::getData('PUBLIC_IP') . "WebViewer/messages/" . $psn->camp_id; //penambahan atas permintaan tbs 10 sept 2015, bisa push url if ($psn->camp_url != "") { $url2push = $psn->camp_url; } /* * * PILIHAN antara server luar dan dalam * 27 Nov 2015 * */ $pss = new Pusher(); if ($pss->pakai_server_luar == '1') { $app_id = 1; $app_key = "1qay2wsx"; $push_api_url = "http://push.indomegabyte.com/PushAPI/doPushByDevID"; $devs = implode(",", $array_id); $fields = array('devs' => $devs, 'app_id' => $app_id, 'key' => $app_key, 'camp_id' => $psn->camp_id, 'camp_name' => $psn->camp_name, 'camp_title' => $psn->camp_title, 'camp_url' => $url2push, 'isTest' => $isTest); $headers = array('Content-Type: application/json'); // pr($fields); //"postvar1=value1&postvar2=value2&postvar3=value3" foreach ($fields as $k => $val) { $jadi[] = $k . "=" . $val; } $imp = implode("&", $jadi); // echo http_build_query($fields); // $ch = curl_init(); // curl_setopt($ch, CURLOPT_URL, $push_api_url); // curl_setopt($ch, CURLOPT_POST, true); // curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // curl_setopt($ch, CURLOPT_POSTFIELDS, $imp); // $result = json_decode(curl_exec($ch)); // curl_close($ch); // // pr($result); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $push_api_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields)); // in real life you should use something like: // curl_setopt($ch, CURLOPT_POSTFIELDS, // http_build_query(array('postvar1' => 'value1'))); // receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); curl_close($ch); // pr($server_output); $ress = json_decode($server_output); if (!isset($_POST['no_echo'])) { echo "<h1>" . $ress->status_message . " Status Code [" . $ress->status_code . "]</h1>"; } $arrhasil = $ress->result; // pr($arrhasil); } elseif ($pss->pakai_server_luar == '2') { //create temporary files to read from $myfile = fopen(_PHOTOPATH . "campaign.txt", "w") or die("Unable to create file!"); $txt = implode(",", $array_id); if (fwrite($myfile, $txt)) { fclose($myfile); $app_id = 1; $app_key = "1qay2wsx"; $push_api_url = "http://push.indomegabyte.com/PushAPI/doPushByDevIDwithFile"; // $push_api_url = "http://localhost:8888/push/PushAPI/doPushByDevIDwithFile"; $devs = Efiwebsetting::getData('PUBLIC_IP') . "uploads/campaign.txt"; // pr($devs); // pr($push_api_url); $fields = array('devs' => $devs, 'app_id' => $app_id, 'key' => $app_key, 'camp_id' => $psn->camp_id, 'camp_name' => $psn->camp_name, 'camp_title' => $psn->camp_title, 'camp_url' => $url2push, 'isTest' => $isTest); $headers = array('Content-Type: application/json'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $push_api_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); curl_close($ch); $ress = json_decode($server_output); if (!isset($_POST['no_echo'])) { echo "<h1>" . $ress->status_message . " Status Code [" . $ress->status_code . "]</h1>"; } $arrhasil = $ress->result; // pr($fields); // pr($arrhasil); // pr($server_output); } else { die("Unable to write"); } } else { //after we collected the device ids in an array, kita push $arrhasil = self::push($array_id, $psn->camp_title, $url2push, $action); } if ($_GET['test']) { pr($arrhasil); } if (!isset($_POST['no_echo'])) { echo "<h1>Results</h1>"; } foreach ($arrhasil as $numw => $hasil) { //simpan hasil $gcm = new GCMResult(); $gcm->multicast_id = $hasil->multicast_id; $gcm->success = $hasil->success; $gcm->failure = $hasil->failure; $gcm->results = serialize($hasil->results); $gcm->canonical_ids = $hasil->canonical_ids; $gcm->camp_id = $psn->camp_id; $gcm->gcm_date = leap_mysqldate(); $gcm->gcm_test = $isTest; $gcm->save(); if (!isset($_POST['no_echo'])) { echo "ID : " . $hasil->multicast_id . "<br>"; echo "Success : " . $hasil->success . "<br>"; echo "Failure : " . $hasil->failure . "<br>"; echo "<a target='_blank' href='" . _SPPATH . "PushNotResults/res?id={$psn->camp_id}&token=" . IMBAuth::createOAuth() . "' class='btn btn primary'>Complete Results</a><br><br>"; } $page = 999 * $numw; foreach ($hasil->results as $num => $res) { if (isset($res->error)) { //error $status = 0; $log_text = $res->error; //delete device_id from table $dv = new DeviceModel(); global $db; $q = "DELETE FROM {$dv->table_name} WHERE device_id = '" . $array_id[$page + $num] . "'"; $q = "UPDATE {$dv->table_name} SET dev_active = 0 WHERE device_id = '" . $array_id[$page + $num] . "'"; //coba test.. // echo $q; $del = $db->query($q, 0); if ($_GET['test']) { echo "<br>query : " . $q . "<br>"; echo "delete succ :" . $del; echo "<br>"; } } else { //success $status = 1; $log_text = $res->message_id; } PushLogger::savelog($psn->camp_id, $array_id[$num], $devices[$num]->acc_id, $status, $log_text, $hasil->multicast_id); //disini save camp_id ke device_id dan date //pakai PushLogger Bisa !!! 11 January 2016 } } // foreach($hasil->results as $ // foreach($devices as $dev) { // PushLogger::savelog($psn->camp_id,) // } // echo json_encode($json); // die(); }
static function simpanHasilGCM($arrhasil, $psn, $array_id, $arrDevs, $app, $isTest = 0) { if ($_GET['test']) { pr($arrhasil); } if ($_GET['test']) { echo "<h1>Results</h1>"; } foreach ($arrhasil as $numw => $hasil) { //simpan hasil $gcm = new GCMResultCaps(); $gcm->multicast_id = $hasil->multicast_id; $gcm->success = $hasil->success; $gcm->failure = $hasil->failure; $gcm->results = serialize($hasil->results); $gcm->canonical_ids = $hasil->canonical_ids; $gcm->camp_id = $psn->camp_id; $gcm->gcm_date = leap_mysqldate(); $gcm->gcm_test = $isTest; $gcm->save(); if ($_GET['test']) { echo "ID : " . $hasil->multicast_id . "<br>"; echo "Success : " . $hasil->success . "<br>"; echo "Failure : " . $hasil->failure . "<br>"; echo "<a target='_blank' href='" . _SPPATH . "PushNotResults/res?id={$psn->camp_id}&token=" . IMBAuth::createOAuth() . "' class='btn btn primary'>Complete Results</a><br><br>"; } $page = 999 * $numw; foreach ($hasil->results as $num => $res) { if (isset($res->error)) { //error $status = 0; $log_text = $res->error; //delete device_id from table $dv = new DeviceModel(); global $db; // $q = "DELETE FROM {$dv->table_name} WHERE device_id = '".$array_id[$page+$num]."'"; $q = "UPDATE {$dv->table_name} SET dev_not_send = 1 WHERE device_id = '" . $array_id[$page + $num] . "'"; if ($_GET['test']) { echo "<br>query : " . $q . "<br>"; echo "delete succ :" . $db->query($q, 0); echo "<br>"; } } else { //success $status = 1; $log_text = $res->message_id; } PushLogger::savelog($psn->camp_id, $array_id[$page + $num], $arrDevs[$page + $num]->acc_id, $status, $log_text, $hasil->multicast_id, $app->app_id, $app->app_client_id); // PushLogger::savelog($psn->camp_id,$array_id[$page+$num],$arrDevs[$page+$num]->acc_id,$status,$log_text,$hasil->multicast_id); } } }
static function sendUsingAccountArray($arrAcc, $psn, $isTest = 0) { if ($_GET['test']) { pr($arrAcc); } if ($_GET['test']) { echo "<h1>Push Complete Results</h1>"; } foreach ($arrAcc as $to) { $dev = new DeviceModel(); // $arrD = $dev->getWhere("acc_id = '$to' AND device_type = 'android' ORDER BY logindate DESC"); $arrD = $dev->getWhere("acc_id = '{$to}' ORDER BY logindate DESC"); // $json['arrD'] = $arrD; // foreach ($arrD as $d) { // $json['dev'] = $d->device_id; //// if($d->device_id == "")continue; // $hasil = self::push($d->device_id, $msg, $website); // $json['hasil'] = $hasil; // if ($hasil->success > 0) { // $json['bool'] = 1; //// $json['hasil'] = $hasil; // } // } if (count($arrD) > 0) { foreach ($arrD as $ddd) { $devices[] = $ddd; } } else { if ($_GET['test']) { echo "no device id : " . $to . " <br>"; } } } $action = self::getAction($psn); if ($_GET['test']) { echo "action = " . $action . "<br>"; } $array_id = array(); if ($_GET['test']) { echo "<h3>Devices</h3>"; } foreach ($devices as $dev) { if ($_GET['test']) { echo " acc_id : " . $dev->acc_id; echo "<br> dev_id : " . $dev->device_id; echo "<br> type : " . $dev->device_type; echo "<br>"; } $array_id[] = $dev->device_id; } $url2push = Efiwebsetting::getData('PUBLIC_IP') . "WebViewer/messages/" . $psn->camp_id; //penambahan atas permintaan tbs 10 sept 2015, bisa push url if ($psn->camp_url != "") { $url2push = $psn->camp_url; } //after we collected the device ids in an array, kita push $arrhasil = self::push($array_id, $psn->camp_title, $url2push, $action); if ($_GET['test']) { pr($arrhasil); } echo "<h1>Results</h1>"; foreach ($arrhasil as $numw => $hasil) { //simpan hasil $gcm = new GCMResult(); $gcm->multicast_id = $hasil->multicast_id; $gcm->success = $hasil->success; $gcm->failure = $hasil->failure; $gcm->results = serialize($hasil->results); $gcm->canonical_ids = $hasil->canonical_ids; $gcm->camp_id = $psn->camp_id; $gcm->gcm_date = leap_mysqldate(); $gcm->gcm_test = $isTest; $gcm->save(); echo "ID : " . $hasil->multicast_id . "<br>"; echo "Success : " . $hasil->success . "<br>"; echo "Failure : " . $hasil->failure . "<br>"; echo "<a target='_blank' href='" . _SPPATH . "PushNotResults/res?id={$psn->camp_id}&token=" . IMBAuth::createOAuth() . "' class='btn btn primary'>Complete Results</a><br><br>"; $page = 999 * $numw; foreach ($hasil->results as $num => $res) { if (isset($res->error)) { //error $status = 0; $log_text = $res->error; //delete device_id from table $dv = new DeviceModel(); global $db; $q = "DELETE FROM {$dv->table_name} WHERE device_id = '" . $array_id[$page + $num] . "'"; if ($_GET['test']) { echo "<br>query : " . $q . "<br>"; echo "delete succ :" . $db->query($q, 0); echo "<br>"; } } else { //success $status = 1; $log_text = $res->message_id; } PushLogger::savelog($psn->camp_id, $array_id[$num], $devices[$num]->acc_id, $status, $log_text, $hasil->multicast_id); } } // foreach($hasil->results as $ // foreach($devices as $dev) { // PushLogger::savelog($psn->camp_id,) // } // echo json_encode($json); // die(); }
public function exportIt($return) { $id = addslashes($_GET['cid']); // echo $id; if ($id == "" || $id < 1) { die("no id"); } $camp = new PushNotCamp(); $camp->getByID($id); $arrStatus = array("0" => "Not Pushed", "1" => "Pushed"); if ($camp->camp_app_id != AppAccount::getAppID()) { die("camp mismatched"); } // pr($camp); $onDate = ""; if ($camp->camp_status == 1) { $onDate = " on " . indonesian_date($camp->camp_send_date); } //hitung openrate dll $targetedDev = count(explode(",", $camp->camp_dev_ids)); $gcm = new GCMResult(); $arrGCM = $gcm->getWhere("camp_id = '{$id}' ORDER BY gcm_date DESC"); $succ = 0; $fail = 0; $seen_by = 0; foreach ($arrGCM as $cc) { $succ += $cc->success; $fail += $cc->failure; $seen_by += $cc->seen_by; } $openrate = round($seen_by / $succ * 100, 3); $del = round($succ / ($succ + $fail) * 100, 3); $filename = urlencode(str_replace(" ", "_", $camp->camp_name)) . "_" . date('Ymd') . ".xls"; header("Content-Disposition: attachment; filename=\"{$filename}\""); header("Content-Type: application/vnd.ms-excel"); $flag = false; print "Campaign Name : \t" . $camp->camp_title; //judul print "\n"; print "Status : \t" . $arrStatus[$camp->camp_status] . $onDate; //status and delieverd date print "\n"; print "Content : \t" . $camp->camp_title; print "\n"; print "Open Rate : \t" . $openrate; print "\n"; print "Seen By : \t" . $seen_by; print "\n"; print "Deliverable Percentage : \t" . $del; print "\n"; print "Targeted Devices : \t" . $targetedDev; print "\n"; print "Success : \t" . $succ; print "\n"; print "Failed : \t" . $fail; print "\n"; print "\n"; $logs = new PushLogger(); $objs = $logs->getWhere("log_camp_id = '{$id}'"); $filter = explode(",", $logs->exportList); foreach ($objs as $key => $obj) { foreach ($obj as $name => $value) { if (in_array($name, $filter)) { echo Lang::t($name) . "\t"; } } break; } print "\n"; foreach ($objs as $key => $obj) { foreach ($obj as $name => $value) { if (in_array($name, $filter)) { echo $value . "\t"; } } print "\n"; } exit; }