Example #1
0
 public function fire()
 {
     $list = CustomerInvite::whereBonus(0)->with('customer')->get()->all();
     $this->line('Найдено безбонусных инвайтов: ' . count($list));
     foreach ($list as $item) {
         if ($item->customer && $item->customer->initExistsPaid()) {
             $this->line('Отправляем письмо по инвайту: ' . $item->id . ', customer = ' . $item->customer->name);
             Mailer::inviteIsPayment($item->customer, $item->owner);
             $item->bonus = 1;
             $item->save();
         }
     }
 }
Example #2
0
 /**
  * @param CM $customer свежезарегистрированный пользователь
  *
  * @return null|\Symfony\Component\HttpFoundation\Cookie
  */
 public function registerInvite(CM $customer)
 {
     // уже осуществлялся вход ранее, не обрабатываем
     if (!$customer->isEmptyAuthAt()) {
         return false;
     }
     // при регистрации должен был сохраниться телефон, если был инвайт, проверим
     $external = CustomerInviteExternal::wherePhone($customer->phone)->first();
     if (!$external || empty($external->owner_id)) {
         return false;
     }
     // нельзя приглашать самого себя
     if ($external->owner_id == $customer->id) {
         return false;
     }
     Reporter::inviteCodeFound($customer->id, $external->owner_id);
     $invite = CustomerInvite::create(['customer_id' => $customer->id, 'owner_id' => $external->owner_id, 'source_id' => $external->source_id, 'customer_invite_external_id' => $external->id]);
     Reporter::inviteCodeRegistered($customer->id, $external->owner_id, $invite->id);
     return true;
 }