Beispiel #1
0
 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]);
     }
 }
Beispiel #2
0
 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;
     }
 }
Beispiel #6
0
 /**
  * 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;
     }
 }
Beispiel #8
0
 /**
  * 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;
 }