Update: 2026-08-08 14:09:20

This commit is contained in:
Hamza-Ayed
2026-08-08 14:09:20 +03:00
parent c8e8e481a6
commit 8395436f23
14 changed files with 295 additions and 104 deletions
+25 -7
View File
@@ -28,14 +28,17 @@ try {
$sql = "
SELECT
d.id as driver_id,
COALESCE(d.name, d.nameArabic, d.firstName, 'Driver') as name,
d.personal_photo as photoUrl,
-- ‏الأعمدة الفعلية في جدول driver. الاستعلام السابق كان
-- ‏يطلب name / nameArabic / firstName / personal_photo وأيٌّ
-- ‏منها غير موجود، فكان كل طلب يسقط بخطأ قاعدة بيانات.
d.first_name as first_name,
d.last_name as last_name,
COALESCE(SUM(r.price_for_driver), 0) as value
FROM `driver` d
JOIN `ride` r ON d.id = r.driver_id
WHERE r.status = 'Finished'
AND r.created_at >= DATE(NOW() - INTERVAL WEEKDAY(NOW()) DAY)
GROUP BY d.id
GROUP BY d.id, d.first_name, d.last_name
ORDER BY value DESC
LIMIT 10
";
@@ -44,14 +47,17 @@ try {
$sql = "
SELECT
d.id as driver_id,
COALESCE(d.name, d.nameArabic, d.firstName, 'Driver') as name,
d.personal_photo as photoUrl,
-- ‏الأعمدة الفعلية في جدول driver. الاستعلام السابق كان
-- ‏يطلب name / nameArabic / firstName / personal_photo وأيٌّ
-- ‏منها غير موجود، فكان كل طلب يسقط بخطأ قاعدة بيانات.
d.first_name as first_name,
d.last_name as last_name,
COUNT(r.id) as value
FROM `driver` d
JOIN `ride` r ON d.id = r.driver_id
WHERE r.status = 'Finished'
AND r.created_at >= DATE(NOW() - INTERVAL WEEKDAY(NOW()) DAY)
GROUP BY d.id
GROUP BY d.id, d.first_name, d.last_name
ORDER BY value DESC
LIMIT 10
";
@@ -71,8 +77,20 @@ if ($stmt->rowCount() > 0) {
$rank = 1;
foreach ($rows as &$row) {
$row['rank'] = $rank++;
// ‏الأسماء مخزّنة مشفّرة في driver — بلا فكّ تشفير تظهر اللوحة
// ‏صفوفاً من النص المشفّر. نعرض الاسم الأول فقط: لوحة صدارة
// ‏عامة لا داعي لأن تكشف الاسم الكامل لكل سائق.
$first = !empty($row['first_name'])
? (string) $encryptionHelper->decryptData($row['first_name'])
: '';
unset($row['first_name'], $row['last_name']);
$row['name'] = $first !== '' ? $first : 'Driver';
$row['photoUrl'] = null;
}
unset($row);
$responseData = $rows;
} else {
$responseData = [];