public static function updateSmsRecordById($id)
 {
     $smsCount = EarlyBirdSmsDetail::getCountBySmsRecordId($id);
     $smsRecord = EarlyBirdSmsRecord::findOne($id);
     $smsRecord->successful = $smsCount['successful'];
     $smsRecord->failed = $smsCount['failed'];
     $smsRecord->save();
     return $smsRecord;
 }
 public static function createSmsJob($condition, $operator, $smsTag)
 {
     $accountId = Token::getAccountId();
     switch ($smsTag) {
         case 'sms_one':
             $smsTemplate = self::EARLY_BIRD_ONE_TEMPLATE;
             break;
         case 'sms_two':
             $smsTemplate = self::EARLY_BIRD_TWO_TEMPLATE;
             break;
         case 'sms_three':
             $smsTemplate = self::EARLY_BIRD_THREE_TEMPLATE;
             break;
         case 'sms_four':
             $smsTemplate = self::EARLY_BIRD_FOUR_TEMPLATE;
             break;
         default:
             break;
     }
     $recordId = EarlyBirdSmsRecord::createSmsRecord($operator, $smsTag, $smsTemplate);
     $count = 0;
     if (is_bool($recordId) && !$recordId) {
         throw new ServerErrorHttpException("發送失敗,請刷新頁面重試!");
     }
     if (!array_key_exists('accountId', $condition)) {
         $condition = array_merge($condition, ['accountId' => $accountId]);
     }
     if ($smsTag == 'sms_four') {
         $count = count(self::getMemberCanDraw($condition));
         // get發送總量
     } else {
         $count = Member::find()->where($condition)->count();
     }
     $smsRecord = EarlyBirdSmsRecord::findOne($recordId);
     // set發送總量
     $smsRecord->total = $count;
     $smsRecord->save();
     unset($smsRecord);
     $args = ['condition' => serialize($condition), 'smsTag' => $smsTag, 'smsRecord' => (string) $recordId];
     $jobId = Yii::$app->job->create('backend\\modules\\uhkklp\\job\\EarlyBirdSendSms', $args);
     if (!empty($jobId)) {
         return ['smsRecordId' => (string) $recordId, 'count' => $count];
     } else {
         throw new ServerErrorHttpException("發送失敗,請刷新頁面重試!");
     }
 }
 public function actionGetSendInfo($id)
 {
     if (empty($id)) {
         throw new BadRequestHttpException("Param is missing. (smsRecordId)");
     }
     $smsRecordId = new \MongoId($id);
     $smsRecord = EarlyBirdSmsRecord::updateSmsRecordById($smsRecordId);
     Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
     return ['successful' => $smsRecord->successful, 'failed' => $smsRecord->failed, 'process' => $smsRecord->process, 'smsName' => $smsRecord->smsName];
 }