getLoginUser(); $pagerQuery = new PagerQuery(); $params = $pagerQuery->getParams(); $params['receiver_id'] = $user->id; $params['deleted'] = 0; $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $notifyRepo = new NotificationRepo(); $pager = $notifyRepo->paginate($params, $sort, $page, $limit); return $this->handleNotifications($pager); } protected function handleNotifications($pager) { if ($pager->total_items == 0) { return $pager; } $notifications = $pager->items->toArray(); $builder = new NotificationListBuilder(); $users = $builder->getUsers($notifications); $items = []; foreach ($notifications as $key => $value) { $value['event_info'] = json_decode($value['event_info'], true); $sender = $users[$value['sender_id']] ?? new \stdClass(); $receiver = $users[$value['receiver_id']] ?? new \stdClass(); $items[] = [ 'id' => $value['id'], 'viewed' => $value['viewed'], 'event_id' => $value['event_id'], 'event_type' => $value['event_type'], 'event_info' => $value['event_info'], 'create_time' => $value['create_time'], 'sender' => $sender, 'receiver' => $receiver, ]; } $pager->items = $items; return $pager; } }