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; } }
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); } }
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']; }
/** * @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; }