Improved performance in findAddress
This commit is contained in:
@@ -341,59 +341,6 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
$res = $this->db()->query($sql);
|
||||
|
||||
if($this->db()->num_rows($res)) {
|
||||
if($format == "flat") {
|
||||
$unit_counts = [];
|
||||
while($data = $this->db()->fetch_object($res)) {
|
||||
// get unit count
|
||||
if(!array_key_exists($data->hausnummer_id, $unit_counts)) {
|
||||
$unit_counts[$data->hausnummer_id] = ADBWohneinheitModel::count(['hausnummer_id' => $data->hausnummer_id]);
|
||||
}
|
||||
|
||||
// get allowed preorderTypes
|
||||
$ptypes = [];
|
||||
if($data->freigabe) {
|
||||
$freigaben = json_decode($data->freigabe);
|
||||
if(is_array($freigaben) && count($freigaben)) {
|
||||
foreach($freigaben as $freigabe) {
|
||||
if(in_array($freigabe, $this->allowed_preordertypes)) {
|
||||
$ptypes[] = $freigabe;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$housenumber = $data->hausnummer;
|
||||
if($this->hausnummer_add_zusatz) {
|
||||
if($data->zusatz) {
|
||||
$housenumber .= " (".$data->zusatz.")";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$addresses[] = [
|
||||
'oaid' => $data->wohneinheit_oaid,
|
||||
'building_oaid' => $data->hausnummer_oaid,
|
||||
'zip' => $data->plz,
|
||||
'city' => ($this->district_is_city) ? $data->ortschaft : $data->gemeinde,
|
||||
'district' => $data->ortschaft,
|
||||
'street' => $data->strasse,
|
||||
'housenumber' => $housenumber,
|
||||
'lot_number' => $data->grund_nr,
|
||||
'building_unit_count' => (int)$unit_counts[$data->hausnummer_id],
|
||||
'num' => (int)$data->num,
|
||||
'block' => $data->block,
|
||||
'stock' => $data->stock,
|
||||
'stiege' => $data->stiege,
|
||||
'tuer' => $data->tuer,
|
||||
'zusatz' => $data->zusatz,
|
||||
'gps_lat' => (float)$data->gps_lat,
|
||||
'gps_long' => (float)$data->gps_long,
|
||||
'rollout_year' => ($data->rollout) ? (int)$data->rollout : null,
|
||||
'rollout_info' => $data->rollout_info,
|
||||
'preorderTypes' => $ptypes
|
||||
];
|
||||
}
|
||||
} else {
|
||||
$tmp_addresses = [];
|
||||
while($data = $this->db()->fetch_object($res)) {
|
||||
$address_key = $data->hausnummer_id."-".$data->zusatz;
|
||||
@@ -451,10 +398,25 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
}
|
||||
|
||||
foreach($tmp_addresses as $ta) {
|
||||
$addresses[] = $ta;
|
||||
if($format == "tree") {
|
||||
$addresses[] = $ta;
|
||||
} else {
|
||||
foreach($ta['units'] as $u) {
|
||||
$new_address = $ta;
|
||||
unset($new_address['units']);
|
||||
$new_address['building_oaid'] = $ta['oaid'];
|
||||
$new_address['oaid'] = $u['oaid'];
|
||||
$new_address['num'] = $u['num'];
|
||||
$new_address['block'] = $u['block'];
|
||||
$new_address['stiege'] = $u['stiege'];
|
||||
$new_address['stock'] = $u['stock'];
|
||||
$new_address['tuer'] = $u['tuer'];
|
||||
$new_address['zusatz'] = $u['zusatz'];
|
||||
$addresses[] = $new_address;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return mfResponse::Ok(['addresses' => $addresses]);
|
||||
|
||||
Reference in New Issue
Block a user