Update: 2026-06-15 01:37:40
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 = (
|
||||
|
||||
Reference in New Issue
Block a user