private function deleteMutiStaff($accountId) { $where = ['accountId' => $accountId, 'name' => MessageTemplate::STAFF_TITLE, 'mobile' => ['message' => MessageTemplate::STAFF_MOBILE_MESSAGE]]; $number = MessageTemplate::count($where); if ($number >= 2) { $template = MessageTemplate::findOne($where); MessageTemplate::deleteAll(['_id' => $template->_id]); } }
public function run($accountId) { parent::run($accountId); //create default template $where = ['accountId' => $accountId, 'name' => ['$in' => [MessageTemplate::REDEMPTION_TITLE, MessageTemplate::PROMOTIONCODE_TITLE]]]; $result = MessageTemplate::findOne($where); if (empty($result)) { MessageTemplate::createDefaultTemplate($accountId); } }
/** * update the template */ public function actionUpdate($id) { $params = $this->getParams(); if (empty($params['data'])) { throw new BadRequestHttpException('missing params'); } unset($params['data']['name'], $params['data']['id']); $params['data']['updatedAt'] = new \MongoDate(); MessageTemplate::updateAll($params['data'], ['_id' => new \MongoId($id)]); }
/** * get the template list only with the information for webhook usage */ public function actionWebhooks() { $accountId = $this->getAccountId(); $result = []; $templates = MessageTemplate::findAll(['accountId' => $accountId]); foreach ($templates as $template) { $result[] = ['name' => $template->name, 'useWebhook' => $template->useWebhook]; } return $result; }
public function actionSendRedemptionMessage() { $params = $this->getParams(); $name = MessageTemplate::getTemplateName($params['type']); $mobileParams = MessageTemplate::getMobileVar($params); $accountId = $this->getAccountId(); $specialParams = MessageTemplate::getProductList($params); $template = MessageTemplate::getMobileTemplate($name, $accountId, $mobileParams, $specialParams); $params['memberId'] = new \MongoId($params['memberId']); $member = Member::getMemberInfo($params['memberId'], 'tel'); if (!empty($member['tel']) && !empty($template)) { return MessageUtil::sendMobileMessage($member['tel'], $template); } else { return false; } }
/** * do something after creating account * @param Account $account */ public static function afterCreateAccount($account) { $options = Yii::$app->params['sensitive_options']; foreach ($options as $name => $options) { SensitiveOperation::initOptions($name, $options, $account->_id); } MessageTemplate::createStaffTemplate($account->_id); }
public static function checkTemplateNotExists($accountId, $name) { $where = ['accountId' => $accountId, 'name' => $name]; $result = MessageTemplate::findOne($where); if (empty($result)) { return true; } else { return false; } }
/** * get the mobile template to notice the staff */ public static function getMobileTemplate($accountId) { $where = ['accountId' => $accountId, 'name' => MessageTemplate::STAFF_TITLE]; $template = MessageTemplate::findOne($where); return $template['mobile']['message']; }
/** * create a user by email(generate-by-email) */ public function actionGenerateByEmail($email) { $email = mb_strtolower($email); $user = User::getByEmail($email); if (!empty($user)) { echo 'email is used' . PHP_EOL; return; } $name = Yii::$app->params['defaultName']; $accountId = Account::create('', '', $name); $attributes = ['status' => Account::STATUS_ACTIVATED, 'availableExtMods' => Yii::$app->params['extMods'], 'serviceStartAt' => new \MongoDate()]; Account::updateAll($attributes, ['_id' => $accountId]); $salt = StringUtil::rndString(6); $password = User::encryptPassword(md5(Yii::$app->params['defaultPwd']), $salt); $user = new User(); $user->email = $email; $user->accountId = $accountId; $user->name = $name; $user->role = User::ROLE_ADMIN; $user->isActivated = User::ACTIVATED; $user->avatar = Yii::$app->params['defaultAvatar']; $user->language = Yii::$app->params['defaultLanguage']; $user->salt = $salt; $user->password = $password; if (!$user->save()) { Account::deleteAll(['_id' => $accountId]); SensitiveOperation::deleteAll(['accountId' => $accountId]); MessageTemplate::deleteAll(['accountId' => $accountId]); echo 'create account fail' . PHP_EOL; } else { echo 'create account successfully' . PHP_EOL; } }
/** * @param $name,string, template name * @param $accountId, MongoId * @param $emailParams, array,variables for email template;must have key:datas => to show data * @param $mobileParams, array, */ public static function getEmailTemplate($name, $accountId, $emailParams) { $where = ['name' => $name, 'accountId' => $accountId]; $template = MessageTemplate::findOne($where); $emailContent = ''; if (!empty($template['email']['content'])) { //get key from $emailParams and replace email template $emailContent = $template['email']['content']; if (isset($emailParams['datas'])) { $emailContent = self::replaceData($emailContent, $emailParams['datas']); unset($emailParams['datas']); } $emailKeys = array_keys($emailParams); $emailValues = array_values($emailParams); foreach ($emailKeys as $index => $key) { $emailContent = str_replace('%' . $key . '%', $emailValues[$index], $emailContent); } } return $emailContent; }