add new features like realtime 2026-05-11-19
This commit is contained in:
17
git_push.sh
Normal file
17
git_push.sh
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
# الحصول على التاريخ الحالي
|
||||||
|
CURRENT_DATE=$(date +"%Y-%m-%d-%H")
|
||||||
|
|
||||||
|
echo "--- 🚀 Starting Deployment ($CURRENT_DATE) ---"
|
||||||
|
|
||||||
|
# إضافة جميع الملفات
|
||||||
|
git add .
|
||||||
|
|
||||||
|
# تنفيذ الكوميت مع التاريخ
|
||||||
|
git commit -m "add new features like realtime $CURRENT_DATE"
|
||||||
|
|
||||||
|
# الرفع إلى السيرفر
|
||||||
|
git push myserver main
|
||||||
|
|
||||||
|
echo "--- ✅ Done ---"
|
||||||
@@ -1,180 +1,142 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/../connect.php';
|
require_once __DIR__ . '/../connect.php';
|
||||||
|
|
||||||
$sql = "SELECT
|
$sql = "
|
||||||
cm.`id`,
|
SELECT
|
||||||
cm.`ride_id`,
|
cm.id, cm.ride_id, cm.passenger_id, cm.driver_id,
|
||||||
cm.`passenger_id`,
|
cm.complaint_type, cm.description, cm.date_filed,
|
||||||
cm.`driver_id`,
|
cm.statusComplaint, cm.resolution, cm.date_resolved,
|
||||||
cm.`complaint_type`,
|
p.first_name AS passengerName,
|
||||||
cm.`description`,
|
d.name_arabic AS driverName,
|
||||||
cm.`date_filed`,
|
|
||||||
cm.`statusComplaint`,
|
|
||||||
cm.`resolution`,
|
|
||||||
cm.`date_resolved`,
|
|
||||||
p.first_name AS passengerName,
|
|
||||||
d.name_arabic AS driverName,
|
|
||||||
d.gender,
|
d.gender,
|
||||||
ride.price AS priceOfRide,
|
ride.price AS priceOfRide,
|
||||||
ride.status AS rideStatus,
|
ride.status AS rideStatus,
|
||||||
ride.carType AS carType,
|
ride.carType,
|
||||||
ride.paymentMethod AS ridePaymentMethod,
|
ride.paymentMethod AS ridePaymentMethod,
|
||||||
ride.rideTimeFinish AS rideTimeFinish,
|
ride.rideTimeFinish,
|
||||||
payments.amount as paymentFromPaymentTable,
|
payments.amount AS paymentFromPaymentTable,
|
||||||
payments.created_at as timeFromPaymentTable,
|
payments.created_at AS timeFromPaymentTable,
|
||||||
(
|
|
||||||
SELECT
|
COALESCE(dr_rating.avgRating, 0) AS avgRatingDriverFromPassengers,
|
||||||
AVG(rd.rating)
|
COALESCE(dr_rating.cntRating, 0) AS countratingDriverFromPassengers,
|
||||||
FROM
|
COALESCE(ps_rating.avgRating, 0) AS avgRatingPassengerFromDrivers,
|
||||||
ratingDriver rd
|
COALESCE(ps_rating.cntRating, 0) AS countRatingPassengerFromDrivers,
|
||||||
WHERE
|
COALESCE(dr_rides.cnt, 0) AS countDriverRide,
|
||||||
rd.driver_id = cm.driver_id COLLATE utf8mb4_general_ci
|
COALESCE(ps_rides.cnt, 0) AS countPassengerRide,
|
||||||
) AS avgRatingDriverFromPassengers,
|
COALESCE(dr_visa.total, 0) AS driverVisa,
|
||||||
(
|
COALESCE(dr_wallet.total, 0) AS driverWallet,
|
||||||
SELECT
|
COALESCE(ps_wallet.total, 0) AS passengerWallet,
|
||||||
COUNT(*)
|
|
||||||
FROM
|
dt.token AS driverToken,
|
||||||
ratingDriver rd
|
tk.token AS passengerToken,
|
||||||
WHERE
|
|
||||||
rd.driver_id = cm.driver_id COLLATE utf8mb4_general_ci
|
COALESCE(ps_complaints.cnt, 0) AS countOfComplaintFromPassenger,
|
||||||
) AS countratingDriverFromPassengers,
|
COALESCE(dr_complaints.cnt, 0) AS countOfComplaintFromDriver
|
||||||
(
|
|
||||||
SELECT
|
FROM complaint cm
|
||||||
AVG(rp.rating)
|
|
||||||
FROM
|
LEFT JOIN passengers p
|
||||||
ratingPassenger rp
|
ON p.id = cm.passenger_id COLLATE utf8mb4_general_ci
|
||||||
WHERE
|
|
||||||
rp.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
|
LEFT JOIN driver d
|
||||||
) AS avgRatingPassengerFromDrivers,
|
ON d.id = cm.driver_id COLLATE utf8mb4_general_ci
|
||||||
(
|
|
||||||
SELECT
|
LEFT JOIN ride
|
||||||
COUNT(*)
|
ON ride.id = cm.ride_id COLLATE utf8mb4_general_ci
|
||||||
FROM
|
|
||||||
ratingPassenger rp
|
LEFT JOIN payments
|
||||||
WHERE
|
ON payments.rideId = cm.ride_id COLLATE utf8mb4_general_ci
|
||||||
rp.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
|
|
||||||
) AS countRatingPassengerFromDrivers,
|
-- تقييمات السائق (مرة واحدة لكل سائق)
|
||||||
(
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT driver_id, AVG(rating) AS avgRating, COUNT(*) AS cntRating
|
||||||
COUNT(*)
|
FROM ratingDriver
|
||||||
FROM
|
GROUP BY driver_id
|
||||||
ride
|
) dr_rating ON dr_rating.driver_id = cm.driver_id COLLATE utf8mb4_general_ci
|
||||||
WHERE
|
|
||||||
ride.driver_id = cm.driver_id COLLATE utf8mb4_general_ci
|
-- تقييمات الراكب (مرة واحدة لكل راكب)
|
||||||
) countDriverRide,
|
LEFT JOIN (
|
||||||
(
|
SELECT passenger_id, AVG(rating) AS avgRating, COUNT(*) AS cntRating
|
||||||
SELECT
|
FROM ratingPassenger
|
||||||
COUNT(*)
|
GROUP BY passenger_id
|
||||||
FROM
|
) ps_rating ON ps_rating.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
|
||||||
ride
|
|
||||||
WHERE
|
-- عدد رحلات السائق
|
||||||
ride.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
|
LEFT JOIN (
|
||||||
) countPassengerRide,
|
SELECT driver_id, COUNT(*) AS cnt
|
||||||
(
|
FROM ride
|
||||||
SELECT
|
GROUP BY driver_id
|
||||||
COALESCE(SUM(amount),
|
) dr_rides ON dr_rides.driver_id = cm.driver_id COLLATE utf8mb4_general_ci
|
||||||
0) AS visaDriver
|
|
||||||
FROM
|
-- عدد رحلات الراكب
|
||||||
payments
|
LEFT JOIN (
|
||||||
WHERE
|
SELECT passenger_id, COUNT(*) AS cnt
|
||||||
isGiven = 'waiting' AND `payment_method` IN(
|
FROM ride
|
||||||
'visa-in',
|
GROUP BY passenger_id
|
||||||
'visa',
|
) ps_rides ON ps_rides.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
|
||||||
'visaRide',
|
|
||||||
'TransferFrom',
|
-- رصيد Visa السائق
|
||||||
'payout',
|
LEFT JOIN (
|
||||||
'TransferTo'
|
SELECT driverID, SUM(amount) AS total
|
||||||
) AND payments.`driverID` = cm.driver_id COLLATE utf8mb4_general_ci
|
FROM payments
|
||||||
) AS driverVisa,
|
WHERE isGiven = 'waiting'
|
||||||
(
|
AND payment_method IN ('visa-in','visa','visaRide','TransferFrom','payout','TransferTo')
|
||||||
SELECT
|
GROUP BY driverID
|
||||||
COALESCE(SUM(amount),
|
) dr_visa ON dr_visa.driverID = cm.driver_id COLLATE utf8mb4_general_ci
|
||||||
0) AS pointDriver
|
|
||||||
FROM
|
-- محفظة السائق
|
||||||
driverWallet dw
|
LEFT JOIN (
|
||||||
WHERE
|
SELECT driverID, SUM(amount) AS total
|
||||||
dw.paymentMethod IN(
|
FROM driverWallet
|
||||||
'visa-in',
|
WHERE paymentMethod IN ('visa-in','visa','visaRide','TransferFrom','payout','TransferTo')
|
||||||
'visa',
|
GROUP BY driverID
|
||||||
'visaRide',
|
) dr_wallet ON dr_wallet.driverID = cm.driver_id COLLATE utf8mb4_general_ci
|
||||||
'TransferFrom',
|
|
||||||
'payout',
|
-- محفظة الراكب
|
||||||
'TransferTo'
|
LEFT JOIN (
|
||||||
) AND dw.`driverID` = cm.driver_id COLLATE utf8mb4_general_ci
|
SELECT passenger_id, SUM(balance) AS total
|
||||||
) AS driverWallet,
|
FROM passengerWallet
|
||||||
(
|
GROUP BY passenger_id
|
||||||
SELECT
|
) ps_wallet ON ps_wallet.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
|
||||||
COALESCE(SUM(pw.balance),
|
|
||||||
0)
|
-- توكن السائق
|
||||||
FROM
|
LEFT JOIN driverToken dt
|
||||||
passengerWallet pw
|
ON dt.captain_id = cm.driver_id COLLATE utf8mb4_general_ci
|
||||||
WHERE
|
|
||||||
pw.passenger_id = cm.passenger_id COLLATE utf8mb4_general_ci
|
-- توكن الراكب
|
||||||
) AS passengerWallet,
|
LEFT JOIN tokens tk
|
||||||
(
|
ON tk.passengerID = cm.passenger_id COLLATE utf8mb4_general_ci
|
||||||
SELECT
|
|
||||||
token
|
-- عدد شكاوى الراكب
|
||||||
FROM
|
LEFT JOIN (
|
||||||
driverToken
|
SELECT passenger_id, COUNT(*) AS cnt
|
||||||
WHERE
|
FROM complaint
|
||||||
driverToken.captain_id = cm.driver_id COLLATE utf8mb4_general_ci
|
WHERE complaint_type = 'Passenger'
|
||||||
) AS driverToken,
|
GROUP BY passenger_id
|
||||||
(
|
) ps_complaints ON ps_complaints.passenger_id = cm.passenger_id
|
||||||
SELECT
|
|
||||||
token
|
-- عدد شكاوى السائق
|
||||||
FROM
|
LEFT JOIN (
|
||||||
tokens
|
SELECT driver_id, COUNT(*) AS cnt
|
||||||
WHERE
|
FROM complaint
|
||||||
tokens.passengerID = cm.passenger_id COLLATE utf8mb4_general_ci
|
WHERE complaint_type = 'Driver'
|
||||||
) AS passengerToken,
|
GROUP BY driver_id
|
||||||
(
|
) dr_complaints ON dr_complaints.driver_id = cm.driver_id
|
||||||
SELECT
|
";
|
||||||
COUNT(*)
|
|
||||||
FROM
|
|
||||||
complaint
|
|
||||||
WHERE
|
|
||||||
complaint.passenger_id = cm.passenger_id AND cm.complaint_type = 'Passenger'
|
|
||||||
) AS countOfComplaintFromPassenger,
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
COUNT(*)
|
|
||||||
FROM
|
|
||||||
complaint
|
|
||||||
WHERE
|
|
||||||
complaint.driver_id = cm.driver_id AND cm.complaint_type = 'Driver'
|
|
||||||
) AS countOfComplaintFromDriver
|
|
||||||
FROM
|
|
||||||
`complaint` cm
|
|
||||||
LEFT JOIN passengers p ON
|
|
||||||
p.id = cm.`passenger_id` COLLATE utf8mb4_general_ci
|
|
||||||
LEFT JOIN driver d ON
|
|
||||||
d.id = cm.driver_id COLLATE utf8mb4_general_ci
|
|
||||||
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";
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$stmt = $con->prepare($sql);
|
$stmt = $con->prepare($sql);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
|
|
||||||
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
if ($row) {
|
if ($row) {
|
||||||
foreach ($row as &$item) {
|
foreach ($row as &$item) {
|
||||||
if (!empty($item['passengerName'])) {
|
foreach (['passengerName', 'driverName', 'driverToken', 'passengerToken'] as $field) {
|
||||||
$dec = $encryptionHelper->decryptData($item['passengerName']);
|
if (!empty($item[$field])) {
|
||||||
if ($dec) $item['passengerName'] = $dec;
|
$dec = $encryptionHelper->decryptData($item[$field]);
|
||||||
}
|
if ($dec)
|
||||||
if (!empty($item['driverName'])) {
|
$item[$field] = $dec;
|
||||||
$dec = $encryptionHelper->decryptData($item['driverName']);
|
}
|
||||||
if ($dec) $item['driverName'] = $dec;
|
|
||||||
}
|
|
||||||
if (!empty($item['driverToken'])) {
|
|
||||||
$dec = $encryptionHelper->decryptData($item['driverToken']);
|
|
||||||
if ($dec) $item['driverToken'] = $dec;
|
|
||||||
}
|
|
||||||
if (!empty($item['passengerToken'])) {
|
|
||||||
$dec = $encryptionHelper->decryptData($item['passengerToken']);
|
|
||||||
if ($dec) $item['passengerToken'] = $dec;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jsonSuccess($row);
|
jsonSuccess($row);
|
||||||
@@ -183,5 +145,4 @@ try {
|
|||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
jsonError("Database error: " . $e->getMessage());
|
jsonError("Database error: " . $e->getMessage());
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
Reference in New Issue
Block a user