Guest User

Untitled

a guest
Nov 20th, 2018
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.16 KB | None | 0 0
  1. <?php
  2. /**
  3. * User: Zubkov Alexey
  4. * Date: 02.10.18
  5. * Time: 9:32
  6. */
  7.  
  8. namespace console\controllers;
  9.  
  10. use common\domain\lead\leadAddress\service\AddressCreatorServiceInterface;
  11. use common\domain\good\dto\CreateGoodDto;
  12. use common\domain\good\repository\GoodRepositoryReadInterface;
  13. use common\domain\good\service\GoodCreatorServiceInterface;
  14. use common\domain\language\entity\Language;
  15. use common\domain\language\repository\LanguageRepositoryInterface;
  16. use common\domain\lead\lead\dto\CreateLeadDto;
  17. use common\domain\lead\lead\service\LeadCreatorServiceInterface;
  18. use common\domain\lead\leadGood\service\LeadGoodServiceInterface;
  19. use common\domain\lead\leadTask\service\LeadTaskServiceInterface;
  20. use common\domain\mode\mode\entity\Mode;
  21. use common\domain\mode\mode\repository\ModeRepositoryInterface;
  22. use common\domain\offer\repository\OfferRepositoryInterface;
  23. use common\domain\price\dto\CreatePriceDto;
  24. use common\domain\price\repository\PriceRepositoryInterface;
  25. use common\domain\price\service\PriceCreatorServiceInterface;
  26. use common\domain\script\script\entity\Script;
  27. use common\domain\script\script\repository\ScriptRepositoryInterface;
  28. use common\domain\team\entity\Team;
  29. use common\domain\team\repository\TeamRepositoryInterface;
  30. use common\domain\token\entity\TokenOperator;
  31. use common\domain\users\admin\dto\NewAdminDto;
  32. use common\domain\users\admin\service\AdminServiceInterface;
  33. use common\domain\users\operator\dto\NewOperatorDto;
  34. use common\domain\users\operator\service\OperatorServiceInterface;
  35. use common\persistence\UnitOfWorkInterface;
  36. use Doctrine\ORM\EntityManager;
  37. use yii\console\Controller;
  38.  
  39. class MyPopulateController extends Controller
  40. {
  41. private $languageRepository;
  42. private $offerRepository;
  43. private $modeRepository;
  44. private $scriptRepository;
  45. private $operatorService;
  46. //private $adminService;
  47. private $unitOfWork;
  48. private $teamRepository;
  49. private $leadCreatorService;
  50. private $addressCreatorService;
  51. private $leadGoodService;
  52. private $leadTaskService;
  53. private $goodRepository;
  54. private $goodCreatorService;
  55. private $priceCreatorService;
  56. private $priceRepository;
  57. private $entityManager;
  58.  
  59. const LG_ID = 4286;
  60. const OPERATOR_TOKEN = '11111';
  61.  
  62. public function __construct(
  63. $id,
  64. $module,
  65. array $config = [],
  66. LanguageRepositoryInterface $languageRepository,
  67. OfferRepositoryInterface $offerRepository,
  68. ModeRepositoryInterface $modeRepository,
  69. ScriptRepositoryInterface $scriptRepository,
  70. UnitOfWorkInterface $unitOfWork,
  71. OperatorServiceInterface $operatorService,
  72. TeamRepositoryInterface $teamRepository,
  73. LeadCreatorServiceInterface $leadCreatorService,
  74. AddressCreatorServiceInterface $addressCreatorService,
  75. LeadGoodServiceInterface $leadGoodService,
  76. LeadTaskServiceInterface $leadTaskService,
  77. GoodRepositoryReadInterface $goodRepository,
  78. PriceCreatorServiceInterface $priceCreatorService,
  79. GoodCreatorServiceInterface $goodCreatorService,
  80. PriceRepositoryInterface $priceRepository,
  81. EntityManager $entityManager
  82. //AdminServiceInterface $adminService
  83. ){
  84. parent::__construct($id, $module, $config);
  85.  
  86. $this->languageRepository = $languageRepository;
  87. $this->offerRepository = $offerRepository;
  88. $this->modeRepository = $modeRepository;
  89. $this->scriptRepository = $scriptRepository;
  90. $this->unitOfWork = $unitOfWork;
  91. $this->operatorService = $operatorService;
  92. $this->teamRepository = $teamRepository;
  93. $this->leadCreatorService = $leadCreatorService;
  94. $this->addressCreatorService = $addressCreatorService;
  95. $this->leadGoodService = $leadGoodService;
  96. $this->leadTaskService = $leadTaskService;
  97. $this->goodRepository = $goodRepository;
  98. $this->goodCreatorService = $goodCreatorService;
  99. $this->priceRepository = $priceRepository;
  100. $this->priceCreatorService = $priceCreatorService;
  101. $this->entityManager = $entityManager;
  102. //$this->adminService = $adminService;
  103. }
  104.  
  105. public function actionRun()
  106. {
  107. \Yii::$app->runAction('offer/get');
  108.  
  109. $this->createLead();
  110. echo 'Create lead' . "\n";
  111.  
  112. $offer = $this->offerRepository->findOfferByLgId(self::LG_ID);
  113. if (!$offer) {
  114. echo 'Not found offer from LG' . PHP_EOL;
  115. exit;
  116. }
  117.  
  118. $language = new Language('ru', 'RU');
  119. $this->languageRepository->save($language);
  120. echo 'Create language' . "\n";
  121.  
  122. $mode = $this->modeRepository->findModeByAlias(Mode::NEW_CALL);
  123.  
  124. $script = new Script('Script', $language, $offer, null, $mode);
  125. $this->scriptRepository->addScript($script);
  126. echo 'Create script' . "\n";
  127.  
  128. $operatorDto = new NewOperatorDto();
  129. $operatorDto->setName('Operator');
  130. $operatorDto->setPassword('111111');
  131. $operatorDto->setEmail('operator@email.com');
  132. $operatorDto->setLogin('operator1');
  133.  
  134. // $adminDto = new NewAdminDto();
  135. // $adminDto->name = 'admin';
  136. // $adminDto->password = 111111;
  137. // $adminDto->email = 'admin@email.com';
  138. // $adminDto->login = 'admin1';
  139.  
  140. $operator = $this->operatorService->create($operatorDto);
  141. $operator->getActivity()->confirm();
  142. echo "Create operator" . "\n";
  143.  
  144. // $admin = $this->adminService->create($adminDto);
  145. // $admin->getActivity()->confirm();
  146. echo "Create admin" . "\n";
  147.  
  148. $team = new Team('Team', 'hex');
  149. $team->addOffer($offer);
  150. $team->addOperator($operator);
  151. $this->teamRepository->addTeam($team);
  152. echo 'Create team' . "\n";
  153. echo 'Operator add to team' . "\n";
  154. echo 'Offer add to team' . "\n";
  155. echo 'Create team' . "\n";
  156.  
  157. $this->unitOfWork->commit();
  158.  
  159. $this->editTokenOperator($operator, self::OPERATOR_TOKEN);
  160. echo "Update token operator on " . self::OPERATOR_TOKEN . "\n";
  161.  
  162. echo 'Success' . PHP_EOL;
  163. }
  164.  
  165. protected function createLead($count = 5)
  166. {
  167. for($i = 1; $i <= $count; $i++) {
  168.  
  169. $leadAddDto = new CreateLeadDto();
  170. $leadAddDto->setLeadGroupId("1");
  171. $leadAddDto->setFullName("Вася пупкин " . $i);
  172. $leadAddDto->setIp("127.0.0.1");
  173. $leadAddDto->setCountry("России");
  174. $leadAddDto->setRegion("Московская область");
  175. $leadAddDto->setPhone("+79181111111");
  176. $leadAddDto->setAddress("Москва");
  177. $leadAddDto->setCity("Москва");
  178. $leadAddDto->setPostIndex("12345");
  179. $leadAddDto->setHouse("23");
  180. $leadAddDto->setFlat("11");
  181. $leadAddDto->setStatus("new");
  182. $leadAddDto->setTotal(100);
  183. $leadAddDto->setOfferId(self::LG_ID);
  184. $leadAddDto->setOfferName("titan");
  185.  
  186. $newLead = $this->leadCreatorService->createLead($leadAddDto);
  187. $this->leadTaskService->createLeadTask($newLead);
  188. }
  189. }
  190.  
  191. protected function createGoodsOffer()
  192. {
  193. $createGoodDto = new CreateGoodDto();
  194. $createPriceDto = new CreatePriceDto();
  195.  
  196. $createGoodDto->setLgId(1);
  197. $createGoodDto->setOfferLgId(12);
  198. $createGoodDto->setName('test');
  199. $createGoodDto->setDescription('description');
  200. $createGoodDto->setReserve(0);
  201. $createGoodDto->setUnity('шт.');
  202. $createGoodDto->setPurchasingPrice(0);
  203. $createGoodDto->setWeightInGrams(0);
  204. $createGoodDto->setCategoryId(0);
  205. $createGoodDto->setCountable(false);
  206.  
  207. $good = $this->goodCreatorService->createGood($createGoodDto);
  208.  
  209. $createPriceDto->setGood($good);
  210. $createPriceDto->setPrice(100);
  211. $this->priceCreatorService->createPrice($createPriceDto);
  212. }
  213.  
  214. private function editTokenOperator($operator, string $token) {
  215. $qb = $this->entityManager->createQueryBuilder();
  216. $q = $qb->update(TokenOperator::class, 'u')
  217. ->set('u.token', $qb->expr()->literal($token))
  218. ->where('u.operator = ?1')
  219. ->setParameter(1, $operator)
  220. ->getQuery();
  221. $q->execute();
  222. }
  223. }
Add Comment
Please, Sign In to add comment