예제 #1
0
 /**
  * @param $countryID
  * @return array
  * @throws \CPS_Exception
  * @throws \Exception
  * @throws null
  */
 public function getOnlineUsers($countryID)
 {
     $query = CPS_Term($countryID, 'country');
     $list = array('id' => 'yes', "x" => 'yes', "y" => 'yes', "about" => "yes", "email" => "yes");
     try {
         $documents = $this->cpsSimple->search($query, NULL, NULL, $list);
     } catch (\Exception $e) {
         return -2;
     }
     $results = [];
     foreach ($documents as $id => $document) {
         $tempResult = [];
         $tempResult["x"] = $document->x->__toString();
         $tempResult["y"] = $document->y->__toString();
         $tempResult["description"] = $document->about->__toString();
         $tempResult["calls_count"] = 0;
         $tempResult["receive_calls_count"] = 0;
         $tempResult["rate"] = 0;
         $tempResult["minutes_spoken"] = 0;
         if (isset($document->conversations->conversation)) {
             //-----------------------------SUM CONVERSATION OUTGOING----------------
             $count = 0;
             foreach ($document->conversations->conversation as $conversation) {
                 if ($conversation->is_incoming == 0) {
                     $tempResult["calls_count"]++;
                     $tempResult["rate"] += $conversation->rate;
                 }
                 $tempResult["minutes_spoken"] += $conversation->duration;
                 $count++;
             }
             //-----------------------------SUM CONVERSATION INCOMMING----------------
             $tempResult["receive_calls_count"] = $count - $tempResult["calls_count"];
             //-----------------------------AVG OF RATE CONVERSATION ----------------
             if ($count > 0) {
                 $tempResult["rate"] = $tempResult["rate"] / $count;
             }
         }
         $tempResult["countries_to"] = ["IR"];
         //TODO make it more general
         $tempResult["languages"] = Converter::XML2Array($document->languages)["languages"];
         $results[] = $tempResult;
     }
     return $results;
 }