Viewing file: Micro.php (4.78 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Controllers;
use App\Libraries\Onaylasms;
use App\Libraries\Provider;
use App\Models\User;
class Micro extends BaseController
{
public function getNotificationOrder()
{
$db = \Config\Database::connect();
$result = $db->query("SELECT * FROM services ORDER BY RAND() LIMIT 1;");
$result = $result->getResultArray()[0];
$categoryName = db('categories')->where([
'id' => $result['category'],
])->get()
->getResultArray()[0]['name'];
$ago = random_int(1, 9);
return $this->response->setJSON([
'message' => "$categoryName - {$result['name']} yeni sipariş ($ago dakika önce)!"
]);
}
public function createServices()
{
if (!user() || user()['admin'] != '1') {
return redirect()->to('/login');
}
$siteCategory = $this->request->getPost('siteCategory');
$provider = $this->request->getPost('provider');
$providerCategory = $this->request->getPost('providerCategory');
$rate = $this->request->getPost('rate');
if ($rate != '' || $siteCategory != '' || $providerCategory != '') {
if ($provider == 'onaylasms') {
$services = (new Provider('onaylasms'))->getServices($providerCategory);
$bayi = (new Onaylasms())->getDiscountRate($providerCategory)['rate'];
foreach ($services as $service) {
$service['price'] -= ($service['price'] / 100) * $bayi;
db('services')->insert([
'name' => $service['name'],
'category' => $siteCategory,
'provider' => $provider,
'service' => $service['id'],
'price' => floatval($service['price']) + ((floatval($service['price']) / 100) * $rate),
'providerCategory' => $providerCategory
]);
}
} else if ($provider == 'fivesim' || $provider == 'smsactivate') {
$services = (new Provider($provider))->getServices($providerCategory);
$kur = simplexml_load_file("https://www.tcmb.gov.tr/kurlar/today.xml");
$kur = $kur->Currency[14]->ForexSelling;
foreach ($services as $service) {
db('services')->insert([
'name' => $service['name'],
'category' => $siteCategory,
'provider' => $provider,
'service' => $service['id'],
'price' => (floatval($service['price']) + ((floatval($service['price']) / 100) * $rate)) * floatval($kur),
'providerCategory' => $providerCategory
]);
}
}
}
echo 'Servisler çekildi. <a href="' . base_url("admin") . '">Ana Sayfaya Dön</a>';
}
public function updatePricesByPage($page)
{
if (!user() || user()['admin'] != '1') {
return redirect()->to('/login');
}
$rate = $this->request->getPost('rate');
$category = $this->request->getPost('category');
$servicesCount = db('services')->where('category', $category)->countAllResults();
$updateCount = 25;
if ($servicesCount / $updateCount + 1 > $page) {
$services = db('services')->where('category', $category)->limit($updateCount, ($page - 1) * $updateCount)->get()->getResultArray();
$kur = simplexml_load_file("https://www.tcmb.gov.tr/kurlar/today.xml");
$kur = $kur->Currency[14]->ForexSelling;
set_time_limit(500);
foreach ($services as $service) {
$s = (new Provider($service['provider']))->getServiceDetails($service['service'], $service['providerCategory']);
$price = floatval($s['price']);
if ($service['provider'] == 'onaylasms') {
$price = $price - ($price / 100 * 30);
} else {
$price = $price * $kur;
}
$price = $price / 100 * (100 + $rate);
db('services')->where('id', $service['id'])->update([
'price' => $price,
]);
}
}
return $this->response->setJSON([
'page' => $page,
'category' => intval($category),
'rate' => intval($rate),
'services' => $servicesCount,
'newPage' => $servicesCount / $updateCount + 1 > $page + 1 ? $page + 1 : $page,
'pageStart' => $page * $updateCount - $updateCount,
'pageEnd' => $page * $updateCount,
]);
}
}
|