Update: 2026-06-15 01:37:40

This commit is contained in:
Hamza-Ayed
2026-06-15 01:37:41 +03:00
parent f021ba5a35
commit 2321b78244
164 changed files with 1356 additions and 1560 deletions

View File

@@ -14,8 +14,8 @@ SELECT
ride.carType,
ride.paymentMethod AS ridePaymentMethod,
ride.rideTimeFinish,
payments.amount AS paymentFromPaymentTable,
payments.created_at AS timeFromPaymentTable,
0 AS paymentFromPaymentTable,
NULL AS timeFromPaymentTable,
COALESCE(dr_rating.avgRating, 0) AS avgRatingDriverFromPassengers,
COALESCE(dr_rating.cntRating, 0) AS countratingDriverFromPassengers,
@@ -23,9 +23,9 @@ SELECT
COALESCE(ps_rating.cntRating, 0) AS countRatingPassengerFromDrivers,
COALESCE(dr_rides.cnt, 0) AS countDriverRide,
COALESCE(ps_rides.cnt, 0) AS countPassengerRide,
COALESCE(dr_visa.total, 0) AS driverVisa,
COALESCE(dr_wallet.total, 0) AS driverWallet,
COALESCE(ps_wallet.total, 0) AS passengerWallet,
0 AS driverVisa,
0 AS driverWallet,
0 AS passengerWallet,
dt.token AS driverToken,
tk.token AS passengerToken,
@@ -44,9 +44,6 @@ LEFT JOIN driver d
LEFT JOIN ride
ON ride.id = cm.ride_id COLLATE utf8mb4_general_ci
LEFT JOIN payments
ON payments.rideId = cm.ride_id COLLATE utf8mb4_general_ci
-- تقييمات السائق (مرة واحدة لكل سائق)
LEFT JOIN (
SELECT driver_id, AVG(rating) AS avgRating, COUNT(*) AS cntRating
@@ -75,30 +72,6 @@ LEFT JOIN (
GROUP BY passenger_id
) ps_rides ON ps_rides.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
-- رصيد Visa السائق
LEFT JOIN (
SELECT driverID, SUM(amount) AS total
FROM payments
WHERE isGiven = 'waiting'
AND payment_method IN ('visa-in','visa','visaRide','TransferFrom','payout','TransferTo')
GROUP BY driverID
) dr_visa ON dr_visa.driverID = cm.driver_id COLLATE utf8mb4_general_ci
-- محفظة السائق
LEFT JOIN (
SELECT driverID, SUM(amount) AS total
FROM driverWallet
WHERE paymentMethod IN ('visa-in','visa','visaRide','TransferFrom','payout','TransferTo')
GROUP BY driverID
) dr_wallet ON dr_wallet.driverID = cm.driver_id COLLATE utf8mb4_general_ci
-- محفظة الراكب
LEFT JOIN (
SELECT passenger_id, SUM(balance) AS total
FROM passengerWallet
GROUP BY passenger_id
) ps_wallet ON ps_wallet.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
-- توكن السائق
LEFT JOIN driverToken dt
ON dt.captain_id = cm.driver_id COLLATE utf8mb4_general_ci

View File

@@ -21,8 +21,8 @@ $sql = "SELECT
ride.carType AS carType,
ride.paymentMethod AS ridePaymentMethod,
ride.rideTimeFinish AS rideTimeFinish,
payments.amount AS paymentFromPaymentTable,
payments.created_at AS timeFromPaymentTable,
0 AS paymentFromPaymentTable,
NULL AS timeFromPaymentTable,
(
SELECT
AVG(rd.rating)
@@ -71,47 +71,9 @@ $sql = "SELECT
WHERE
ride.passenger_id = cm.passenger_id
) countPassengerRide,
(
SELECT
COALESCE(SUM(amount),
0) AS visaDriver
FROM
payments
WHERE
isGiven = 'waiting' AND `payment_method` IN(
'visa-in',
'visa',
'visaRide',
'TransferFrom',
'payout',
'TransferTo'
) AND payments.`driverID` = cm.driver_id
) AS driverVisa,
(
SELECT
COALESCE(SUM(amount),
0) AS pointDriver
FROM
driverWallet dw
WHERE
dw.paymentMethod IN(
'visa-in',
'visa',
'visaRide',
'TransferFrom',
'payout',
'TransferTo'
) AND dw.`driverID` = cm.driver_id
) AS driverWallet,
(
SELECT
COALESCE(SUM(pw.balance),
0)
FROM
passengerWallet pw
WHERE
pw.passenger_id = cm.passenger_id
) AS passengerWallet,
0 AS driverVisa,
0 AS driverWallet,
0 AS passengerWallet,
(
SELECT
token
@@ -151,7 +113,6 @@ LEFT JOIN passengers p ON
LEFT JOIN driver d ON
d.id = cm.driver_id
LEFT JOIN ride ON ride.id = cm.ride_id
LEFT JOIN payments ON payments.rideId = cm.ride_id
WHERE
cm.driver_id = '$driverID'";
$stmt = $con->prepare($sql);

View File

@@ -22,21 +22,9 @@ $sql = "SELECT
),
0) AS rating,
COALESCE(
(
SELECT SUM(pd.amount)
FROM `payments` pd
WHERE pd.driverID = d.id
),
0) AS totalPayment,
0 AS totalPayment,
COALESCE(
(
SELECT SUM(dw.amount)
FROM `driverWallet` dw
WHERE dw.driverID = d.id
),
0) AS totalDriverWallet,
0 AS totalDriverWallet,
COALESCE(
(
@@ -97,7 +85,22 @@ $stmt->execute();
if ($stmt->rowCount() > 0) {
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
// فك تشفير الحقول المهمة
// Get country from Kazan to determine wallet server
$stmtKazan = $con->prepare("SELECT country FROM kazan LIMIT 1");
$stmtKazan->execute();
$kazan = $stmtKazan->fetch(PDO::FETCH_ASSOC) ?: ["country" => "Jordan"];
$country = $kazan['country'] ?? 'Jordan';
$walletServer = "https://walletintaleq.intaleq.xyz";
if (strtolower($country) == 'jordan') {
$walletServer = getenv('WALLET_SERVER_JORDAN') ?: "https://walletintaleq.intaleq.xyz";
} elseif (strtolower($country) == 'egypt') {
$walletServer = getenv('WALLET_SERVER_EGYPT') ?: "https://walletintaleq.intaleq.xyz";
} else {
$walletServer = getenv('WALLET_SERVER_SYRIA') ?: "https://walletintaleq.intaleq.xyz";
}
// فك تشفير الحقول المهمة وجلب الرصيد من سيرفر المحفظة
foreach ($row as &$r) {
if (isset($r['phone'])) $r['phone'] = $encryptionHelper->decryptData($r['phone']);
if (isset($r['email'])) $r['email'] = $encryptionHelper->decryptData($r['email']);
@@ -115,6 +118,35 @@ if ($stmt->rowCount() > 0) {
if (isset($r['address'])) $r['address'] = $encryptionHelper->decryptData($r['address']);
if (isset($r['vin'])) $r['vin'] = $encryptionHelper->decryptData($r['vin']);
unset($r['password']);
// S2S Wallet Balance Query
$driver_id = $r['id'] ?? '';
if (!empty($driver_id)) {
$walletUrl = "$walletServer/v2/main/ride/driverWallet/get_s2s_wallet_dashboard.php";
$ch = curl_init($walletUrl);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(["driverID" => $driver_id]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_HTTPHEADER => [
'Content-Type: application/x-www-form-urlencoded',
'X-S2S-Api-Key: ' . getenv('S2S_SHARED_KEY')
]
]);
$s2sRes = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$totalWallet = 0.0;
if ($httpCode === 200 && $s2sRes) {
$resDecoded = json_decode($s2sRes, true);
if ($resDecoded && isset($resDecoded['status']) && $resDecoded['status'] === 'success') {
$totalWallet = (float)($resDecoded['message']['totalWallet'] ?? 0.0);
}
}
$r['totalDriverWallet'] = $totalWallet;
}
}
jsonSuccess($row);

View File

@@ -19,21 +19,9 @@ $sql = "SELECT
),
0) AS rating,
COALESCE(
(
SELECT SUM(pd.amount)
FROM `payments` pd
WHERE pd.driverID = d.id
),
0) AS totalPayment,
0 AS totalPayment,
COALESCE(
(
SELECT SUM(dw.amount)
FROM `driverWallet` dw
WHERE dw.driverID = d.id
),
0) AS totalDriverWallet,
0 AS totalDriverWallet,
COALESCE(
(
@@ -92,7 +80,22 @@ $stmt->execute();
if ($stmt->rowCount() > 0) {
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
// فك تشفير الحقول المهمة
// Get country from Kazan to determine wallet server
$stmtKazan = $con->prepare("SELECT country FROM kazan LIMIT 1");
$stmtKazan->execute();
$kazan = $stmtKazan->fetch(PDO::FETCH_ASSOC) ?: ["country" => "Jordan"];
$country = $kazan['country'] ?? 'Jordan';
$walletServer = "https://walletintaleq.intaleq.xyz";
if (strtolower($country) == 'jordan') {
$walletServer = getenv('WALLET_SERVER_JORDAN') ?: "https://walletintaleq.intaleq.xyz";
} elseif (strtolower($country) == 'egypt') {
$walletServer = getenv('WALLET_SERVER_EGYPT') ?: "https://walletintaleq.intaleq.xyz";
} else {
$walletServer = getenv('WALLET_SERVER_SYRIA') ?: "https://walletintaleq.intaleq.xyz";
}
// فك تشفير الحقول المهمة وجلب الرصيد من سيرفر المحفظة
foreach ($row as &$r) {
if (isset($r['phone'])) $r['phone'] = $encryptionHelper->decryptData($r['phone']);
if (isset($r['email'])) $r['email'] = $encryptionHelper->decryptData($r['email']);
@@ -102,7 +105,7 @@ if ($stmt->rowCount() > 0) {
if (isset($r['birthdate'])) $r['birthdate'] = $encryptionHelper->decryptData($r['birthdate']);
if (isset($r['site'])) $r['site'] = $encryptionHelper->decryptData($r['site']);
if (isset($r['name_arabic'])) $r['name_arabic'] = $encryptionHelper->decryptData($r['name_arabic']);
if (isset($r['national_number'])) $r['national_number'] = $encryptionHelper->decryptData($r['national_number']);
if (isset($r['national_number'])) $r['national_number'] = $encryptionHelper->decryptData($r['national_number']);
if (isset($r['maritalStatus'])) $r['maritalStatus'] = $encryptionHelper->decryptData($r['maritalStatus']);
if (isset($r['sosPhone'])) $r['sosPhone'] = $encryptionHelper->decryptData($r['sosPhone']);
if (isset($r['car_plate'])) $r['car_plate'] = $encryptionHelper->decryptData($r['car_plate']);
@@ -113,6 +116,34 @@ if ($stmt->rowCount() > 0) {
if (isset($r['bankCode'])) $r['bankCode'] = $encryptionHelper->decryptData($r['bankCode']);
unset($r['password']);
// S2S Wallet Balance Query
$driver_id = $r['id'] ?? '';
if (!empty($driver_id)) {
$walletUrl = "$walletServer/v2/main/ride/driverWallet/get_s2s_wallet_dashboard.php";
$ch = curl_init($walletUrl);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(["driverID" => $driver_id]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_HTTPHEADER => [
'Content-Type: application/x-www-form-urlencoded',
'X-S2S-Api-Key: ' . getenv('S2S_SHARED_KEY')
]
]);
$s2sRes = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$totalWallet = 0.0;
if ($httpCode === 200 && $s2sRes) {
$resDecoded = json_decode($s2sRes, true);
if ($resDecoded && isset($resDecoded['status']) && $resDecoded['status'] === 'success') {
$totalWallet = (float)($resDecoded['message']['totalWallet'] ?? 0.0);
}
}
$r['totalDriverWallet'] = $totalWallet;
}
}
jsonSuccess($row);

View File

@@ -27,21 +27,16 @@ $sql = "SELECT
COALESCE(r.price_for_driver, 0) AS price_for_driver,
COALESCE(r.price_for_passenger, 0) AS price_for_passenger,
COALESCE(r.distance, 0) AS distance,
COALESCE(pw.balance, 0) AS passenger_wallet_balance,
COALESCE(pay.amount, 0) AS passenger_payment_amount,
COALESCE(pay.payment_method, '') AS passenger_payment_method,
COALESCE(dw.amount, 0) AS driver_payment_amount,
COALESCE(dw.paymentMethod, '') AS driver_payment_method
0 AS passenger_wallet_balance,
0 AS passenger_payment_amount,
'' AS passenger_payment_method,
0 AS driver_payment_amount,
'' AS driver_payment_method
FROM
passengers p
LEFT JOIN
ride r ON p.id = r.passenger_id
LEFT JOIN
passengerWallet pw ON p.id = pw.passenger_id
LEFT JOIN
payments pay ON r.id = pay.rideId
LEFT JOIN
driverWallet dw ON r.driver_id = dw.driverID AND pay.id = dw.paymentID
WHERE
p.phone = :phone
AND r.id = (