Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
taskonsite-архив-перенесен
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitry Korolev
taskonsite-архив-перенесен
Commits
a6f0711e
Commit
a6f0711e
authored
Mar 16, 2016
by
Шакарим Сапа
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Написан метод выполняющий рассылку всех непросмотренных кейсов
parent
7b888346
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
0 deletions
+67
-0
common/modules/triggers/controllers/DefaultController.php
common/modules/triggers/controllers/DefaultController.php
+67
-0
No files found.
common/modules/triggers/controllers/DefaultController.php
View file @
a6f0711e
...
...
@@ -3,13 +3,18 @@
namespace
common\modules\triggers\controllers
;
use
common\components\BaseController
;
use
common\modules\content\models\CoContent
;
use
common\modules\messageTemplate\models\MessageTemplate
;
use
common\modules\triggers\components\conditions\Conditions
;
use
common\modules\triggers\models\TriggerLogs
;
use
common\modules\triggers\models\TriggerSchedule
;
use
common\modules\triggers\models\TriggerTrigger
;
use
common\modules\users\models\User
;
use
\DateTime
;
use
yii\helpers\ArrayHelper
;
use
yii\helpers\Json
;
use
common\modules\messageTemplate\components\Templates
;
use
common\components\UnisenderAPI
;
/**
* Default controller for the `triggers` module
...
...
@@ -20,6 +25,7 @@ class DefaultController extends BaseController
return
[
'Index'
=>
'Главная страница модуля'
,
'Rechecktriggers'
=>
'Запуск проверки срабатывания триггеров'
,
'Recheckcases'
=>
'Запуск рассылки кейсов'
,
'Settimeoflogs'
=>
'Фиксация времени логов'
,
'Inittrigger'
=>
'Initiate trigger By id'
];
...
...
@@ -107,4 +113,65 @@ class DefaultController extends BaseController
}
}
}
public
function
actionRecheckcases
(
$category_id
=
4
,
$template_id
=
1
)
{
/** @var User[] $users */
$users
=
User
::
find
()
->
all
();
$urls
=
ArrayHelper
::
map
(
CoContent
::
find
()
->
all
(),
'id'
,
'url'
);
foreach
(
$users
as
$user
)
{
foreach
(
$urls
as
$url
)
{
if
(
!
TriggerLogs
::
find
()
->
where
([
'url'
=>
$url
,
'user_id'
=>
$user
->
id
])
->
exists
())
{
$templateData
=
[];
$email
=
$user
->
email
;
/** @var \DateTime $time_now */
$time_now
=
new
\DateTime
();
/** @var MessageTemplate $templateModel */
$templateModel
=
MessageTemplate
::
findOne
(
$template_id
);
/** @var Templates $template */
$template
=
new
Templates
(
$this
->
message_template_id
,
$templateData
);
$sender
=
new
UnisenderAPI
();
// Create the send list
$newList
=
$sender
->
createList
();
$newListObject
=
Json
::
decode
(
$newList
);
if
(
array_key_exists
(
'result'
,
$newListObject
)
&&
is_array
(
$newListObject
[
'result'
])
&&
array_key_exists
(
'id'
,
$newListObject
[
'result'
]))
{
$newListId
=
$newListObject
[
'result'
][
'id'
];
// Subscribe user to new List
$sender
->
subscribe
([
'list_ids'
=>
$newListId
,
'fields[email]'
=>
$email
,
'double_optin'
=>
1
]);
// Create new message
$newMessage
=
$sender
->
createEmailMessage
(
'Школа аналитики "Арт Проект"'
,
'subscribe@task-on.com'
,
$templateModel
->
subject
,
$template
->
getTemplate
(),
$newListId
);
// Decode result
$newMessageObject
=
Json
::
decode
(
$newMessage
);
if
(
array_key_exists
(
'result'
,
$newMessageObject
)
&&
is_array
(
$newMessageObject
[
'result'
])
&&
array_key_exists
(
'message_id'
,
$newMessageObject
[
'result'
]))
{
// Get the message ID
$newMessageId
=
$newMessageObject
[
'result'
][
'message_id'
];
// Create new campaign
$newCampaign
=
$sender
->
createCampaign
(
$newMessageId
);
// Parse the result
$newCampaignObject
=
Json
::
decode
(
$newCampaign
);
if
(
array_key_exists
(
'result'
,
$newCampaignObject
)
&&
is_array
(
$newCampaignObject
[
'result'
])
&&
array_key_exists
(
'campaign_id'
,
$newCampaignObject
[
'result'
]))
{
$newCampaignId
=
$newCampaignObject
[
'result'
][
'campaign_id'
];
$schedule
=
new
TriggerSchedule
();
$schedule
->
sended
=
1
;
$schedule
->
template_id
=
$this
->
message_template_id
;
$schedule
->
trigger_id
=
null
;
$schedule
->
message_id
=
$newMessageId
;
$schedule
->
message
=
$template
->
getTemplate
();
$schedule
->
email
=
$email
;
$schedule
->
time
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
date_create
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
list_id
=
$newListId
;
$schedule
->
campaign_id
=
$newCampaignId
;
$schedule
->
save
(
false
);
}
}
}
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment