Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * User: Zubkov Alexey
- * Date: 02.10.18
- * Time: 9:32
- */
- namespace console\controllers;
- use common\domain\lead\leadAddress\service\AddressCreatorServiceInterface;
- use common\domain\good\dto\CreateGoodDto;
- use common\domain\good\repository\GoodRepositoryReadInterface;
- use common\domain\good\service\GoodCreatorServiceInterface;
- use common\domain\language\entity\Language;
- use common\domain\language\repository\LanguageRepositoryInterface;
- use common\domain\lead\lead\dto\CreateLeadDto;
- use common\domain\lead\lead\service\LeadCreatorServiceInterface;
- use common\domain\lead\leadGood\service\LeadGoodServiceInterface;
- use common\domain\lead\leadTask\service\LeadTaskServiceInterface;
- use common\domain\mode\mode\entity\Mode;
- use common\domain\mode\mode\repository\ModeRepositoryInterface;
- use common\domain\offer\repository\OfferRepositoryInterface;
- use common\domain\price\dto\CreatePriceDto;
- use common\domain\price\repository\PriceRepositoryInterface;
- use common\domain\price\service\PriceCreatorServiceInterface;
- use common\domain\script\script\entity\Script;
- use common\domain\script\script\repository\ScriptRepositoryInterface;
- use common\domain\team\entity\Team;
- use common\domain\team\repository\TeamRepositoryInterface;
- use common\domain\token\entity\TokenOperator;
- use common\domain\users\admin\dto\NewAdminDto;
- use common\domain\users\admin\service\AdminServiceInterface;
- use common\domain\users\operator\dto\NewOperatorDto;
- use common\domain\users\operator\service\OperatorServiceInterface;
- use common\persistence\UnitOfWorkInterface;
- use Doctrine\ORM\EntityManager;
- use yii\console\Controller;
- class MyPopulateController extends Controller
- {
- private $languageRepository;
- private $offerRepository;
- private $modeRepository;
- private $scriptRepository;
- private $operatorService;
- //private $adminService;
- private $unitOfWork;
- private $teamRepository;
- private $leadCreatorService;
- private $addressCreatorService;
- private $leadGoodService;
- private $leadTaskService;
- private $goodRepository;
- private $goodCreatorService;
- private $priceCreatorService;
- private $priceRepository;
- private $entityManager;
- const LG_ID = 4286;
- const OPERATOR_TOKEN = '11111';
- public function __construct(
- $id,
- $module,
- array $config = [],
- LanguageRepositoryInterface $languageRepository,
- OfferRepositoryInterface $offerRepository,
- ModeRepositoryInterface $modeRepository,
- ScriptRepositoryInterface $scriptRepository,
- UnitOfWorkInterface $unitOfWork,
- OperatorServiceInterface $operatorService,
- TeamRepositoryInterface $teamRepository,
- LeadCreatorServiceInterface $leadCreatorService,
- AddressCreatorServiceInterface $addressCreatorService,
- LeadGoodServiceInterface $leadGoodService,
- LeadTaskServiceInterface $leadTaskService,
- GoodRepositoryReadInterface $goodRepository,
- PriceCreatorServiceInterface $priceCreatorService,
- GoodCreatorServiceInterface $goodCreatorService,
- PriceRepositoryInterface $priceRepository,
- EntityManager $entityManager
- //AdminServiceInterface $adminService
- ){
- parent::__construct($id, $module, $config);
- $this->languageRepository = $languageRepository;
- $this->offerRepository = $offerRepository;
- $this->modeRepository = $modeRepository;
- $this->scriptRepository = $scriptRepository;
- $this->unitOfWork = $unitOfWork;
- $this->operatorService = $operatorService;
- $this->teamRepository = $teamRepository;
- $this->leadCreatorService = $leadCreatorService;
- $this->addressCreatorService = $addressCreatorService;
- $this->leadGoodService = $leadGoodService;
- $this->leadTaskService = $leadTaskService;
- $this->goodRepository = $goodRepository;
- $this->goodCreatorService = $goodCreatorService;
- $this->priceRepository = $priceRepository;
- $this->priceCreatorService = $priceCreatorService;
- $this->entityManager = $entityManager;
- //$this->adminService = $adminService;
- }
- public function actionRun()
- {
- \Yii::$app->runAction('offer/get');
- $this->createLead();
- echo 'Create lead' . "\n";
- $offer = $this->offerRepository->findOfferByLgId(self::LG_ID);
- if (!$offer) {
- echo 'Not found offer from LG' . PHP_EOL;
- exit;
- }
- $language = new Language('ru', 'RU');
- $this->languageRepository->save($language);
- echo 'Create language' . "\n";
- $mode = $this->modeRepository->findModeByAlias(Mode::NEW_CALL);
- $script = new Script('Script', $language, $offer, null, $mode);
- $this->scriptRepository->addScript($script);
- echo 'Create script' . "\n";
- $operatorDto = new NewOperatorDto();
- $operatorDto->setName('Operator');
- $operatorDto->setPassword('111111');
- $operatorDto->setEmail('operator@email.com');
- $operatorDto->setLogin('operator1');
- // $adminDto = new NewAdminDto();
- // $adminDto->name = 'admin';
- // $adminDto->password = 111111;
- // $adminDto->email = 'admin@email.com';
- // $adminDto->login = 'admin1';
- $operator = $this->operatorService->create($operatorDto);
- $operator->getActivity()->confirm();
- echo "Create operator" . "\n";
- // $admin = $this->adminService->create($adminDto);
- // $admin->getActivity()->confirm();
- echo "Create admin" . "\n";
- $team = new Team('Team', 'hex');
- $team->addOffer($offer);
- $team->addOperator($operator);
- $this->teamRepository->addTeam($team);
- echo 'Create team' . "\n";
- echo 'Operator add to team' . "\n";
- echo 'Offer add to team' . "\n";
- echo 'Create team' . "\n";
- $this->unitOfWork->commit();
- $this->editTokenOperator($operator, self::OPERATOR_TOKEN);
- echo "Update token operator on " . self::OPERATOR_TOKEN . "\n";
- echo 'Success' . PHP_EOL;
- }
- protected function createLead($count = 5)
- {
- for($i = 1; $i <= $count; $i++) {
- $leadAddDto = new CreateLeadDto();
- $leadAddDto->setLeadGroupId("1");
- $leadAddDto->setFullName("Вася пупкин " . $i);
- $leadAddDto->setIp("127.0.0.1");
- $leadAddDto->setCountry("России");
- $leadAddDto->setRegion("Московская область");
- $leadAddDto->setPhone("+79181111111");
- $leadAddDto->setAddress("Москва");
- $leadAddDto->setCity("Москва");
- $leadAddDto->setPostIndex("12345");
- $leadAddDto->setHouse("23");
- $leadAddDto->setFlat("11");
- $leadAddDto->setStatus("new");
- $leadAddDto->setTotal(100);
- $leadAddDto->setOfferId(self::LG_ID);
- $leadAddDto->setOfferName("titan");
- $newLead = $this->leadCreatorService->createLead($leadAddDto);
- $this->leadTaskService->createLeadTask($newLead);
- }
- }
- protected function createGoodsOffer()
- {
- $createGoodDto = new CreateGoodDto();
- $createPriceDto = new CreatePriceDto();
- $createGoodDto->setLgId(1);
- $createGoodDto->setOfferLgId(12);
- $createGoodDto->setName('test');
- $createGoodDto->setDescription('description');
- $createGoodDto->setReserve(0);
- $createGoodDto->setUnity('шт.');
- $createGoodDto->setPurchasingPrice(0);
- $createGoodDto->setWeightInGrams(0);
- $createGoodDto->setCategoryId(0);
- $createGoodDto->setCountable(false);
- $good = $this->goodCreatorService->createGood($createGoodDto);
- $createPriceDto->setGood($good);
- $createPriceDto->setPrice(100);
- $this->priceCreatorService->createPrice($createPriceDto);
- }
- private function editTokenOperator($operator, string $token) {
- $qb = $this->entityManager->createQueryBuilder();
- $q = $qb->update(TokenOperator::class, 'u')
- ->set('u.token', $qb->expr()->literal($token))
- ->where('u.operator = ?1')
- ->setParameter(1, $operator)
- ->getQuery();
- $q->execute();
- }
- }
Add Comment
Please, Sign In to add comment