コード例 #1
0
 public function publishAction(array $params)
 {
     if (isset($params[0])) {
         $id = $params[0];
         $sms_data = SmsHistory::findFirst("id ='{$id}' AND status ='PENDING'");
         if ($sms_data) {
             $user_id = $sms_data->user_id;
             $user = Users::findFirst("id = '{$user_id}'");
             if ($user->smsbalance->balance >= $sms_data->billcredit) {
                 switch ($sms_data->type) {
                     case 'GROUPID':
                         $result = Groups::getGroupNumber(json_decode($sms_data->reciever));
                         break;
                     case 'NUMBER':
                         $result = implode(',', json_decode($sms_data->reciever));
                         break;
                     case 'CONTACTID':
                         $result = Contacts::getNumbers(json_decode($sms_data->reciever));
                         break;
                 }
                 $data = $this->sendSMSRequest(array("message" => urldecode($sms_data->message), 'sender_id' => $user->sender_id, 'contacts' => explode(',', $result)));
                 $sms_data->status = "SUCCESS";
                 $user->smsbalance->balance = $user->smsbalance->balance - $sms_data->billcredit;
                 $user->smsbalance->used = $user->smsbalance->used + $sms_data->billcredit;
                 $user->smsbalance->save();
             } else {
                 $sms_data->status = "FAILED";
             }
             $sheduled_sms = SheduleSms::findFirst("sms_id = '{$id}'");
             if ($sheduled_sms->id) {
                 $sheduled_sms->delete();
             }
             $sms_data->created_at = date("Y-m-d H:i:s");
             $sms_data->updated_at = date("Y-m-d H:i:s");
             $sms_data->save();
         } else {
             echo "\n Task Not Found \n";
         }
     }
 }