コード例 #1
0
ファイル: buildmessage_cmd.php プロジェクト: knatorski/SMS
 private function _getData()
 {
     $packageQueueModel = new WsPackageQueue();
     $wsServiceSetModel = new WsServiceSet();
     $i = 0;
     $data = array();
     foreach ($packageQueueModel->getQueueToSend() as $queue) {
         if ($i < $this->_packageSize) {
             $message = '';
             $packageInfo = $this->_packageModel->findOne($queue->ws_package_id);
             if (!empty($packageInfo)) {
                 $serviceSet = $wsServiceSetModel->getSet($packageInfo->ws_service_set_id);
                 if ($serviceSet) {
                     $type = $serviceSet->file_type;
                     $packageDate = $this->_dataModel->getPackageDataByPackage($packageInfo->id)->toArray();
                     switch ($type) {
                         case Logic_Ws_ServiceSet_ServiceSet::TYPE_CONST:
                             foreach ($packageDate as $messageData) {
                                 $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn], 'message' => $serviceSet->message);
                                 $i++;
                             }
                             break;
                         case Logic_Ws_ServiceSet_ServiceSet::TYPE_VAR:
                             foreach ($packageDate as $messageData) {
                                 $tags = Zend_Json_Decoder::decode($messageData['tags']);
                                 $template = $serviceSet->message;
                                 foreach ($tags as $key => $val) {
                                     $template = str_replace('{' . $key . '}', $val, $template);
                                     $i++;
                                 }
                                 $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn], 'message' => $template);
                             }
                             break;
                         case Logic_Ws_ServiceSet_ServiceSet::TYPE_ANY:
                             foreach ($packageDate as $messageData) {
                                 $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn], 'message' => $messageData['message']);
                                 $i++;
                             }
                             break;
                     }
                     $packageQueueModel->updateQueue(array('is_send' => 'true', 'last_get' => new Zend_Db_Expr('now()')), $queue->id);
                 }
             }
         }
     }
     /*foreach($packageQueueModel->getQueueToSend() as $queue) {
           if($i < $this->_packageSize) {
               $toSend = true;
               $message = '';
               $packageInfo =  $this->_packageModel->findOne($queue->ws_package_id);
               if(!empty($packageInfo)) {
                   $date2->setTime($packageInfo->time_send_start,"HH:mm:ss");
                   if($date2->getTime()->isLater($date->getTime())) {
                       $toSend = false;
                   }
                   else {
                       $date2->setTime($packageInfo->time_send_end,"HH:mm:ss");
                       if($date2->getTime()->isEarlier($date->getTime())) {
                           $toSend = false;
                       }
                   }
                   if($packageInfo->repeat_message) {
                       if($queue->last_get !== NULL) {
                           $date2->setDate($queue->last_get,"YYYY-MM-dd");
                           switch($packageInfo->repeat_interval) {
                               case 1:
                                   if($date2->isToday()) {
                                       $toSend = false;
                                   }
                                   break;
                               case 2:
                                   if($date->getDate()->isEarlier($date2->addWeek(1)->getDate())) {
                                       $toSend = false;
                                   }
                                   break;
                               case 3 :
                                   if($date->getDate()->isEarlier($date2->addMonth(1)->getDate())) {
                                       $toSend = false;
                                   }
                                   break;
                               case 4:
                                   if($date->getDate()->isEarlier($date2->addDay($packageInfo->repeat_day_interval)->getDate())) {
                                       $toSend = false;
                                   }
                                   break;
                               case 5 :
                                   $days = Zend_Json_Decoder::decode($packageInfo->repeat_days);
                                   if(in_array($date->get(Zend_Date::WEEKDAY_DIGIT), $days)) {
                                       if($date2->isToday()) {
                                           $toSend = false; 
                                       }
                                   }
                                   break;
                           }
                       }
                   }
                   if($toSend) {
                       if($packageInfo->file_type == 1) {
                           $serviceSet = $wsServiceSetModel->getSet($packageInfo->ws_service_set_id);
                           $recipient = $addressbook->getRecipientByAddressbook($packageInfo->ws_addressbook_id)->toArray();
                           foreach($recipient as $r) {
                               if(!empty($r[$this->_recipientColumn])) {
                                   $data[$queue->ws_package_id][] = array('recipient' => $r[$this->_recipientColumn],'message' => $serviceSet->message);
                                   $i++;
                               }
                           }
                       }
                       if($packageInfo->file_type == 2) {
                           $serviceSet = $wsServiceSetModel->getSet($packageInfo->ws_service_set_id);
                           $packageDate = $this->_dataModel->getPackageDataByPackage($packageInfo->id)->toArray();
                           foreach($packageDate as $messageData) {
                               $tags = Zend_Json_Decoder::decode($messageData['tags']);
                               $template = $serviceSet->message;
                               foreach ($tags as $key => $val) {
                                   $template = str_replace('<'.$key.'>',$val,$template);
                                   $i++;
                               }
                               $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn],'message' => $template);; 
                           }
                       }
                       if($packageInfo->file_type == 3) { 
                           $packageDate = $this->_dataModel->getPackageDataByPackage($packageInfo->id)->toArray();
                           foreach($packageDate as $messageData) {
                               $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn],'message' => $messageData['message']);
                               $i++;
                           }
                       }
                       if(!$packageInfo->repeat_message) {
                           $packageQueueModel->updateQueue(array('is_send' => 'true'), $queue->id);
                       }
                       else {
                           $date2->setDate($packageInfo->repeat_end,'YYYY-MM-dd');
                           if($date2->getDate()->compare($date->getDate()) == 0) {
                               $packageQueueModel->updateQueue(array('is_send' => 'true'), $queue->id); 
                           }
                       }
                   }
                   $packageQueueModel->updateQueue(array('last_get' => new Zend_Db_Expr('now()')),$queue->id); 
               }
           }
       }*/
     return $data;
 }