Update: 2026-06-22 00:31:28
This commit is contained in:
@@ -124,6 +124,16 @@ function calculateDynamicPrice($country, $minFare, $distance, $duration, $kazanR
|
||||
$demandCount = (int)$redis->get("demand:grid:" . $grid_id);
|
||||
$availableDrivers = 0;
|
||||
|
||||
// Check competitor surge opportunities
|
||||
$competitorSurgeMultiplier = 1.0;
|
||||
$surgeOpsJson = $redis->get("surge:opportunities");
|
||||
if ($surgeOpsJson) {
|
||||
$surgeOps = json_decode($surgeOpsJson, true);
|
||||
if (is_array($surgeOps) && isset($surgeOps[$grid_id])) {
|
||||
$competitorSurgeMultiplier = (float)$surgeOps[$grid_id];
|
||||
}
|
||||
}
|
||||
|
||||
// Driver locations are handled by Location Redis (no prefix)
|
||||
try {
|
||||
if (isset($redisLocation) && $redisLocation !== null) {
|
||||
@@ -139,6 +149,11 @@ function calculateDynamicPrice($country, $minFare, $distance, $duration, $kazanR
|
||||
$surgeMultiplier = min(3.0, $surgeMultiplier); // Cap at 3.0
|
||||
}
|
||||
}
|
||||
|
||||
// Auto-Adaptive Pricing: Apply competitor surge if it's higher
|
||||
if ($competitorSurgeMultiplier > $surgeMultiplier) {
|
||||
$surgeMultiplier = $competitorSurgeMultiplier;
|
||||
}
|
||||
} catch (Exception $e) {}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user