/** * {@inheritDoc} */ public function load(ObjectManager $manager) { $faker = new Generator(); $faker->addProvider(new Person($faker)); $faker->addProvider(new Internet($faker)); $faker->addProvider(new PhoneNumber($faker)); $faker->addProvider(new Lorem($faker)); // Generate default admin $admin = new User(); $admin->setPlainPassword('123456'); $admin->setEmail('*****@*****.**'); $admin->setEnabled(true); $admin->setType(User::ROLE_ADMIN); $admin->setFirstName($faker->firstName); $admin->setLastName($faker->lastName); $manager->persist($admin); // Generate default student $student = new User(); $student->setPlainPassword('123456'); $student->setEmail('*****@*****.**'); $student->setEnabled(true); $student->setType(User::ROLE_STUDENT); $student->setStudentProfileVisibility(User::VISIBILITY_VISIBLE); $student->setFirstName($faker->firstName); $student->setLastName($faker->lastName); $faker->seed(rand(1, 10)); $studentProfile = new StudentProfile(); $studentProfile->setContactEmail($student->getEmail()); $studentProfile->setHeadline($faker->sentence); $student->setStudentProfile($studentProfile); $manager->persist($student); // Generate stat for student for ($i = 0; $i < 30; $i++) { $numProfileView = rand(0, 15); $numShortlist = rand(0, round($numProfileView / 2)); for ($y = 0; $y < $numProfileView; $y++) { $time = (new \DateTime('now'))->modify('-' . $i . ' days'); $time->setTime(rand(1, 11), rand(1, 30), 0); $statProfileView = new StatProfileView(); $statProfileView->setCreated($time); $statProfileView->setStudent($studentProfile); $manager->persist($statProfileView); } for ($z = 0; $z < $numShortlist; $z++) { $time = (new \DateTime('now'))->modify('-' . $i . ' days'); $time->setTime(rand(1, 11), rand(1, 30), 0); $statShortlist = new StatShortlist(); $statShortlist->setCreated($time); $statShortlist->setStudent($studentProfile); $manager->persist($statShortlist); } } // Generate default member $member = new User(); $member->setPlainPassword('123456'); $member->setEmail('*****@*****.**'); $member->setEnabled(true); $member->setType(User::ROLE_GS1_MEMBER); $member->setFirstName($faker->firstName); $member->setLastName($faker->lastName); $manager->persist($member); // Generate 20 more accounts of students and members for ($i = 0; $i < 20; $i++) { $faker->seed(rand(($i + 1) * 10, ($i + 2) * 10)); $user = new User(); $user->setPlainPassword('123456'); $user->setEmail($faker->email); $user->setEnabled(true); $user->setFirstName($faker->firstName); $user->setLastName($faker->lastName); $shouldBeAMember = $faker->numberBetween(0, 2) == 0; if ($shouldBeAMember) { $user->setType(User::ROLE_GS1_MEMBER); } else { $user->setType(User::ROLE_STUDENT); // disable few students $shouldEnableStudent = $faker->numberBetween(0, 2) != 0; $user->setStudentProfileVisibility($shouldEnableStudent ? User::VISIBILITY_VISIBLE : User::VISIBILITY_HIDDEN); $studentProfile = new StudentProfile(); $studentProfile->setContactEmail($user->getEmail()); $studentProfile->setHeadline($faker->sentence); $phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance(); try { $studentProfile->setContactNumber($phoneUtil->parse($faker->mobileNumber, "AU")); } catch (\libphonenumber\NumberParseException $e) { } $user->setStudentProfile($studentProfile); } $manager->persist($user); } $manager->flush(); }
/** * @param $user * @param $student * @return bool */ public function add($user, $student) { $qb = $this->em->createQueryBuilder(); $qb->select('s')->from('AppResumeBundle:Shortlist', 's')->where($qb->expr()->eq('s.user', $user->getId()))->andwhere($qb->expr()->eq('s.student', $student->getId())); $result = $qb->getQuery()->setMaxResults(1)->getResult(); if (!$result) { $shortlist = new Shortlist(); $shortlist->setUser($user); $shortlist->setStudent($student); $stat = new StatShortlist(); $stat->setStudent($student->getStudentProfile()); $this->em->persist($stat); $this->em->persist($shortlist); $this->em->flush(); return true; } else { return false; } }