Revert "use Notice::multiGet() for NoticeStream::getStreamByIds()"
This reverts commit 9ab0a6f760
.
This commit is contained in:
parent
e04ce18a93
commit
b1c12648f0
|
@ -59,6 +59,42 @@ abstract class NoticeStream
|
||||||
|
|
||||||
static function getStreamByIds($ids)
|
static function getStreamByIds($ids)
|
||||||
{
|
{
|
||||||
return Notice::multiGet('id', $ids);
|
$cache = Cache::instance();
|
||||||
|
|
||||||
|
if (!empty($cache)) {
|
||||||
|
$notices = array();
|
||||||
|
foreach ($ids as $id) {
|
||||||
|
$n = Notice::staticGet('id', $id);
|
||||||
|
if (!empty($n)) {
|
||||||
|
$notices[] = $n;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new ArrayWrapper($notices);
|
||||||
|
} else {
|
||||||
|
$notice = new Notice();
|
||||||
|
if (empty($ids)) {
|
||||||
|
//if no IDs requested, just return the notice object
|
||||||
|
return $notice;
|
||||||
|
}
|
||||||
|
$notice->whereAdd('id in (' . implode(', ', $ids) . ')');
|
||||||
|
|
||||||
|
$notice->find();
|
||||||
|
|
||||||
|
$temp = array();
|
||||||
|
|
||||||
|
while ($notice->fetch()) {
|
||||||
|
$temp[$notice->id] = clone($notice);
|
||||||
|
}
|
||||||
|
|
||||||
|
$wrapped = array();
|
||||||
|
|
||||||
|
foreach ($ids as $id) {
|
||||||
|
if (array_key_exists($id, $temp)) {
|
||||||
|
$wrapped[] = $temp[$id];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ArrayWrapper($wrapped);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user