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
730f010c
Commit
730f010c
authored
Mar 21, 2016
by
Олег Гиммельшпах
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of git.task-on.com:ktask/task-on.com
parents
4113e5d5
783d1add
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
65 additions
and
21 deletions
+65
-21
common/modules/bids/models/Bid.php
common/modules/bids/models/Bid.php
+16
-0
common/modules/triggers/controllers/DefaultController.php
common/modules/triggers/controllers/DefaultController.php
+10
-0
common/modules/triggers/models/TriggerLogs.php
common/modules/triggers/models/TriggerLogs.php
+1
-1
common/modules/triggers/models/TriggerTrigger.php
common/modules/triggers/models/TriggerTrigger.php
+1
-1
common/modules/users/models/User.php
common/modules/users/models/User.php
+37
-19
No files found.
common/modules/bids/models/Bid.php
View file @
730f010c
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
namespace
common\modules\bids\models
;
namespace
common\modules\bids\models
;
use
common\modules\users\models\User
;
use
Yii
;
use
Yii
;
use
common\models\Settings
;
use
common\models\Settings
;
...
@@ -145,4 +146,19 @@ class Bid extends \common\components\ActiveRecordModel
...
@@ -145,4 +146,19 @@ class Bid extends \common\components\ActiveRecordModel
{
{
}
}
}
}
/**
* @param bool $insert
* @param array $changedAttributes
* @return bool
*/
public
function
afterSave
(
$insert
,
$changedAttributes
)
{
parent
::
afterSave
(
$insert
,
$changedAttributes
);
/** @var User $user */
$user
=
User
::
find
()
->
where
([
'email'
=>
$this
->
email
])
->
one
();
if
(
!
is_null
(
$user
))
{
$user
->
afterSubscribe
([
'email'
=>
$this
->
email
],
true
);
}
}
}
}
common/modules/triggers/controllers/DefaultController.php
View file @
730f010c
...
@@ -68,6 +68,7 @@ class DefaultController extends BaseController
...
@@ -68,6 +68,7 @@ class DefaultController extends BaseController
* Метод для крона и ручного вызова. Проверяет таблицу с расписанием, выполняет сработавшие триггеры.
* Метод для крона и ручного вызова. Проверяет таблицу с расписанием, выполняет сработавшие триггеры.
*/
*/
public
function
actionRechecktriggers
(){
public
function
actionRechecktriggers
(){
set_time_limit
(
5000
);
// Производим проверку по расписанию
// Производим проверку по расписанию
/** @var TriggerTrigger[] $actualTriggers */
/** @var TriggerTrigger[] $actualTriggers */
// Получили текущую дату и время
// Получили текущую дату и время
...
@@ -116,6 +117,15 @@ class DefaultController extends BaseController
...
@@ -116,6 +117,15 @@ class DefaultController extends BaseController
}
}
}
}
/**
* Вызов логики, проверяющей список всех пользователей и просмотренные ими страницы.
* В случае если юзер не смотрел какой либо из кейсов, выбирается и отправляется ОДИН
* случайный кейс из просмотренных.
*
* @param int $category_id
* @param int $template_id
* @param int $neededTime
*/
public
function
actionRecheckcases
(
$category_id
=
4
,
$template_id
=
1
,
$neededTime
=
10
)
{
public
function
actionRecheckcases
(
$category_id
=
4
,
$template_id
=
1
,
$neededTime
=
10
)
{
$date
=
new
\DateTime
();
$date
=
new
\DateTime
();
/** @var User[] $users */
/** @var User[] $users */
...
...
common/modules/triggers/models/TriggerLogs.php
View file @
730f010c
...
@@ -26,7 +26,7 @@ class TriggerLogs extends \yii\db\ActiveRecord
...
@@ -26,7 +26,7 @@ class TriggerLogs extends \yii\db\ActiveRecord
public
static
function
logAction
()
public
static
function
logAction
()
{
{
if
(
!
Yii
::
$app
->
user
->
isGuest
&&
!
Yii
::
$app
->
request
->
isAjax
)
{
if
(
!
Yii
::
$app
->
user
->
isGuest
&&
Yii
::
$app
->
controller
->
action
->
id
!=
'settimeoflogs'
/*&& !Yii::$app->request->isAjax*/
)
{
$action
=
self
::
USER_VISITED
;
$action
=
self
::
USER_VISITED
;
if
(
Yii
::
$app
->
controller
->
action
->
id
==
'registration'
)
if
(
Yii
::
$app
->
controller
->
action
->
id
==
'registration'
)
$action
=
self
::
USER_REGISTRATION
;
$action
=
self
::
USER_REGISTRATION
;
...
...
common/modules/triggers/models/TriggerTrigger.php
View file @
730f010c
...
@@ -221,7 +221,7 @@ class TriggerTrigger extends \common\components\ActiveRecordModel
...
@@ -221,7 +221,7 @@ class TriggerTrigger extends \common\components\ActiveRecordModel
elseif
(
empty
(
$email
)
&&
!
Yii
::
$app
->
user
->
isGuest
)
{
elseif
(
empty
(
$email
)
&&
!
Yii
::
$app
->
user
->
isGuest
)
{
$email
=
Yii
::
$app
->
user
->
identity
->
email
;
$email
=
Yii
::
$app
->
user
->
identity
->
email
;
}
else
{
}
else
{
return
'Email not found'
;
return
'
Trigger initiate error.
Email not found'
;
}
}
$user
=
User
::
find
()
->
where
([
'email'
=>
$email
])
->
one
();
$user
=
User
::
find
()
->
where
([
'email'
=>
$email
])
->
one
();
...
...
common/modules/users/models/User.php
View file @
730f010c
...
@@ -641,7 +641,7 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
...
@@ -641,7 +641,7 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
* @param array $params
* @param array $params
* @return bool
* @return bool
*/
*/
public
function
afterSubscribe
(
$params
=
array
()){
public
function
afterSubscribe
(
$params
=
array
()
,
$return
=
false
){
$date
=
new
\DateTime
();
$date
=
new
\DateTime
();
/** @var TriggerTrigger[] $actualTriggers */
/** @var TriggerTrigger[] $actualTriggers */
$actualTriggers
=
TriggerTrigger
::
getActualTriggers
();
$actualTriggers
=
TriggerTrigger
::
getActualTriggers
();
...
@@ -655,30 +655,48 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
...
@@ -655,30 +655,48 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
// Указываем дату следующей отправки (по умолчанию сегодня, в момент срабатывания триггера)
// Указываем дату следующей отправки (по умолчанию сегодня, в момент срабатывания триггера)
$user
=
User
::
findOne
(
$this
->
id
);
$user
=
User
::
findOne
(
$this
->
id
);
$user
->
delivery_date
=
$date
->
format
(
'Y-m-d'
);
$user
->
delivery_date
=
$date
->
format
(
'Y-m-d'
);
$user
->
save
(
false
);
if
(
$user
->
save
())
{
// Вызываем перезапуск всех триггеров
// Вызываем перезапуск всех триггеров
$curl
=
curl_init
();
$curl
=
curl_init
();
curl_setopt
(
$curl
,
CURLOPT_URL
,
Yii
::
$app
->
urlManager
->
createAbsoluteUrl
(
'/triggers/default/rechecktriggers'
));
curl_setopt
(
$curl
,
CURLOPT_URL
,
Yii
::
$app
->
urlManager
->
createAbsoluteUrl
(
'/triggers/default/rechecktriggers'
));
curl_setopt
(
$curl
,
CURLOPT_RETURNTRANSFER
,
true
);
curl_setopt
(
$curl
,
CURLOPT_RETURNTRANSFER
,
true
);
if
(
!
curl_exec
(
$curl
))
{
if
(
!
curl_exec
(
$curl
))
{
if
(
$return
===
false
)
{
$this
->
addError
(
'email'
,
curl_error
(
$curl
));
$this
->
addError
(
'email'
,
curl_error
(
$curl
));
return
false
;
return
false
;
}
else
return
curl_error
(
$curl
);
}
}
// Затем инициируем рассылку
// Затем инициируем рассылку
$curl
=
curl_init
();
$curl
=
curl_init
();
curl_setopt
(
$curl
,
CURLOPT_URL
,
Yii
::
$app
->
urlManager
->
createAbsoluteUrl
(
'/triggers/default/recheckcases'
));
curl_setopt
(
$curl
,
CURLOPT_URL
,
Yii
::
$app
->
urlManager
->
createAbsoluteUrl
(
'/triggers/default/recheckcases'
));
curl_setopt
(
$curl
,
CURLOPT_RETURNTRANSFER
,
true
);
curl_setopt
(
$curl
,
CURLOPT_RETURNTRANSFER
,
true
);
if
(
!
curl_exec
(
$curl
))
{
if
(
!
curl_exec
(
$curl
))
{
if
(
$return
===
false
)
{
$this
->
addError
(
'email'
,
curl_error
(
$curl
));
$this
->
addError
(
'email'
,
curl_error
(
$curl
));
return
false
;
return
false
;
}
else
return
curl_error
(
$curl
);
}
}
return
true
;
return
true
;
}
else
{
}
else
{
if
(
$return
===
false
)
{
$this
->
addError
(
'email'
,
current
(
current
(
$user
->
getErrors
())));
return
false
;
}
else
return
current
(
current
(
$user
->
getErrors
()));
}
}
else
{
if
(
$return
===
false
)
{
$this
->
addError
(
'email'
,
$init
);
$this
->
addError
(
'email'
,
$init
);
return
false
;
return
false
;
}
else
{
return
$init
;
}
}
}
}
}
}
}
return
true
;
}
}
/**
/**
...
...
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