intermediate
fahrten
gruppenfahrten
betrieb

Gruppenfahrten beenden

Erfahren Sie, wie Gruppenfahrten funktionieren und wie Sie mehrere Fahrten einer Gruppensitzung gleichzeitig beenden

Levy Fleets TeamJanuary 15, 202510 min read

Gruppenfahrten beenden

Die Funktion "Gruppenfahrten beenden" ermoglicht es einem Kunden, der eine Gruppenfahrtsitzung gestartet hat, alle Fahrten dieser Sitzung gleichzeitig zu beenden. Dies wird verwendet, wenn eine Person mehrere Fahrzeuge fur eine Gruppe (Familie, Freunde, Reisegruppe) gemietet hat und die gesamte Sitzung auf einmal beenden mochte.

Ubersicht

Gruppenfahrten ermoglichen es einem Kunden, mehrere Fahrzeuge fur einen Gruppenausflug zu starten. Wenn die Gruppe fertig ist, benotigt sie eine effiziente Moglichkeit, alle Fahrten gemeinsam zu beenden. Die Funktion "Gruppenfahrten beenden":

  • Beendet die Hauptfahrt und alle untergeordneten Fahrten einer Gruppensitzung
  • Berechnet und belastet die Endpreise fur jede Fahrt
  • Sendet Sperrbefehle an alle betroffenen Fahrzeuge
  • Gibt eine Zusammenfassung aller beendeten Fahrten zuruck

Schlusselkonzepte

BegriffDefinition
HauptfahrtDie erste Fahrt einer Gruppensitzung (markiert als is_group_ride_parent: true)
Untergeordnete FahrtenZusatzliche Fahrten, die uber parent_ride_id mit der Hauptfahrt verknupft sind
GruppensitzungAlle Fahrten (Haupt- + untergeordnete) unter einem Kundenkonto
SammelbeendigungEin API-Aufruf beendet alle Fahrten der Sitzung

Hauptfunktionen

  • Sitzungsbasiert - Beendet Fahrten, die mit einer bestimmten Hauptfahrt verknupft sind
  • Sicherheit zuerst - Sperrt alle Fahrzeuge nach Beendigung
  • Umfassende Abrechnung - Berechnet genauen Preis fur jede Fahrt
  • Fehlerresistent - Fahrt mit der Verarbeitung fort, auch wenn einzelne Fahrten fehlschlagen
  • Detaillierte Antwort - Berichtet Erfolg/Fehlschlag fur jede Fahrt

Wie Gruppenfahrten funktionieren

Eine Gruppenfahrt starten

1

Erstes Fahrzeug starten

Der Kunde scannt und startet das erste Fahrzeug - dieses wird zur Hauptfahrt.

2

Weitere Fahrzeuge hinzufugen

Der Kunde scannt weitere Fahrzeuge - diese werden zu untergeordneten Fahrten, die mit der Hauptfahrt verknupft sind.

3

Unter einem Konto verfolgen

Alle Fahrten werden unter demselben Kundenkonto verfolgt.

4

Limits beachten

Die maximale Anzahl von Fahrten pro Sitzung ist konfigurierbar (Standard: 5).

Wahrend der Gruppenfahrt

  • Alle Fahrten laufen unabhangig (separate Abrechnung, separate Routen)
  • Der Kunde kann einzelne Fahrten pausieren/fortsetzen
  • Der Kunde kann einzelne Fahrten beenden, wenn jemand fruher geht
  • Das Dashboard zeigt alle Fahrten, die durch die Hauptbeziehung verknupft sind

Beenden der Gruppensitzung

Beim Beenden der gesamten Gruppe:

  1. Der Kunde tippt auf "Alle Fahrten beenden" in der App
  2. Die App ruft den Alle-beenden-Endpunkt mit der Hauptfahrt-ID auf
  3. Das System validiert, dass die Hauptfahrt existiert und aktiv ist
  4. Das System beendet die Hauptfahrt + alle aktiven untergeordneten Fahrten
  5. Der Kunde sieht eine Zusammenfassung aller beendeten Fahrten und Gesamtgebuhren

API-Endpunkt

Anfrage

POST /api/mobile/rides/end-all/

Authentifizierung: Erforderlich (Kunden-JWT-Token)

Anfrage-Body:

{
  "parent_ride_id": "uuid-der-hauptfahrt",
  "end_location": {
    "latitude": 37.7749,
    "longitude": -122.4194
  }
}
FeldTypErforderlichBeschreibung
parent_ride_idString (UUID)JaDie ID der Hauptfahrt in der Gruppensitzung
end_locationObjectJaAktueller GPS-Standort des Kunden
end_location.latitudeNumberJaBreitengrad-Koordinate
end_location.longitudeNumberJaLangengrad-Koordinate

Antwort

Erfolg (200 OK):

{
  "ok": true,
  "ended_rides": [
    {
      "ride_id": "uuid-hauptfahrt",
      "ride_number": "R-12345",
      "vehicle_id": "VH-001",
      "final_amount_cents": 685,
      "duration_seconds": 912,
      "distance_m": 2340,
      "status": "completed",
      "is_parent": true
    },
    {
      "ride_id": "uuid-untergeordnete-1",
      "ride_number": "R-12346",
      "vehicle_id": "VH-002",
      "final_amount_cents": 445,
      "duration_seconds": 654,
      "distance_m": 1890,
      "status": "completed",
      "is_parent": false
    }
  ],
  "total_charged_cents": 1130,
  "warnings": []
}

Teilerfolg (200 OK mit Warnungen):

{
  "ok": true,
  "ended_rides": [
    {
      "ride_id": "uuid-hauptfahrt",
      "ride_number": "R-12345",
      "vehicle_id": "VH-001",
      "final_amount_cents": 685,
      "status": "completed"
    }
  ],
  "total_charged_cents": 685,
  "warnings": [
    {
      "ride_id": "uuid-untergeordnete-1",
      "ride_number": "R-12346",
      "message": "Fahrzeug konnte nicht gesperrt werden - Befehlszeituberschreitung"
    }
  ]
}

Fehlerantworten:

StatusBedingung
400 Bad Requestparent_ride_id nicht angegeben
400 Bad RequestFahrt ist keine Gruppenfahrt-Hauptfahrt
401 UnauthorizedUngultige oder fehlende Authentifizierung
404 Not FoundHauptfahrt nicht gefunden
500 Internal Server ErrorSystemfehler wahrend der Verarbeitung

Gruppenfahrt-Konfiguration

Maximale Fahrten pro Sitzung

Konfigurieren Sie die maximal erlaubten Fahrzeuge in einer einzelnen Gruppensitzung:

Ort: Einstellungen > Sonstiges

{
  "group_rides_max": 5
}
WertVerhalten
1Gruppenfahrten deaktiviert (nur Einzelfahrten erlaubt)
5Standard - bis zu 5 Fahrzeuge pro Gruppe
10Grossere Gruppen (z.B. Reiseveranstalter)

Haufige Anwendungsfalle

SzenarioTypisches MaxHinweise
Verbraucher-App3-5Familien, kleine Freundesgruppen
Tourismus10-15Gefuhrte Touren
Unternehmen10-20Teamausfluge, Veranstaltungen

Verarbeitungsdetails

Fahrt-Beendigungssequenz

Fur jede Fahrt in der Gruppe (Haupt- + untergeordnete):

  1. Statusaktualisierung

    • Setzt ride_status auf completed
    • Zeichnet ended_at-Zeitstempel auf
    • Zeichnet end_location-Koordinaten auf
  2. Preisberechnung

    • Berechnet aktive Zeitgebuhren
    • Berechnet Pausenzeitgebuhren
    • Wendet etwaige Rabatte an (Promocodes, Abonnements)
    • Wendet Tagesobergrenze an, falls erreicht
    • Wendet Mindestpreis an, falls zutreffend
  3. Guthabenabbuchung

    • Belastet Endbetrag vom Kundenguthaben
    • Zeichnet Transaktion in Guthabenhistorie auf
    • Behandelt negativen Saldo bei unzureichenden Mitteln
  4. Fahrzeugbefehle

    • Sendet Sperrbefehl an Fahrzeug
    • Deaktiviert Gas (fur unterstutzte Fahrzeuge)
    • Aktualisiert Fahrzeugstatus auf "Verfugbar"
  5. Benachrichtigungen

    • Sendet Push-Benachrichtigung uber Fahrtabschluss
    • Enthalt Endgebuhrenbetrag
    • Verlinkt zur Fahrtquittung

Fehlerbehandlung

Das System verwendet einen "Best Effort"-Ansatz:

  • Wenn eine untergeordnete Fahrt nicht beendet werden kann, werden andere trotzdem verarbeitet
  • Fahrzeugsperre-Fehler werden protokolliert, blockieren aber nicht den Abschluss
  • Abrechnungsfehler werden zur manuellen Uberprufung protokolliert
  • Der Kunde sieht Warnungen bei etwaigen Problemen

Robuste Verarbeitung

Die Gruppenfahrt-Beendigung wird fortgesetzt, auch wenn einige Fahrten Fehler aufweisen. Prufen Sie das warnings-Array in der Antwort auf Probleme, die Aufmerksamkeit erfordern.

Was fehlschlagen kann

FehlerAuswirkungLosung
Fahrzeugsperren-ZeituberschreitungFahrt endet, Fahrzeug bleibt moglicherweise entsperrtManuelle Sperre uber Dashboard
Guthabenabbuchung fehlgeschlagenFahrt endet, Saldo wird negativEinziehen bei nachster Aufladung
Standort fehltVerwendet letzten bekannten FahrzeugstandortAkzeptabler Fallback
DatenbankfehlerDiese spezifische Fahrt wird nicht beendetWiederholen oder manuell beenden

Zonenvalidierung

Beim Beenden von Gruppenfahrten validiert das System Parkzonen:

Parkzonenprufung

Jede Fahrt in der Gruppe wird validiert:

  1. Prufen, ob end_location innerhalb einer ausgewiesenen Parkzone liegt
  2. Falls ausserhalb der Parkzone:
    • Prufen, ob die Einstellung allow_end_ride_outside_parking_zone aktiviert ist
    • Falls nicht erlaubt, bleibt diese Fahrt aktiv (Warnung wird zuruckgegeben)
  3. Falls in Parkverbotszone:
    • Diese Fahrt bleibt aktiv (Warnung wird zuruckgegeben)
    • Der Kunde muss dieses Fahrzeug in eine gultige Zone bewegen

Standortquellen

Das System verwendet zwei Standortquellen fur die Validierung:

QuellePrioritatAnwendungsfall
Benutzergerat-StandortPrimarGPS des Kundentelefons
FahrzeugstandortFallbackIoT-Gerat-GPS

Die Einstellung parking_zone_validation_mode bestimmt, welche Quelle verwendet wird:

  • vehicle_only - Nur Fahrzeug-GPS prufen
  • both - Beide mussen in gultiger Zone sein
  • hybrid - Einer kann die Anforderung erfullen

Abrechnungsauswirkungen

Mehrfachfahrt-Gebuhren

Jede Fahrt in der Gruppe wird unabhangig berechnet:

Hauptfahrt: 6,85 € (15 Min. aktiv, 1 € Entsperrung, 0,39 €/Min.)
Untergeordnete Fahrt 1: 5,05 € (10 Min. aktiv + 2 Min. Pause, 1 € Entsperrung)
Untergeordnete Fahrt 2: 4,45 € (8 Min. aktiv, 1 € Entsperrung)
────────────────────────────────────────────
Gesamt: 16,35 € vom Guthaben belastet

Tagesobergrenze uber Gruppen hinweg

Die Tagesobergrenze gilt pro Kunde uber alle Fahrten in der Gruppe:

Kunde hat 30 € Tagesobergrenze
Hauptfahrt: 12,00 €
Untergeordnete Fahrt 1: 15,00 €
Untergeordnete Fahrt 2: 18,00 € (wurde Obergrenze uberschreiten)
────────────────────────────────────────────
Untergeordnete Fahrt 2 gedeckelt auf: 3,00 € (erreicht 30 € Gesamt)
Gesamtbelastung: 30,00 €

Unzureichendes Guthaben

Falls das Guthaben nicht ausreicht:

  1. Alle Fahrten werden trotzdem normal beendet
  2. Guthabensaldo wird negativ
  3. Kunde kann keine neuen Fahrten starten, bis aufgeladen
  4. Automatische Aufladung wird ausgelost, falls aktiviert

Anwendungsfalle

Familienausflug

  1. Elternteil startet Fahrt fur sich selbst (Hauptfahrt)
  2. Elternteil startet Fahrten fur 2 Kinder (untergeordnete Fahrten)
  3. Familie fahrt 45 Minuten zusammen
  4. Am Ziel tippt Elternteil auf "Alle Fahrten beenden"
  5. Alle 3 Fahrzeuge werden gesperrt, einzelne Guthabenbelastung

Gefuhrte Tour

  1. Tourfuhrer startet Hauptfahrt
  2. Fuhrer startet 8 untergeordnete Fahrten fur Tourteilnehmer
  3. Gruppe absolviert 2-stundige Tourroute
  4. Am Tourendpunkt beendet der Fuhrer alle Fahrten
  5. Alle 9 Fahrzeuge gesichert, Gesamtbetrag auf Fuhrerkonto abgerechnet

Freundesgruppe Aufteilung

  1. Ein Freund startet 4 Fahrten fur die Gruppe
  2. Nach 30 Minuten geht eine Person fruher
  3. Diese einzelne Fahrt wird separat beendet
  4. Spater werden die verbleibenden 3 Fahrten zusammen uber Alle-beenden beendet
  5. Nur aktive untergeordnete Fahrten werden von Alle-beenden betroffen

Dashboard-Verwaltung

Gruppenfahrten anzeigen

In der Fahrtenliste:

  • Hauptfahrten zeigen Indikator (Gruppensymbol)
  • Filter verfugbar, um nur Gruppenfahrten anzuzeigen
  • Klicken Sie auf Hauptfahrt, um alle verknupften untergeordneten zu sehen

Fahrtdetailseite

Fur Hauptfahrten:

  • Abschnitt "Untergeordnete Fahrten" listet alle Fahrten der Sitzung auf
  • Klicken Sie auf eine untergeordnete Fahrt, um deren Details anzuzeigen
  • Zeigt aggregierte Statistiken (Gesamtdauer, Gesamtumsatz)

Admin-Aktionen

Betreiber konnen:

  • Einzelne Fahrten einer Gruppensitzung beenden
  • Alle Fahrten einer Gruppe vom Dashboard beenden
  • Gruppenfahrt-Historie fur einen Kunden anzeigen

Integrationshinweise

Fur App-Entwickler

Bei der Implementierung der Gruppenfahrten-beenden-Funktion:

  1. Hauptfahrt-ID verfolgen - Speichern Sie die Hauptfahrt-ID beim Starten der Gruppensitzung
  2. Standortberechtigung - Stellen Sie sicher, dass Standortzugriff vor dem Aufruf besteht
  3. Bestatigungs-UX - Zeigen Sie Vorschau aller zu beendenden Fahrten
  4. Ladezustand - Endpunkt kann bei mehreren Fahrten mehrere Sekunden dauern
  5. Fehleranzeige - Zeigen Sie etwaige Warnungen dem Kunden
  6. Quittungsbildschirm - Navigieren Sie nach Abschluss zur Zusammenfassung

Erwartete Antwortzeiten

Anzahl FahrtenErwartete Zeit
1-2 Fahrten1-2 Sekunden
3-5 Fahrten2-4 Sekunden
6-10 Fahrten4-8 Sekunden

Fehlerbehandlung

Falls die Anfrage abläuft:

  • Prufen Sie individuelle Fahrtstatus, bevor Sie es erneut versuchen
  • Einige Fahrten wurden moglicherweise erfolgreich beendet
  • Zeigen Sie dem Kunden den aktuellen Status
  • Nur verbleibende aktive Fahrten werden bei Wiederholung verarbeitet

Fehlerbehebung

"parent_ride_id erforderlich"

Ursache: Anfrage-Body fehlt die Hauptfahrt-ID Losung: Stellen Sie sicher, dass die App die gespeicherte Hauptfahrt-UUID sendet

"Fahrt ist keine Gruppenfahrt-Hauptfahrt"

Ursache: Die angegebene Fahrt-ID ist eine untergeordnete Fahrt, nicht die Hauptfahrt Losung: Verwenden Sie die ursprungliche Hauptfahrt-ID vom Sitzungsstart

"Fahrzeug konnte nicht gesperrt werden"

Ursache: Fahrzeug-IoT-Befehl fehlgeschlagen Auswirkung: Fahrt endet, aber Fahrzeug bleibt moglicherweise entsperrt Losung: Manuell uber Dashboard sperren oder Aussendienst-Team entsenden

"Standort nicht in gultiger Zone"

Ursache: Ein oder mehrere Fahrzeuge befinden sich in Parkverbots-/Sperrzone Losung:

  • Diese spezifischen Fahrten bleiben aktiv
  • Kunde muss diese Fahrzeuge in gultige Parkzone bewegen
  • Andere Fahrten in der Gruppe werden trotzdem erfolgreich beendet

Zeituberschreitung wahrend Verarbeitung

Ursache: Netzwerkprobleme oder hohe Last Losung:

  1. 30 Sekunden warten
  2. Fahrtenliste auf aktuellen Status prufen
  3. Verbleibende aktive Fahrten manuell beenden

Berechtigungen und Sicherheit

Authentifizierung

  • Erfordert gultiges Kunden-JWT-Token
  • Token darf nicht abgelaufen sein
  • Kundenkonto muss aktiv sein (nicht gesperrt)

Autorisierung

  • Kunde kann nur eigene Gruppenfahrten beenden
  • Hauptfahrt muss dem authentifizierten Kunden gehoren
  • Kann keine Gruppensitzung eines anderen Kunden beenden
  • Admin-Endpunkte existieren fur Betreibereingriffe

Rate-Limiting

Zum Schutz vor Missbrauch:

  • Maximal 10 Anfragen pro Minute pro Kunde
  • Hilft, versehentliche doppelte Anfragen zu verhindern

Verwandte Artikel