예제 #1
0
 public static function updatePuserIdsForEntries($entries)
 {
     if (!$entries) {
         return;
     }
     // get the whole list of kuser_ids
     $partner_kuser_list = array();
     kuserPeer::getCriteriaFilter()->disable();
     PuserKuserPeer::getCriteriaFilter()->disable();
     foreach ($entries as &$entry) {
         $pid = $entry->getPartnerId();
         if (!isset($partner_kuser_list[$pid])) {
             $partner_kuser_ids = array();
         } else {
             $partner_kuser_ids = $partner_kuser_list[$pid];
         }
         //print_r ( $entry );
         $kuser_id = $entry->getKuserId();
         $partner_kuser_ids[$kuser_id] = $kuser_id;
         $partner_kuser_list[$pid] = $partner_kuser_ids;
     }
     // the kuser_id is unique across partners
     $kuser_list = array();
     $puser_id = null;
     foreach ($partner_kuser_list as $pid => $kuser_ids) {
         $puser_kuser_list = PuserKuserPeer::getPuserIdFromKuserIds($pid, $kuser_ids);
         // builf a map where the key is kuser_id for fast fetch
         foreach ($puser_kuser_list as $puser_kuser) {
             $kuser_id = $puser_kuser->getKuserId();
             $puser_id = $puser_kuser->getPuserId();
             $kuser_list[$kuser_id] = $puser_id;
         }
     }
     foreach ($entries as $entry) {
         $kuser_id = $entry->getKuserId();
         if (isset($kuser_list[$kuser_id])) {
             $puser_id = $kuser_list[$kuser_id];
         }
         if ($puser_id) {
             $entry->tempSetPuserId($puser_id);
         }
     }
     kuserPeer::getCriteriaFilter()->enable();
     PuserKuserPeer::getCriteriaFilter()->enable();
 }