Update: 2026-06-30 21:12:26
This commit is contained in:
@@ -41,7 +41,7 @@ $logEntries = [];
|
||||
foreach ($countries as $country => $cc) {
|
||||
// 1. متوسط سعر الكيلو لكل منافس (آخر 24 ساعة)
|
||||
$sql = "SELECT competitor_name, AVG(price_per_km) AS avg_ppm
|
||||
FROM competitor_prices
|
||||
FROM scraped_competitor_prices
|
||||
WHERE country_code = :cc
|
||||
AND created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)
|
||||
AND price_per_km > 0
|
||||
|
||||
@@ -288,13 +288,14 @@ function calculateDynamicPrice($country, $minFare, $distance, $duration, $kazanR
|
||||
$maxTlng = $destLng + $lngDelta;
|
||||
|
||||
// Layer 1: Start and End match within bounding box
|
||||
$sqlComp = "SELECT total_price, distance_km
|
||||
FROM competitor_prices
|
||||
$sqlComp = "SELECT price_amount AS total_price, (price_amount / price_per_km) AS distance_km
|
||||
FROM scraped_competitor_prices
|
||||
WHERE country_code = :country_code
|
||||
AND (from_latitude + 0.0) BETWEEN :min_flat AND :max_flat
|
||||
AND (from_longitude + 0.0) BETWEEN :min_flng AND :max_flng
|
||||
AND (to_latitude + 0.0) BETWEEN :min_tlat AND :max_tlat
|
||||
AND (to_longitude + 0.0) BETWEEN :min_tlng AND :max_tlng
|
||||
AND (start_lat + 0.0) BETWEEN :min_flat AND :max_flat
|
||||
AND (start_lng + 0.0) BETWEEN :min_flng AND :max_flng
|
||||
AND (end_lat + 0.0) BETWEEN :min_tlat AND :max_tlat
|
||||
AND (end_lng + 0.0) BETWEEN :min_tlng AND :max_tlng
|
||||
AND price_per_km > 0
|
||||
AND created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)
|
||||
ORDER BY created_at DESC LIMIT 5";
|
||||
$stmtComp = $con->prepare($sqlComp);
|
||||
@@ -313,11 +314,12 @@ function calculateDynamicPrice($country, $minFare, $distance, $duration, $kazanR
|
||||
|
||||
if (empty($matches)) {
|
||||
// Layer 2 Fallback: Start match only within bounding box
|
||||
$sqlFallback = "SELECT total_price, distance_km
|
||||
FROM competitor_prices
|
||||
$sqlFallback = "SELECT price_amount AS total_price, (price_amount / price_per_km) AS distance_km
|
||||
FROM scraped_competitor_prices
|
||||
WHERE country_code = :country_code
|
||||
AND (from_latitude + 0.0) BETWEEN :min_flat AND :max_flat
|
||||
AND (from_longitude + 0.0) BETWEEN :min_flng AND :max_flng
|
||||
AND (start_lat + 0.0) BETWEEN :min_flat AND :max_flat
|
||||
AND (start_lng + 0.0) BETWEEN :min_flng AND :max_flng
|
||||
AND price_per_km > 0
|
||||
AND created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)
|
||||
ORDER BY created_at DESC LIMIT 10";
|
||||
$stmtFallback = $con->prepare($sqlFallback);
|
||||
|
||||
Reference in New Issue
Block a user