Update: 2026-06-26 02:29:35

This commit is contained in:
Hamza-Ayed
2026-06-26 02:29:35 +03:00
parent fe164a006b
commit f53177e715
3 changed files with 26 additions and 13 deletions

View File

@@ -35,17 +35,16 @@ $sql = "SELECT
FROM FROM
passengers p passengers p
LEFT JOIN LEFT JOIN
ride r ON p.id = r.passenger_id ride r ON p.id = r.passenger_id AND r.id = (
WHERE
p.phone = :phone
AND r.id = (
SELECT id SELECT id
FROM ride FROM ride
WHERE passenger_id = p.id WHERE passenger_id = p.id
ORDER BY date DESC, time DESC ORDER BY date DESC, time DESC
LIMIT 1 LIMIT 1
)"; )
WHERE
p.phone = :phone";
$stmt = $con->prepare($sql); $stmt = $con->prepare($sql);
$stmt->bindParam(':phone', $phoneEncrypted); $stmt->bindParam(':phone', $phoneEncrypted);
@@ -70,6 +69,6 @@ if ($stmt->rowCount() > 0) {
jsonSuccess($rows); jsonSuccess($rows);
} else { } else {
jsonError("No wallet record found"); jsonError("No passenger found");
} }
?> ?>

View File

@@ -4,7 +4,8 @@ import 'package:siro_service/constant/box_name.dart';
import 'package:siro_service/controller/functions/crud.dart'; import 'package:siro_service/controller/functions/crud.dart';
import 'package:siro_service/main.dart'; import 'package:siro_service/main.dart';
import 'package:siro_service/print.dart'; import 'package:siro_service/print.dart';
import 'package:siro_service/controller/functions/encrypt_decrypt.dart';
import 'package:siro_service/env/env.dart';
/// مدير الجلسة - مسؤول عن مراقبة صلاحية الجلسة /// مدير الجلسة - مسؤول عن مراقبة صلاحية الجلسة
/// وتجديدها تلقائياً عند انتهائها /// وتجديدها تلقائياً عند انتهائها
class SessionManager extends GetxController { class SessionManager extends GetxController {
@@ -28,12 +29,13 @@ class SessionManager extends GetxController {
/// التحقق من صلاحية الجلسة الحالية /// التحقق من صلاحية الجلسة الحالية
SessionStatus checkSessionValidity() { SessionStatus checkSessionValidity() {
try { try {
final token = box.read(BoxName.jwt)?.toString() ?? ''; final rawToken = box.read(BoxName.jwt)?.toString() ?? '';
if (token.isEmpty) { if (rawToken.isEmpty) {
status.value = SessionStatus.expired; status.value = SessionStatus.expired;
return SessionStatus.expired; return SessionStatus.expired;
} }
final token = r(rawToken).toString().split(Env.addd)[0];
final isValid = CRUD.isJwtValid(token); final isValid = CRUD.isJwtValid(token);
if (!isValid) { if (!isValid) {
status.value = SessionStatus.expired; status.value = SessionStatus.expired;
@@ -58,7 +60,9 @@ class SessionManager extends GetxController {
await Future.delayed(const Duration(milliseconds: 500)); await Future.delayed(const Duration(milliseconds: 500));
} }
// نتحقق مرة أخرى بعد انتهاء التجديد // نتحقق مرة أخرى بعد انتهاء التجديد
final isValid = CRUD.isJwtValid(box.read(BoxName.jwt)?.toString() ?? ''); final rawToken = box.read(BoxName.jwt)?.toString() ?? '';
final token = rawToken.isNotEmpty ? r(rawToken).toString().split(Env.addd)[0] : '';
final isValid = CRUD.isJwtValid(token);
return isValid; return isValid;
} }
@@ -78,7 +82,8 @@ class SessionManager extends GetxController {
await CRUD().getJWT(); await CRUD().getJWT();
// التحقق من نجاح التجديد // التحقق من نجاح التجديد
final newToken = box.read(BoxName.jwt)?.toString() ?? ''; final newRawToken = box.read(BoxName.jwt)?.toString() ?? '';
final newToken = newRawToken.isNotEmpty ? r(newRawToken).toString().split(Env.addd)[0] : '';
final isValid = CRUD.isJwtValid(newToken); final isValid = CRUD.isJwtValid(newToken);
if (isValid) { if (isValid) {

View File

@@ -523,10 +523,19 @@ class MainController extends GetxController {
link: AppLink.getPassengersByPhone, link: AppLink.getPassengersByPhone,
payload: {"phone": CRUD.normalizePhone(passengerPhoneController.text)}); payload: {"phone": CRUD.normalizePhone(passengerPhoneController.text)});
if (res != 'failure') { if (res != 'failure' && res is Map && res['status'] == 'success') {
var d = res; var d = res;
passengerData = d; passengerData = d;
update(); update();
} else {
Log.print('Error getting passenger: $res');
if (res is Map && res.containsKey('message')) {
mySnackbarError(res['message'].toString());
} else {
mySnackbarError('Passenger not found'.tr);
}
passengerData = {};
update();
} }
} }