Ejemplo n.º 1
0
 public function actionSendRedemptionEmail()
 {
     $params = $this->getParams();
     list($view, $emailParams) = MessageTemplate::getEmailVar($params);
     //check the account have template
     $accountId = $this->getAccountId();
     $type = $params['type'];
     if (!in_array($type, [MessageTemplate::REDEMPTION_TYPE, MessageTemplate::PROMOCODE_TYPE])) {
         throw new BadRequestHttpException('type is invaild');
     }
     $name = MessageTemplate::getTemplateName($type);
     $template = MessageTemplate::findOne(['accountId' => $accountId, 'name' => $name]);
     if (!empty($template->email['content']) && !empty($template->email['title'])) {
         $subject = $template->email['title'];
         $name = $type == MessageTemplate::REDEMPTION_TYPE ? MessageTemplate::REDEMPTION_TITLE : MessageTemplate::PROMOTIONCODE_TITLE;
         $body = MessageTemplate::getEmailTemplate($name, $accountId, $emailParams);
     } else {
         $subject = $type == MessageTemplate::REDEMPTION_TYPE ? MessageTemplate::REDEMPTION_SUBJECT : MessageTemplate::PROMOCODE_SUBJECT;
         $body = $this->renderPartial($view, $emailParams);
     }
     $mail = Yii::$app->mail;
     $member = Member::getMemberInfo($params['memberId'], 'email');
     if (!empty($member['email']) && !empty($body)) {
         return $mail->sendMail($member['email'], $subject, $body);
     } else {
         return false;
     }
 }
Ejemplo n.º 2
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]);
     }
 }
Ejemplo n.º 3
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);
     }
 }
 public static function checkTemplateNotExists($accountId, $name)
 {
     $where = ['accountId' => $accountId, 'name' => $name];
     $result = MessageTemplate::findOne($where);
     if (empty($result)) {
         return true;
     } else {
         return false;
     }
 }
Ejemplo n.º 5
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'];
 }
Ejemplo n.º 6
0
 /**
  * @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;
 }