Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Метод отправляет подарок из матрицы геймификации указанному фанату
- *
- * @param GamificationMatrixGift $gift
- * @param Fan $fan
- */
- public function sendGift(GamificationMatrixGift $gift, Fan $fan)
- {
- // const GIFT_TYPE_GIFT = 1; Подарок
- // const GIFT_TYPE_PROMO = 2; Промокод
- // const GIFT_TYPE_ACTION = 3; Акция
- // const GIFT_TYPE_MAIL = 4; Уведомление администратору
- //
- // $this храниит текущий объект fanGamificationProgress
- // Начинаем сбор данных для их последующего включения в шаблон письма
- $data = [];
- $data["name"] = $fan->firstName;
- $data["sex"] = $fan->sex; // Нужно для Дорогой/Дорогая в начале письма
- $data["matchName"] = $this->match ? $this->match->name : null;
- switch ($gift->giftType) {
- case 1:
- // TODO Пока пропускаем
- //PromocodeSettings::model()->linkPromocodeToFan($fan);
- // Send mail тут по шаблону подарок
- break;
- case 2:
- $promocode = PromocodeSettings::model()->linkPromocodeToFan($fan);
- // TODO Send mail тут по шаблону промокод
- $this->promocodeId = $promocode->id;
- $this->save();
- break;
- case 3:
- $criteria = new CDbCriteria();
- $criteria->compare('actionId', $gift->actionId);
- $action = Action::model()->find($criteria);
- ActionFan::model()->linkFansToAction($action, [$fan->id]);
- // Собираем данные для шаблона письма "Акция"
- $data["actionName"] = $action->name;
- $data["actionDescription"] = $action->description;
- // TODO Тут отправить письмо по шаблону акция
- $this->actionId = $action->id;
- break;
- case 4:
- $criteria = new CDbCriteria();
- $criteria->compare('gamificationId', $this->gamificationId);
- $gs = GamificationSettings::model()->find($criteria);
- $email = $gs->email;
- // TODO Отправить письмо по шаблону "Уведомление администрации"
- break;
- }
- }
- /**
- * Метод обработки подарка в рамках геймификации
- *
- * @param Fan $fan
- * @param int|null $matchId
- */
- public function processGift (Fan $fan, int $matchId = null)
- {
- $fanGamificationProgress = new FanGamificationProgress();
- $fanGamificationProgress->fanId = $fan->id;
- $fanGamificationProgress->matchId = $matchId;
- $fanGamificationProgress->createDate = time();
- // TODO Как получить gamificationId, matrixId?? и соответсвенно как получить подарок, чтобы передать в sendGift
- // TODO Если несколько вариантов, отправляем уведомление и делаем $fanGamificationProgress->save();
- // Если один, то
- // $fanGamificationProgress->sendGift($gift, $fan)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement