feat: improve FCP filter with counts/sorting and update highlight conditions
This commit is contained in:
@@ -1448,10 +1448,31 @@ class PreorderController extends mfBaseController {
|
||||
|
||||
if (!$campaign->id) return [];
|
||||
|
||||
return array_map(
|
||||
fn($fcp) => ["real_id" => $fcp->id, "id" => $fcp->name ?? null, "text" => $fcp->name ?? null, 'lat' => $fcp->gps_lat ?? null, 'lng' => $fcp->gps_long ?? null],
|
||||
ADBRimoFcp::getAll(["netzgebiet_id" => intval($campaign->network->adb_netzgebiet_id)]) ?? []
|
||||
$fcps = ADBRimoFcp::getAll(["netzgebiet_id" => intval($campaign->network->adb_netzgebiet_id)]) ?? [];
|
||||
if (empty($fcps)) return [];
|
||||
|
||||
$fcpIds = array_map(fn($fcp) => $fcp->id, $fcps);
|
||||
$stats = ADBRimoFcp::getRimoFcpStatistics($fcpIds);
|
||||
$statsMap = [];
|
||||
foreach ($stats as $stat) {
|
||||
$statsMap[$stat['fcp_id']] = $stat['total_active_preorders'];
|
||||
}
|
||||
|
||||
$result = array_map(
|
||||
fn($fcp) => [
|
||||
"real_id" => $fcp->id,
|
||||
"id" => $fcp->name ?? null,
|
||||
"text" => $fcp->name ?? null,
|
||||
'lat' => $fcp->gps_lat ?? null,
|
||||
'lng' => $fcp->gps_long ?? null,
|
||||
'preorder_count' => $statsMap[$fcp->id] ?? 0
|
||||
],
|
||||
$fcps
|
||||
);
|
||||
|
||||
usort($result, fn($a, b) => $b['preorder_count'] <=> $a['preorder_count']);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getRimoFcpStatsApi()
|
||||
|
||||
Reference in New Issue
Block a user