Update: 2026-06-11 18:22:57

This commit is contained in:
Hamza-Ayed
2026-06-11 18:22:59 +03:00
parent c5170a88d2
commit 727068b668
629 changed files with 46050 additions and 46109 deletions

View File

@@ -12,6 +12,7 @@ $rideId = filterRequest("ride_id");
$driverId = filterRequest("driver_id");
$reason = filterRequest("reason");
$passengerToken = filterRequest("passenger_token");
$penaltyFee = (float) filterRequest("penalty_fee");
// تثبيت الحالة
$statusText = "CancelFromDriverAfterApply";
@@ -92,6 +93,27 @@ try {
if (function_exists('notifyPassengerOnRideServer')) {
notifyPassengerOnRideServer($passenger_id, $socketPayload);
}
// 4.1. إضافة غرامة الإلغاء على الراكب (الدين) إذا كانت موجودة
if ($penaltyFee > 0) {
// إضافة القيمة كدين سالب في المحفظة
$negativeDebt = -$penaltyFee;
$stmtWallet = $con->prepare("INSERT INTO `passengerWallet` (passenger_id, balance) VALUES (?, ?)");
$stmtWallet->execute([$passenger_id, $negativeDebt]);
// تخزين الدين في الـ Redis لمدة 6 شهور (15552000 ثانية)
try {
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redisKey = "passenger_debt_" . $passenger_id;
// إضافة الدين الجديد إلى الدين السابق إن وجد
$currentDebt = (float) $redis->get($redisKey);
$newDebt = $currentDebt + $negativeDebt;
$redis->setex($redisKey, 15552000, $newDebt);
} catch (Exception $e) {
error_log("Redis Error: " . $e->getMessage());
}
}
}
// ب) FCM (Internal)

View File

@@ -58,6 +58,30 @@ try {
$stmtPas->execute([$ride_id]);
$passenger_id = $stmtPas->fetchColumn();
// 2.5 تصفير الدين من Redis عند بدء الرحلة (كما طلبت)
if ($passenger_id) {
try {
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redisKey = "passenger_debt_" . $passenger_id;
// قراءة الدين الحالي من Redis قبل الحذف (إن لزم الأمر للتسجيل مستقبلاً)
$currentDebt = (float) $redis->get($redisKey);
// تصفير / حذف الدين
$redis->del($redisKey);
// يمكنك هنا أيضاً إدراج حركة معاكسة في جدول passengerWallet إذا أردت تسوية قاعدة البيانات
if ($currentDebt < 0) {
$positiveOffset = abs($currentDebt);
$stmtWallet = $con->prepare("INSERT INTO `passengerWallet` (passenger_id, balance) VALUES (?, ?)");
$stmtWallet->execute([$passenger_id, $positiveOffset]);
}
} catch (Exception $e) {
error_log("Redis Error (zeroing debt): " . $e->getMessage());
}
}
if ($passenger_id) {
// أ) إرسال السوكيت (Socket)