public static function createSmsJob($condition, $operator, $smsName) { $totalCount = 0; $accountId = Token::getAccountId(); if (!array_key_exists('accountId', $condition)) { $condition = array_merge($condition, ['accountId' => $accountId]); } switch ($smsName) { case 'cny_winners': $smsTemplate = self::CNY_WINNERS_SMS_TEMPLATE; $totalCount = LuckyDrawWinner::find()->where($condition)->count(); break; default: break; } $recordId = BulkSmsRecord::createSmsRecord($operator, $smsName, $smsTemplate, $totalCount); if (is_bool($recordId) && !$recordId) { throw new ServerErrorHttpException("發送失敗,請刷新頁面重試!"); } $args = ['condition' => serialize($condition), 'smsName' => $smsName, 'smsRecord' => (string) $recordId]; $jobId = Yii::$app->job->create('backend\\modules\\uhkklp\\job\\BulkSms', $args); if (!empty($jobId)) { return ['smsRecordId' => (string) $recordId, 'count' => $totalCount]; } else { throw new ServerErrorHttpException("發送失敗,請刷新頁面重試!"); } }
public static function updateSmsRecordById($id) { $smsCount = BulkSmsLog::getCountBySmsRecordId($id); $smsRecord = BulkSmsRecord::findByPk($id); $smsRecord->successful = $smsCount['successful']; $smsRecord->failed = $smsCount['failed']; $smsRecord->save(); return $smsRecord; }
public function actionGetSendSmsInfo($id) { if (empty($id)) { throw new BadRequestHttpException('param is missing.(LuckyDrawRecordId)'); } $drawRecord = LuckyDrawRecord::findByPk(new \MongoId($id)); $smsRecord = BulkSmsRecord::updateSmsRecordById($drawRecord->remark['smsRecordId']); Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return ['total' => $smsRecord->total, 'successful' => $smsRecord->successful, 'failed' => $smsRecord->failed, 'process' => $smsRecord->process, 'smsTemplate' => $smsRecord->smsTemplate]; }