public static function mobile_get_favourites(\ApiParam $params) { $user = new \User(); $user->load($params->userId); $follower = \Follower::create($user); if ($follower) { $favs = $follower->favovites(); $originFavs = $favs; if ($favs && is_array($favs)) { $query = '('; foreach ($favs as $fav) { if ($fav->identity) { if ($query != '(') { $query .= ' OR '; } $query .= 'id:' . $fav->identity; } } if ($query != '(') { $query .= ')'; $ary = $params->getArrayCopy(); $ary['query'] = $query; $newParams = \Api::paramFactory($ary); $response = self::mobile_ad_list($newParams); $existingAds = $response['data']; if ($existingAds) { foreach ($existingAds as $ad) { foreach ($favs as $key => $fav) { if ($ad['id'] == $fav->identity) { unset($favs[$key]); break; } } } } if (sizeof($favs) > 0) { foreach ($favs as $fav) { array_push($existingAds, array('id' => $fav->identity, 'title' => $fav->attris['title'], 'status' => '3')); ++$response['num']; } } $adsMap = array(); foreach ($existingAds as $ad) { $adsMap[$ad['id']] = $ad; } // var_dump('ads map'); // var_dump($adsMap); $sortAds = array(); foreach ($originFavs as $fav) { array_push($sortAds, $adsMap[$fav->identity]); } // var_dump('sorted ads'); // var_dump($sortAds); $response['data'] = $sortAds; return $response; } } else { return self::composeResponse(0, '没有已收藏信息', array('count' => 0, 'data' => array(), 'num' => 0)); } } return self::composeResponse(1, 'fail'); }