mirror of
https://github.com/kuaifan/dootask.git
synced 2026-01-11 16:28:11 +00:00
88 lines
2.4 KiB
PHP
88 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Observers;
|
|
|
|
use App\Models\Deleted;
|
|
use App\Models\ProjectTaskUser;
|
|
use App\Models\ProjectUser;
|
|
use App\Tasks\ManticoreSyncTask;
|
|
|
|
class ProjectTaskUserObserver extends AbstractObserver
|
|
{
|
|
/**
|
|
* Handle the ProjectTaskUser "created" event.
|
|
*
|
|
* @param \App\Models\ProjectTaskUser $projectTaskUser
|
|
* @return void
|
|
*/
|
|
public function created(ProjectTaskUser $projectTaskUser)
|
|
{
|
|
Deleted::forget('projectTask', $projectTaskUser->task_id, $projectTaskUser->userid);
|
|
if ($projectTaskUser->task_pid) {
|
|
Deleted::forget('projectTask', $projectTaskUser->task_pid, $projectTaskUser->userid);
|
|
}
|
|
|
|
// 更新任务权限
|
|
self::taskDeliver(new ManticoreSyncTask('update_task_allowed_users', [
|
|
'task_id' => $projectTaskUser->task_id,
|
|
]));
|
|
// 如果是子任务,也更新父任务
|
|
if ($projectTaskUser->task_pid) {
|
|
self::taskDeliver(new ManticoreSyncTask('update_task_allowed_users', [
|
|
'task_id' => $projectTaskUser->task_pid,
|
|
]));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handle the ProjectTaskUser "updated" event.
|
|
*
|
|
* @param \App\Models\ProjectTaskUser $projectTaskUser
|
|
* @return void
|
|
*/
|
|
public function updated(ProjectTaskUser $projectTaskUser)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Handle the ProjectTaskUser "deleted" event.
|
|
*
|
|
* @param \App\Models\ProjectTaskUser $projectTaskUser
|
|
* @return void
|
|
*/
|
|
public function deleted(ProjectTaskUser $projectTaskUser)
|
|
{
|
|
if (!ProjectUser::whereProjectId($projectTaskUser->project_id)->whereUserid($projectTaskUser->userid)->exists()) {
|
|
Deleted::record('projectTask', $projectTaskUser->task_id, $projectTaskUser->userid);
|
|
}
|
|
|
|
// 更新任务权限
|
|
self::taskDeliver(new ManticoreSyncTask('update_task_allowed_users', [
|
|
'task_id' => $projectTaskUser->task_id,
|
|
]));
|
|
}
|
|
|
|
/**
|
|
* Handle the ProjectTaskUser "restored" event.
|
|
*
|
|
* @param \App\Models\ProjectTaskUser $projectTaskUser
|
|
* @return void
|
|
*/
|
|
public function restored(ProjectTaskUser $projectTaskUser)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Handle the ProjectTaskUser "force deleted" event.
|
|
*
|
|
* @param \App\Models\ProjectTaskUser $projectTaskUser
|
|
* @return void
|
|
*/
|
|
public function forceDeleted(ProjectTaskUser $projectTaskUser)
|
|
{
|
|
//
|
|
}
|
|
}
|