get($obj['user_id']);
$requestToSend = [];
$login = $curUser->zipal_login;
$password = $curUser->zipal_password;
if (empty($login) || empty($password)) {
$login = $curUser->agencyZipalLogin;
$password = $curUser->agencyZipalPassword;
}
$requestPublishPrices = [];
$requestPublishPrices['login'] = $login;
$requestPublishPrices['password'] = $password;
$requestPublishPrices['method'] = 'GetPrices';
$requestPublishPrices['request'] = [];
$requestPublishPrices['request']['requestType'] = 'GetPricesByObjectRequestType';
$requestPublishPrices['request']['objectId'] = $obj['zipal_id'];
$requestPublishPrices['request']['days'] = $obj['days'];
$requestToSend = [];
$requestToSend['login'] = $login;
$requestToSend['password'] = $password;
$requestToSend['method'] = 'Publish';
$requestToSend['request'] = [];
$requestToSend['request']['requestType'] = 'CustomPublishRequestType';
$requestToSend['request']['objectId'] = $obj['zipal_id'];
$requestToSend['request']['days'] = $obj['days'];
$requestToSend['request']['autoProlong'] = false;
$requestToSend['request']['destination'] = json_decode($obj['destinations'], true);
$request = json_encode($requestToSend);
$requestPrices = json_encode($requestPublishPrices);
//echo $request;
//echo "
";
$user_agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; HTC_Touch_Diamond2_T5353; Windows Phone 6.5)';
//делаем запрос к zipal
$result = curl_request_zipal_json("https://zipal.ru/ws/json", $obj['user_id'], $user_agent, $request);
$resultPrices = curl_request_zipal_json("https://zipal.ru/ws/json", $obj['user_id'], $user_agent, $requestPrices);
//echo $result;
$jsonResult = json_decode($result, true);
$jsonResultPrices = json_decode($resultPrices, true);
if (!$jsonResult) {
$jsonResult['resultCode'] = "FAIL";
$jsonResult['result'] = "NO RESPONSE";
}
if ($jsonResult['resultCode'] == "FAIL") {
$sql = "UPDATE zipal_objects SET error_text = '$result' WHERE id = $obj[id]";
mysql_query($sql);
if (empty($obj['error_text'])) {
if (empty($curUser->zipal_balance)) {
$newBalance = $curUser->agencyZipalBalance + $obj['price'];
$sql = "UPDATE users SET zipal_balance='$newBalance' WHERE id=" . $curUser->agencyId;
mysql_query($sql);
} else {
$newBalance = $curUser->zipal_balance + $obj['price'];
$sql = "UPDATE users SET zipal_balance='$newBalance' WHERE id=" . $curUser->id;
mysql_query($sql);
}
$sql = "UPDATE objects SET add_to_zipal='0' WHERE id=$objectId";
mysql_query($sql);
}
$logText = "Ошибка публикации через кнопку С отчетами: $result";
$sqlLog = "INSERT INTO object_publish_log(object_id, created_at, user_id, log_text) VALUES ('$objectId', NOW(), '$curUser->id', '$logText')";
mysql_query($sqlLog);
} else {
if ($jsonResult['result']['status'] == "SuccessPublishResponseType") {
$sql = "UPDATE zipal_objects SET error_text = NULL, published = 1 WHERE id = $obj[id]";
mysql_query($sql);
if (!empty($obj['error_text'])) {
//если была ошибка перед этим - вычитаем деньги и ставим флаг в JW
if (empty($curUser->zipal_balance)) {
$newBalance = $curUser->agencyZipalBalance - $obj['price'];
$sql = "UPDATE users SET zipal_balance='$newBalance' WHERE id=" . $curUser->agencyId;
mysql_query($sql);
} else {
$newBalance = $curUser->zipal_balance - $obj['price'];
$sql = "UPDATE users SET zipal_balance='$newBalance' WHERE id=" . $curUser->id;
mysql_query($sql);
}
}
$sql = "UPDATE objects SET add_to_zipal='1' WHERE id=$objectId";
mysql_query($sql);
$logText = "Опубликовано через кнопку С отчетами на $obj[days] дней";
$sqlLog = "INSERT INTO object_publish_log(object_id, created_at, user_id, log_text) VALUES ('$objectId', NOW(), '$curUser->id', '$logText')";
mysql_query($sqlLog);
$packageDestinations = json_decode($obj['destinations'], true);
if ($packageDestinations && $jsonResultPrices['resultCode'] == "OK") {
$zipalBase = $jsonResultPrices['result']['basePrice'] / 100;
$sqlBaseStat = "INSERT INTO object_publish_statistic(object_id, user_owner_id, publish_user_id, created_at, publish_start_date, publish_end_date, days_count, destination, price, price_period, on_moderation, zipal_objects_id)
VALUES ('$objectId', '$objData[id_add_user]', '$curUser->id', NOW(), NOW(), DATE_ADD(NOW(), INTERVAL $obj[days] DAY), '$obj[days]', 'ZIPAL', '$zipalBase', '$zipalBase', '0', '$obj[id]')";
mysql_query($sqlBaseStat);
foreach ($jsonResultPrices['result']['destination'] as $dest) {
//записываем актуальные цены публикации на те площадки, куда публикуем
$dbDestFound = null;
//ищем площадку, используется ли она в пакете
foreach ($packageDestinations as $dbDest) {
if ($dest['destination'] === $dbDest['destination']) {
$dbDestFound = $dbDest;
break;
}
}
//если такая площадка используется, то записываем ее в БД
if ($dbDestFound != null) {
$publishPrice = 0;
//смотрим цену зипала
foreach ($dest['price'] as $price) {
if ($price['type'] === $dbDestFound['placementType']) {
$publishPrice = $price['price'] / 100;
}
}
$sqlStat = "INSERT INTO object_publish_statistic(object_id, user_owner_id, publish_user_id, created_at, publish_start_date, publish_end_date, days_count, destination, price, zipal_objects_id)
VALUES ('$objectId', '$objData[id_add_user]', '$curUser->id', NOW(), NOW(), DATE_ADD(NOW(), INTERVAL $obj[days] DAY), '$obj[days]', '$dbDestFound[destination]', '$publishPrice', '$obj[id]')";
mysql_query($sqlStat);
}
}
}
} else {
$sql = "UPDATE zipal_objects SET error_text = '$result' WHERE id = $obj[id]";
mysql_query($sql);
if (empty($obj['error_text'])) {
if (empty($curUser->zipal_balance)) {
$newBalance = $curUser->agencyZipalBalance + $obj['price'];
$sql = "UPDATE users SET zipal_balance='$newBalance' WHERE id=" . $curUser->agencyId;
mysql_query($sql);
} else {
$newBalance = $curUser->zipal_balance + $obj['price'];
$sql = "UPDATE users SET zipal_balance='$newBalance' WHERE id=" . $curUser->id;
mysql_query($sql);
}
$sql = "UPDATE objects SET add_to_zipal='0' WHERE id=$objectId";
mysql_query($sql);
}
$logText = "Ошибка публикации через кнопку С отчетами: $result";
$sqlLog = "INSERT INTO object_publish_log(object_id, created_at, user_id, log_text) VALUES ('$objectId', NOW(), '$curUser->id', '$logText')";
mysql_query($sqlLog);
}
}
sleep(2);
}
?>