コード例 #1
0
ファイル: Mobile.php プロジェクト: huasanyelao/baixing-camp
 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');
 }