mirror of https://github.com/MISP/MISP
chg: [internal] Optimise fetching sightings for object
parent
e644f4ea4c
commit
e442a394cd
|
@ -528,14 +528,6 @@ class Sighting extends AppModel
|
|||
$conditions = array(
|
||||
'Sighting.date_sighting >' => $this->getMaximumRange(),
|
||||
ucfirst($context) . 'Tag.tag_id' => $tagList
|
||||
|
||||
);
|
||||
$contain = array(
|
||||
ucfirst($context) => array(
|
||||
ucfirst($context) . 'Tag' => array(
|
||||
'Tag'
|
||||
)
|
||||
)
|
||||
);
|
||||
if ($type !== false) {
|
||||
$conditions['Sighting.type'] = $type;
|
||||
|
@ -545,15 +537,16 @@ class Sighting extends AppModel
|
|||
'recursive' => -1,
|
||||
'contain' => array(ucfirst($context) . 'Tag'),
|
||||
'conditions' => $conditions,
|
||||
'fields' => array('Sighting.id', 'Sighting.' . $context . '_id', 'Sighting.date_sighting', ucfirst($context) . 'Tag.tag_id')
|
||||
'fields' => array('Sighting.' . $context . '_id', 'Sighting.date_sighting')
|
||||
));
|
||||
$sightingsRearranged = array();
|
||||
foreach ($sightings as $sighting) {
|
||||
$date = date("Y-m-d", $sighting['Sighting']['date_sighting']);
|
||||
if (isset($sightingsRearranged[$sighting['Sighting'][$context . '_id']][$date])) {
|
||||
$sightingsRearranged[$sighting['Sighting'][$context . '_id']][$date]++;
|
||||
$contextId = $sighting['Sighting'][$context . '_id'];
|
||||
if (isset($sightingsRearranged[$contextId][$date])) {
|
||||
$sightingsRearranged[$contextId][$date]++;
|
||||
} else {
|
||||
$sightingsRearranged[$sighting['Sighting'][$context . '_id']][$date] = 1;
|
||||
$sightingsRearranged[$contextId][$date] = 1;
|
||||
}
|
||||
}
|
||||
return $sightingsRearranged;
|
||||
|
|
Loading…
Reference in New Issue